refactor(markdown): use attrs plugin for container attributes

pull/5339/head
Divyansh Singh 1 month ago
parent 1df9fdd502
commit f4021369b5

@ -223,8 +223,7 @@ describe('node/markdown/plugins/containers', () => {
`) `)
}) })
// FIXME: enable after attrs plugin version bump test('respects attrs plugin options on the fence line', async () => {
test.skip('respects attrs plugin options on the fence line', async () => {
const delimiters = await render( const delimiters = await render(
'::: tip Custom %(.extra-class)%\ncontent\n:::', '::: tip Custom %(.extra-class)%\ncontent\n:::',
{ attrs: { left: '%(', right: ')%' } } { attrs: { left: '%(', right: ')%' } }

@ -100,7 +100,7 @@
"@docsearch/css": "^4.6.3", "@docsearch/css": "^4.6.3",
"@docsearch/js": "^4.6.3", "@docsearch/js": "^4.6.3",
"@docsearch/sidepanel-js": "^4.6.3", "@docsearch/sidepanel-js": "^4.6.3",
"@iconify-json/simple-icons": "^1.2.91", "@iconify-json/simple-icons": "^1.2.92",
"@shikijs/core": "^4.3.1", "@shikijs/core": "^4.3.1",
"@shikijs/transformers": "^4.3.1", "@shikijs/transformers": "^4.3.1",
"@shikijs/types": "^4.3.1", "@shikijs/types": "^4.3.1",
@ -127,12 +127,12 @@
"@mdit-vue/plugin-title": "^3.0.2", "@mdit-vue/plugin-title": "^3.0.2",
"@mdit-vue/plugin-toc": "^3.0.2", "@mdit-vue/plugin-toc": "^3.0.2",
"@mdit-vue/shared": "^3.0.2", "@mdit-vue/shared": "^3.0.2",
"@mdit/plugin-anchor": "^1.1.1", "@mdit/plugin-anchor": "^1.1.2",
"@mdit/plugin-attrs": "^1.0.2", "@mdit/plugin-attrs": "^1.1.0",
"@mdit/plugin-container": "^1.0.1", "@mdit/plugin-container": "^1.0.2",
"@mdit/plugin-emoji": "^1.1.0", "@mdit/plugin-emoji": "^1.1.1",
"@mdit/plugin-footnote": "^1.0.1", "@mdit/plugin-footnote": "^1.0.2",
"@mdit/plugin-tasklist": "^1.0.1", "@mdit/plugin-tasklist": "^1.0.2",
"@polka/compression": "^1.0.0-next.28", "@polka/compression": "^1.0.0-next.28",
"@rolldown/pluginutils": "^1.0.1", "@rolldown/pluginutils": "^1.0.1",
"@rollup/plugin-alias": "^6.0.0", "@rollup/plugin-alias": "^6.0.0",
@ -144,7 +144,7 @@
"@types/lodash.template": "^4.5.3", "@types/lodash.template": "^4.5.3",
"@types/mark.js": "^8.11.12", "@types/mark.js": "^8.11.12",
"@types/minimist": "^1.2.5", "@types/minimist": "^1.2.5",
"@types/node": "^26.1.1", "@types/node": "^26.1.2",
"@types/picomatch": "^4.0.3", "@types/picomatch": "^4.0.3",
"@types/semver": "^7.7.1", "@types/semver": "^7.7.1",
"chokidar": "^5.0.0", "chokidar": "^5.0.0",
@ -177,7 +177,7 @@
"postcss-selector-parser": "^7.1.4", "postcss-selector-parser": "^7.1.4",
"prettier": "^3.9.6", "prettier": "^3.9.6",
"punycode": "^2.3.1", "punycode": "^2.3.1",
"rollup": "^4.62.2", "rollup": "^4.62.3",
"rollup-plugin-dts": "6.1.1", "rollup-plugin-dts": "6.1.1",
"rollup-plugin-esbuild": "^6.2.1", "rollup-plugin-esbuild": "^6.2.1",
"semver": "^7.8.5", "semver": "^7.8.5",

@ -18,8 +18,8 @@ importers:
specifier: ^4.6.3 specifier: ^4.6.3
version: 4.6.3 version: 4.6.3
'@iconify-json/simple-icons': '@iconify-json/simple-icons':
specifier: ^1.2.91 specifier: ^1.2.92
version: 1.2.91 version: 1.2.92
'@shikijs/core': '@shikijs/core':
specifier: ^4.3.1 specifier: ^4.3.1
version: 4.3.1 version: 4.3.1
@ -34,7 +34,7 @@ importers:
version: 14.1.2 version: 14.1.2
'@vitejs/plugin-vue': '@vitejs/plugin-vue':
specifier: ^6.0.8 specifier: ^6.0.8
version: 6.0.8(vite@8.1.5(@types/node@26.1.1)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3)) version: 6.0.8(vite@8.1.5(@types/node@26.1.2)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3))
'@vue/devtools-api': '@vue/devtools-api':
specifier: ^8.2.1 specifier: ^8.2.1
version: 8.2.1 version: 8.2.1
@ -61,7 +61,7 @@ importers:
version: 4.3.1 version: 4.3.1
vite: vite:
specifier: ^8.1.5 specifier: ^8.1.5
version: 8.1.5(@types/node@26.1.1)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0) version: 8.1.5(@types/node@26.1.2)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0)
vue: vue:
specifier: ^3.5.40 specifier: ^3.5.40
version: 3.5.40(typescript@5.9.3) version: 3.5.40(typescript@5.9.3)
@ -94,23 +94,23 @@ importers:
specifier: ^3.0.2 specifier: ^3.0.2
version: 3.0.2 version: 3.0.2
'@mdit/plugin-anchor': '@mdit/plugin-anchor':
specifier: ^1.1.1 specifier: ^1.1.2
version: 1.1.1(markdown-it@14.3.0) version: 1.1.2(markdown-it@14.3.0)
'@mdit/plugin-attrs': '@mdit/plugin-attrs':
specifier: ^1.1.0
version: 1.1.0(markdown-it@14.3.0)
'@mdit/plugin-container':
specifier: ^1.0.2 specifier: ^1.0.2
version: 1.0.2(markdown-it@14.3.0) version: 1.0.2(markdown-it@14.3.0)
'@mdit/plugin-container':
specifier: ^1.0.1
version: 1.0.1(markdown-it@14.3.0)
'@mdit/plugin-emoji': '@mdit/plugin-emoji':
specifier: ^1.1.0 specifier: ^1.1.1
version: 1.1.0(markdown-it@14.3.0) version: 1.1.1(markdown-it@14.3.0)
'@mdit/plugin-footnote': '@mdit/plugin-footnote':
specifier: ^1.0.1 specifier: ^1.0.2
version: 1.0.1(markdown-it@14.3.0) version: 1.0.2(markdown-it@14.3.0)
'@mdit/plugin-tasklist': '@mdit/plugin-tasklist':
specifier: ^1.0.1 specifier: ^1.0.2
version: 1.0.1(markdown-it@14.3.0) version: 1.0.2(markdown-it@14.3.0)
'@polka/compression': '@polka/compression':
specifier: ^1.0.0-next.28 specifier: ^1.0.0-next.28
version: 1.0.0-next.28 version: 1.0.0-next.28
@ -119,19 +119,19 @@ importers:
version: 1.0.1 version: 1.0.1
'@rollup/plugin-alias': '@rollup/plugin-alias':
specifier: ^6.0.0 specifier: ^6.0.0
version: 6.0.0(rollup@4.62.2) version: 6.0.0(rollup@4.62.3)
'@rollup/plugin-commonjs': '@rollup/plugin-commonjs':
specifier: ^29.0.3 specifier: ^29.0.3
version: 29.0.3(rollup@4.62.2) version: 29.0.3(rollup@4.62.3)
'@rollup/plugin-json': '@rollup/plugin-json':
specifier: ^6.1.0 specifier: ^6.1.0
version: 6.1.0(rollup@4.62.2) version: 6.1.0(rollup@4.62.3)
'@rollup/plugin-node-resolve': '@rollup/plugin-node-resolve':
specifier: ^16.0.3 specifier: ^16.0.3
version: 16.0.3(rollup@4.62.2) version: 16.0.3(rollup@4.62.3)
'@rollup/plugin-replace': '@rollup/plugin-replace':
specifier: ^6.0.3 specifier: ^6.0.3
version: 6.0.3(rollup@4.62.2) version: 6.0.3(rollup@4.62.3)
'@types/cross-spawn': '@types/cross-spawn':
specifier: ^6.0.6 specifier: ^6.0.6
version: 6.0.6 version: 6.0.6
@ -145,8 +145,8 @@ importers:
specifier: ^1.2.5 specifier: ^1.2.5
version: 1.2.5 version: 1.2.5
'@types/node': '@types/node':
specifier: ^26.1.1 specifier: ^26.1.2
version: 26.1.1 version: 26.1.2
'@types/picomatch': '@types/picomatch':
specifier: ^4.0.3 specifier: ^4.0.3
version: 4.0.3 version: 4.0.3
@ -244,14 +244,14 @@ importers:
specifier: ^2.3.1 specifier: ^2.3.1
version: 2.3.1 version: 2.3.1
rollup: rollup:
specifier: ^4.62.2 specifier: ^4.62.3
version: 4.62.2 version: 4.62.3
rollup-plugin-dts: rollup-plugin-dts:
specifier: 6.1.1 specifier: 6.1.1
version: 6.1.1(rollup@4.62.2)(typescript@5.9.3) version: 6.1.1(rollup@4.62.3)(typescript@5.9.3)
rollup-plugin-esbuild: rollup-plugin-esbuild:
specifier: ^6.2.1 specifier: ^6.2.1
version: 6.2.1(esbuild@0.27.7)(rollup@4.62.2) version: 6.2.1(esbuild@0.27.7)(rollup@4.62.3)
semver: semver:
specifier: ^7.8.5 specifier: ^7.8.5
version: 7.8.5 version: 7.8.5
@ -272,7 +272,7 @@ importers:
version: 5.9.3 version: 5.9.3
vitest: vitest:
specifier: ^4.1.10 specifier: ^4.1.10
version: 4.1.10(@types/node@26.1.1)(vite@8.1.5(@types/node@26.1.1)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0)) version: 4.1.10(@types/node@26.1.2)(vite@8.1.5(@types/node@26.1.2)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0))
vue-tsc: vue-tsc:
specifier: ^3.3.8 specifier: ^3.3.8
version: 3.3.8(typescript@5.9.3) version: 3.3.8(typescript@5.9.3)
@ -311,7 +311,7 @@ importers:
version: link:.. version: link:..
vitepress-plugin-group-icons: vitepress-plugin-group-icons:
specifier: ^1.7.5 specifier: ^1.7.5
version: 1.7.5(vite@8.1.5(@types/node@26.1.1)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0)) version: 1.7.5(vite@8.1.5(@types/node@26.1.2)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0))
vitepress-plugin-llms: vitepress-plugin-llms:
specifier: ^1.13.3 specifier: ^1.13.3
version: 1.13.3 version: 1.13.3
@ -569,8 +569,8 @@ packages:
'@iconify-json/logos@1.2.11': '@iconify-json/logos@1.2.11':
resolution: {integrity: sha512-fOo4pGEatuyuCFNL+cwquYMa2Im0oJHRHV7lt/Qqs5Ode/lPImHCQcfTtPzZj7qYMPb/h8YHN3TG54uEowrjNQ==} resolution: {integrity: sha512-fOo4pGEatuyuCFNL+cwquYMa2Im0oJHRHV7lt/Qqs5Ode/lPImHCQcfTtPzZj7qYMPb/h8YHN3TG54uEowrjNQ==}
'@iconify-json/simple-icons@1.2.91': '@iconify-json/simple-icons@1.2.92':
resolution: {integrity: sha512-plQJHZxzpkIXaeYjJF0Sc9nkzYF32EDX9olx7j1hcKYFaiTrQXbcngZmvzuV0pG6uZPU3ZuA/GIsgxSHOm6jrQ==} resolution: {integrity: sha512-hR0ozxR97t1dzWw+esoxFijZ15gagt7EIgF3CNifu2yICXhS7gnun4Y+j+odJQtNSl7wvqMdoLbViIShwe/fdw==}
'@iconify-json/vscode-icons@1.2.67': '@iconify-json/vscode-icons@1.2.67':
resolution: {integrity: sha512-/fObxEkBtqK2e1qf1IRjuZ4drWknAnzykdT2ngGAKESf35tCcj0Lx3MdsxYBneE5YbgvsUfOl0hbZ59R5s19vw==} resolution: {integrity: sha512-/fObxEkBtqK2e1qf1IRjuZ4drWknAnzykdT2ngGAKESf35tCcj0Lx3MdsxYBneE5YbgvsUfOl0hbZ59R5s19vw==}
@ -636,13 +636,13 @@ packages:
markdown-it: markdown-it:
optional: true optional: true
'@mdit/plugin-anchor@1.1.1': '@mdit/plugin-anchor@1.1.2':
resolution: {integrity: sha512-42m7dxzvfLbo3YnteMB70aXFQ1TtnalyNLyPUDj5rr1FqTNf8pnHjQbgmf6FCjshg6BrfLVx7zpHJ7UUehQ/fA==} resolution: {integrity: sha512-/p+GIjjG2E8iQRGtIxAYgbVeZ37U0Rxn5w/KYNKzhgrpGGMYvgDKneLwV/pYDoxxZSKTXF8tpZeuFNY4jR0S4g==}
peerDependencies: peerDependencies:
markdown-it: ^14.2.0 markdown-it: ^14.2.0
'@mdit/plugin-attrs@1.0.2': '@mdit/plugin-attrs@1.1.0':
resolution: {integrity: sha512-R9bvWt/MqyMAZ0povWkEh9n55+cQff+bXh9GZnd6Av+mPdE+L/k6jCOAyKzjUEWhQ8qqd5Keyqtn7h62gZq/VA==} resolution: {integrity: sha512-xdRnlnvjUoIGWNPmESk2BICLcyZFOk79Avpu/4dyf73Yz5JhQAhuJ+CAtaGTWQzp2NV5EVdlxg07qQc3f6BTfw==}
engines: {node: '>=22'} engines: {node: '>=22'}
peerDependencies: peerDependencies:
markdown-it: ^14.2.0 markdown-it: ^14.2.0
@ -650,8 +650,8 @@ packages:
markdown-it: markdown-it:
optional: true optional: true
'@mdit/plugin-container@1.0.1': '@mdit/plugin-container@1.0.2':
resolution: {integrity: sha512-dT6eoqKxpWcsIHYPTNjIOq/pIzhv6LJTNXjfLSk847goQtlvMZ/Y+kRKH+wQGqDKmNwxDbEQfDbcoqhNXEjuhA==} resolution: {integrity: sha512-gCpqmadamWVbDI7+OgkywDGjfgqxrjZo3U+iK+sH7vERnZyX4sx1X65pXbqrem8Q5/4yO5t0d+kWkPC733ceRw==}
engines: {node: '>=22'} engines: {node: '>=22'}
peerDependencies: peerDependencies:
markdown-it: ^14.2.0 markdown-it: ^14.2.0
@ -659,8 +659,8 @@ packages:
markdown-it: markdown-it:
optional: true optional: true
'@mdit/plugin-emoji@1.1.0': '@mdit/plugin-emoji@1.1.1':
resolution: {integrity: sha512-rdGhZ0OVhK0EhiVpw8v22BdTq7XZ6Adrcbq3hR2Cx/YwGnL+kSXFtcGOeJXphiSics7oNgpIKdNyl974z7Cj1A==} resolution: {integrity: sha512-8guVkqXImO/V4eCKMxrKot7EO3HI9sIsS2fqFYBQUpy2j3HbsItvsx5QXKf71Nzyr6WKxpznDas/tewrbC2pcg==}
engines: {node: '>=22'} engines: {node: '>=22'}
peerDependencies: peerDependencies:
markdown-it: ^14.2.0 markdown-it: ^14.2.0
@ -668,14 +668,14 @@ packages:
markdown-it: markdown-it:
optional: true optional: true
'@mdit/plugin-footnote@1.0.1': '@mdit/plugin-footnote@1.0.2':
resolution: {integrity: sha512-PrH02dlVQT8/vPvfGrLHpcHq8N0+gOaAVNOfuhwlPqWCL4He3o+buUCxm1Uem02+UR8/TRBW50M/XD/dVSe2jw==} resolution: {integrity: sha512-G7pzoczbzVph9s9eyLuG9T24//ub9vK7A8jFCESQIzZj83ZJF3BHs7r/wcQx4KzmH+kDpLiAbhvzT/Y3+7OUig==}
engines: {node: '>=22'} engines: {node: '>=22'}
peerDependencies: peerDependencies:
markdown-it: ^14.2.0 markdown-it: ^14.2.0
'@mdit/plugin-tasklist@1.0.1': '@mdit/plugin-tasklist@1.0.2':
resolution: {integrity: sha512-Ks/Tihw5ibbkP2qOZzltkbiTk8RfpxDRvqdn4hl1wIs3VmeKITIQ36gN4DsuotSauA9SBe/mL0QJIfuSCrXqrw==} resolution: {integrity: sha512-h+WCr/h+K0pbyZdJnrPEpgeMFlffzqfviY3TDmj7PdZiVAS1YF1s95+tt9bvmJWKPrALV/IgePxsu5LWnODMmw==}
engines: {node: '>=22'} engines: {node: '>=22'}
peerDependencies: peerDependencies:
markdown-it: ^14.2.0 markdown-it: ^14.2.0
@ -863,141 +863,141 @@ packages:
rollup: rollup:
optional: true optional: true
'@rollup/rollup-android-arm-eabi@4.62.2': '@rollup/rollup-android-arm-eabi@4.62.3':
resolution: {integrity: sha512-6o7ZLZK+BeenkZCFNDXqpbjw9bD6nuWonvS/lwQJp7NoVVxm6p3qE7qQ5jGuBjiFsgvqjD8mZAU5oWxTmbOeOg==} resolution: {integrity: sha512-c0wdcekXtQvvn5Tsrk/+op/gUArrbWaFduBnTLP2l1cKLSQs4diMWjJw3m6A0DdzT8dAAX95KpkJ3qynCePbmw==}
cpu: [arm] cpu: [arm]
os: [android] os: [android]
'@rollup/rollup-android-arm64@4.62.2': '@rollup/rollup-android-arm64@4.62.3':
resolution: {integrity: sha512-BaH7BllCACHoH1LguOU56UItGfUWjujlO65kS9LAodViaN4bwIKd7oeW/ZHJ/4ljr/7MIiENnNy3HJ0zXv8Zkw==} resolution: {integrity: sha512-3YjElDdWN+qXAFbJ/CzPV+0wspLqh54k/I6GfdYtEJRqg7buSgc1yPM3B+93j1M4neobtkATHZTmxK2AMVGfnA==}
cpu: [arm64] cpu: [arm64]
os: [android] os: [android]
'@rollup/rollup-darwin-arm64@4.62.2': '@rollup/rollup-darwin-arm64@4.62.3':
resolution: {integrity: sha512-v39RCCvj4He82I9sFmk+M1VZ0PLM9sfsLVikjfx2hYBNALhrrOR2D3JjQA6AhlaSOgcR+RzrKY7e1+bT6SUO/A==} resolution: {integrity: sha512-Pch2pFNOxxz1hTjypIdPyRTR6riiwRl84+VcN9djS680fw+Co1nAJINrdpqp7KV0NvyuU8ilZXZCjd7ykJl1GQ==}
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
'@rollup/rollup-darwin-x64@4.62.2': '@rollup/rollup-darwin-x64@4.62.3':
resolution: {integrity: sha512-yl0y2vq3S3lHeuXhEdss6TWfKW8vkujImO12tn4ZkG/4oghr09LvdYm2RElVjokTQiUvDUGXLGsYeLqUMCKpGA==} resolution: {integrity: sha512-LEuncFUHFiF8t4yZVZvvZA1wk0pjAscRnsrn1EfTEmN4HXotBi2YtcnLRyaK6UbuczW7xZS5ES+81Rdz8Z0T6g==}
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
'@rollup/rollup-freebsd-arm64@4.62.2': '@rollup/rollup-freebsd-arm64@4.62.3':
resolution: {integrity: sha512-tT4pvt4qXD+vEoezupCWi+a1F0vvDiksiHc+PxRlYTOH1I6/X4id9jPxTP+Fg+545euaFT1jJVs4CEdHZAU1vw==} resolution: {integrity: sha512-zvBUvsQUpOWALdDsk6qbS8bXf2VxmPisuudNDrY7x0p0jBdsoZl8HsHczIOgkQiZldmcacMKtBzpoGVNeIe2bQ==}
cpu: [arm64] cpu: [arm64]
os: [freebsd] os: [freebsd]
'@rollup/rollup-freebsd-x64@4.62.2': '@rollup/rollup-freebsd-x64@4.62.3':
resolution: {integrity: sha512-6nU5F2wCW+qvCBhTn1pdIU3bzsIoF7EUwsCDRxilWGprQR6yd508YnH9+OKFCwpfS8pjZqDUmnCAr7exax0XCg==} resolution: {integrity: sha512-C2KmNrcSem/AMg984H/dev+si0lieQGdXdR/lYGJnuumXnFb9Y7QdiI62obFdLlxRYLBv4P0eUVIDbD4c1vVvw==}
cpu: [x64] cpu: [x64]
os: [freebsd] os: [freebsd]
'@rollup/rollup-linux-arm-gnueabihf@4.62.2': '@rollup/rollup-linux-arm-gnueabihf@4.62.3':
resolution: {integrity: sha512-n1GJHPOvpIfhi3TmrCeh6S6URt9BFCt0KQE3qvexyGCTAKpR4Lg+eWvNZEqu7epxwus/8ElT3hacYEucm49SZg==} resolution: {integrity: sha512-ggXnsTAEzNQx74XpunRsiZ9aBZDsI7XIa0hm2nzR9f4WzH5/f/d73ZSDaC5ejJ8YLY4NW+V3wr0tjOaeCq8hqA==}
cpu: [arm] cpu: [arm]
os: [linux] os: [linux]
libc: [glibc] libc: [glibc]
'@rollup/rollup-linux-arm-musleabihf@4.62.2': '@rollup/rollup-linux-arm-musleabihf@4.62.3':
resolution: {integrity: sha512-JqgflS8wEB+UXV/vS1RpRbifGBeN4D5lz8D8oOFbFZw4vedvdOgCFAjfBmIMdW3yL10XpQQ0Ambepw6MXrhOnA==} resolution: {integrity: sha512-2vng+FlzNUhKZxtej3IUqJgbZoQk2M/dwQM20+ULV0R/E/8tr9/P6uEf2iiGIk4HL0zMKh5Jry7mUHdUOvyGgA==}
cpu: [arm] cpu: [arm]
os: [linux] os: [linux]
libc: [musl] libc: [musl]
'@rollup/rollup-linux-arm64-gnu@4.62.2': '@rollup/rollup-linux-arm64-gnu@4.62.3':
resolution: {integrity: sha512-wnFJkogWvN4jm/hQRF2UBaeUmk20j5+DmHvoyWii2b8HJDyvz1MF2OU/6ynXt2KR63rbZLWkFpoytpdc/yBuSA==} resolution: {integrity: sha512-LLLFZKt4/Nraf9rxDkhiU8QVgLF4WmCkfr0L4fj0fPfIZFBib0DeiFk1hhaYKd03LFAFJcxHslhDFlNJLylf5Q==}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
libc: [glibc] libc: [glibc]
'@rollup/rollup-linux-arm64-musl@4.62.2': '@rollup/rollup-linux-arm64-musl@4.62.3':
resolution: {integrity: sha512-HVu2bp0zhvJ8xHEV9+UUs7S90VadmBSY3LcIMvozbPo4AuMGDWlz3ymHLHZPX4hR67TKTt8Qp5PJ5RBg/i+RMQ==} resolution: {integrity: sha512-WJkdQCvS9sWNOUBJZfQRKpZGFBztRzcowI+nndmflKgU4XY+3a420FgTOSKTsVqJbnzSxeT4vaJalpOaPo2YCQ==}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
libc: [musl] libc: [musl]
'@rollup/rollup-linux-loong64-gnu@4.62.2': '@rollup/rollup-linux-loong64-gnu@4.62.3':
resolution: {integrity: sha512-mQqqAV8QaoSgr9I2fKDLY2BAVvmKjWoGiu/cSYQonsLvtqwEn1E4QYfnCOcp5zoEqNhsDYin1s6jx/VJmrxlZg==} resolution: {integrity: sha512-PwHXCCS2n64/1Ot6rP1YEYA02MGYBcQlr8CSZZyrUG2O7NH6NklYmvr9v3Jy+5e/eDeNchc/ukmKJi9LuflMIQ==}
cpu: [loong64] cpu: [loong64]
os: [linux] os: [linux]
libc: [glibc] libc: [glibc]
'@rollup/rollup-linux-loong64-musl@4.62.2': '@rollup/rollup-linux-loong64-musl@4.62.3':
resolution: {integrity: sha512-IxKLoxCQ2IWi6bT2akyDUBGsOImDKB+sPp4EsTmwFQ/fMwpCKm8uLSSgP/Kx/QYUgKis6SEZ5/Nlhup0DIA0PQ==} resolution: {integrity: sha512-vUjxINQu3RC8NZS3ykk1gN65gIz8pAopOq2HXuZhiIxHdx7TFvDG+jgrdSgInu1Eza4/Rfi2VzZgyIgEH4WOaw==}
cpu: [loong64] cpu: [loong64]
os: [linux] os: [linux]
libc: [musl] libc: [musl]
'@rollup/rollup-linux-ppc64-gnu@4.62.2': '@rollup/rollup-linux-ppc64-gnu@4.62.3':
resolution: {integrity: sha512-Mk5ha2RQSgyFfmYYLkBpPnUk8D8FriBxesO1u9O75X0mHgXL1UQcH5Itl2lurWL2tj0RxV9b9tJgipac0hRY9A==} resolution: {integrity: sha512-wzko4aJ13+0G3kGnviCg5gnXFKd40izKsrf2uOw12US4XqprkDrmwOpeW14aSNa37V8bfPcz5Fkob6LZ3BAPmA==}
cpu: [ppc64] cpu: [ppc64]
os: [linux] os: [linux]
libc: [glibc] libc: [glibc]
'@rollup/rollup-linux-ppc64-musl@4.62.2': '@rollup/rollup-linux-ppc64-musl@4.62.3':
resolution: {integrity: sha512-CjvEnqJL/0/TQ3TXX3OPIJ/kmBellrWd4heXUmHeJlTnmwjKpSJzoehLaL6Xk0ZnMHBu9dZuFADNOrtjF4v+2w==} resolution: {integrity: sha512-8120ue0JUMSwy11stlwnfdX3pPd+WZYGCDBwEHWtIHi6pOpZmsEF5QKB7a/UN+XFdqvobxz98kv8RTqikyCEBw==}
cpu: [ppc64] cpu: [ppc64]
os: [linux] os: [linux]
libc: [musl] libc: [musl]
'@rollup/rollup-linux-riscv64-gnu@4.62.2': '@rollup/rollup-linux-riscv64-gnu@4.62.3':
resolution: {integrity: sha512-1SiZbzwdkaDURsew/tSOrooKiYy7EQGT6m8ufavAi9NEyQb/6VuIxFXAL1fqa4iZe3g4NbNk4P7J32z2tw5Mgg==} resolution: {integrity: sha512-XLFHnR3tXMjbOCh2vtVJHmxt+995uJsTERQyseFDRA0xxMxyTZPLa3OIUlyFaO4mF/Lu0FjmWHCuPXJT1n/IOg==}
cpu: [riscv64] cpu: [riscv64]
os: [linux] os: [linux]
libc: [glibc] libc: [glibc]
'@rollup/rollup-linux-riscv64-musl@4.62.2': '@rollup/rollup-linux-riscv64-musl@4.62.3':
resolution: {integrity: sha512-nQts12zJ3NQRoE6uYljOH89v7szzLDvG2JD/vsX+vGXU8w/At1GowTZ5/7qeFQ8m7L55rpR8Okugnuo5bgjy2Q==} resolution: {integrity: sha512-se6yXvNGMIl0f+RQzyh7XAmia8/9kplQx424wnG2w0C1oi6XgO6Y8otKhdXFHbHs88Ihavzmvh1NWjuovE76BQ==}
cpu: [riscv64] cpu: [riscv64]
os: [linux] os: [linux]
libc: [musl] libc: [musl]
'@rollup/rollup-linux-s390x-gnu@4.62.2': '@rollup/rollup-linux-s390x-gnu@4.62.3':
resolution: {integrity: sha512-E9/ll019jhPIJgpzfZoIkBGhcz+kKNgVWYRY0zr9srBdPPFVpvOKW8VaJKUbeK+eZXyQF9ltME+Kk6affeaPgg==} resolution: {integrity: sha512-gNoxRefktVIiGflpONuxWWXZAzIQG++z9qHO3xKwk4WdDMuQja3JHGfE1u0i3PfPDyvhypdk+WrgIJqLhGG7sg==}
cpu: [s390x] cpu: [s390x]
os: [linux] os: [linux]
libc: [glibc] libc: [glibc]
'@rollup/rollup-linux-x64-gnu@4.62.2': '@rollup/rollup-linux-x64-gnu@4.62.3':
resolution: {integrity: sha512-5BqxR/pshjey51iliyzTD5Xi3EN0aLmQ2lZ3lvefVV9c82BvrLo2/6OT55iifpWBufs6kdwWbuOKS841DrmK9A==} resolution: {integrity: sha512-V4KtWtQfAFMU7+9/A/VDps/VI8CHd3cYz0L8sgJzz8qK7eY7wI4ruFD82UYIYvW9Z4DtlTfhQcsl4XyPHW5uSg==}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
libc: [glibc] libc: [glibc]
'@rollup/rollup-linux-x64-musl@4.62.2': '@rollup/rollup-linux-x64-musl@4.62.3':
resolution: {integrity: sha512-uNN83XxQrRAh/w0/pmAfibcwyb6YWt4gP+dpnQKPVJshAloQ785ii8CT8ZCIxkGg9opVsvAlGhFitSm6D1Jjpg==} resolution: {integrity: sha512-LBx9LYXvj2CBkMkjLdNAWLwH0MLMin7do2VcVo9kVPibGLkY0BQQut2fv7NVqkXqZ/CrAu9LqDHVV1xHCMpCPw==}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
libc: [musl] libc: [musl]
'@rollup/rollup-openbsd-x64@4.62.2': '@rollup/rollup-openbsd-x64@4.62.3':
resolution: {integrity: sha512-srjEIxSH3LRnJN6THczDHWQplqEMFiAJrTab0msUryh9kwNpkICf3Ea6q6MN/2cZwRFUNx5w+h6Hpi4QuHS6Zg==} resolution: {integrity: sha512-ABVf3Q0RCu7NcyCCOZQI0pJ3GuSdfSl8EXcy88QtdceIMIoCUdfhsJChZ64L9zVM2aJHjde1Bhn5uqSRcX9ySA==}
cpu: [x64] cpu: [x64]
os: [openbsd] os: [openbsd]
'@rollup/rollup-openharmony-arm64@4.62.2': '@rollup/rollup-openharmony-arm64@4.62.3':
resolution: {integrity: sha512-8hOJnxgbyObnCm5AlRA3A931xX19xq80RjVTKgJOvEKWqJruP/Uf12IbAOaDjjEXYRewwHLfmF0YRIdK3OwKWA==} resolution: {integrity: sha512-+2Cy/ldweGBLlPIKsQLF8U5N44a0KDdbrk1rAjHOM9M2K+kGdIVjHLmmrZIcx+9Ny3ke/1JomCsDI1ocb11+sg==}
cpu: [arm64] cpu: [arm64]
os: [openharmony] os: [openharmony]
'@rollup/rollup-win32-arm64-msvc@4.62.2': '@rollup/rollup-win32-arm64-msvc@4.62.3':
resolution: {integrity: sha512-mmF4AY1i0hG/bLWUctUq59gtmgaSIRa3cu/A3JFRp/sCNEme2bgDEiDS22P9FbnJB8NJNF4jPJiSP5RHQpUTDg==} resolution: {integrity: sha512-dtZvzc8BedpSaFNy75x6uiWwAGTH+aZHDtdrqP6qk+WcLJrfti6sGje1ZJ9UxyzDLF23d/mV+PaMwuC0hL7UVA==}
cpu: [arm64] cpu: [arm64]
os: [win32] os: [win32]
'@rollup/rollup-win32-ia32-msvc@4.62.2': '@rollup/rollup-win32-ia32-msvc@4.62.3':
resolution: {integrity: sha512-DZgkknc6jhHrk46V25vbAM0zZkyP0nSDkJB8/dRkLTxv470dOmWDqGoEJl/9A0dFfS7yE3REOwNDxpHwSLSt0Q==} resolution: {integrity: sha512-Rj8Ra4noo+aYy7sKBggCx0407mws34kAb1ySyWuq5DAtFBQdkSwnsjCgPrhPe9cvgBKZIukpE+CVHvORCS93kQ==}
cpu: [ia32] cpu: [ia32]
os: [win32] os: [win32]
'@rollup/rollup-win32-x64-gnu@4.62.2': '@rollup/rollup-win32-x64-gnu@4.62.3':
resolution: {integrity: sha512-T6xr6ucWSFto+VGajA8YH26LdpHRuP4YLHEKAtCWvJDOlnmWcDZVCI2Jmjr+IFHDlt2zRaTAKE4tfjTaWLgJBg==} resolution: {integrity: sha512-vp7N084ew/odXn2gi/mzm9mUkQu9l6AiN6dt4IeUM2Uvm9o+cVmP+YkqbMOteLbiGgqBBlJZjIMYVCfOOIVbVQ==}
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
'@rollup/rollup-win32-x64-msvc@4.62.2': '@rollup/rollup-win32-x64-msvc@4.62.3':
resolution: {integrity: sha512-BfzEnDJOt9T8M989/lA37EcJgat01wLRnoi5dQf3QzOH7jzpqTAzdDbVfRljVr5r+jzKqpbHeyOfAaXxAd0PAA==} resolution: {integrity: sha512-MOG/3gTOn4Fwf574RVOaY61I5o6P90legkFADiTyn1hyjNydT+cerU2rLUwPdZkKKyJ+iT+K9p7WXK4LM1Ka6g==}
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
@ -1122,8 +1122,8 @@ packages:
'@types/node@24.13.3': '@types/node@24.13.3':
resolution: {integrity: sha512-Dh8vAsV36ig5wa9OX4pXvMc9D3Veibfw2wix0CUwYODLD8nkj9UsLjASr49nPg+2eKzxhBV+v7L8pXvT4e639Q==} resolution: {integrity: sha512-Dh8vAsV36ig5wa9OX4pXvMc9D3Veibfw2wix0CUwYODLD8nkj9UsLjASr49nPg+2eKzxhBV+v7L8pXvT4e639Q==}
'@types/node@26.1.1': '@types/node@26.1.2':
resolution: {integrity: sha512-nxAkRSVkN1Y0JC1W8ky/fTfkGsMmcrRsbx+3XoZE+rMOX71kLYTV7fLXpqud1GpbpP5TuffXFqfX7fH2GgZREw==} resolution: {integrity: sha512-Vu4a5UFA9rIIFJ7rB/Vaafh9lrCQszopTCx6KjFboXTGQbPNasehVR5TEiithSDGyd1DEiUByggTZsg8jukeIg==}
'@types/picomatch@4.0.3': '@types/picomatch@4.0.3':
resolution: {integrity: sha512-iG0T6+nYJ9FAPmx9SsUlnwcq1ZVRuCXcVEvWnntoPlrOpwtSTKNDC9uVAxTsC3PUvJ+99n4RpAcNgBbHX3JSnQ==} resolution: {integrity: sha512-iG0T6+nYJ9FAPmx9SsUlnwcq1ZVRuCXcVEvWnntoPlrOpwtSTKNDC9uVAxTsC3PUvJ+99n4RpAcNgBbHX3JSnQ==}
@ -1454,8 +1454,8 @@ packages:
resolution: {integrity: sha512-cs+LadpH7Kpw0M3k8wurk+sOVVDAENA0iK4OBOrkL94j5lEVYRJ4j3zd2bhY9qgzyrPqthdcYT3axzRN7AliMg==} resolution: {integrity: sha512-cs+LadpH7Kpw0M3k8wurk+sOVVDAENA0iK4OBOrkL94j5lEVYRJ4j3zd2bhY9qgzyrPqthdcYT3axzRN7AliMg==}
engines: {node: '>=22'} engines: {node: '>=22'}
conventional-commits-parser@7.1.0: conventional-commits-parser@7.1.1:
resolution: {integrity: sha512-DPp6hkUjvwIivxbkrTiLXeRswNv1A/4GFA2X6scXma0AMa9632V3TwxmrlkUIEtUktiM3Ln+RrSH2xlP3/jUTw==} resolution: {integrity: sha512-B0f42jI++V5Vb7qK+DDw68r0dNxz5hk+RdKUkx2NOi39emc9hsHa3u2M3doF7QQhRFzCrAj7uM90teG+RBTaYQ==}
engines: {node: '>=22'} engines: {node: '>=22'}
hasBin: true hasBin: true
@ -2140,8 +2140,8 @@ packages:
resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==}
engines: {node: '>=18'} engines: {node: '>=18'}
minimatch@10.2.5: minimatch@10.2.6:
resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==}
engines: {node: 18 || 20 || >=22} engines: {node: 18 || 20 || >=22}
minimist@1.2.8: minimist@1.2.8:
@ -2386,8 +2386,8 @@ packages:
esbuild: '>=0.18.0' esbuild: '>=0.18.0'
rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0
rollup@4.62.2: rollup@4.62.3:
resolution: {integrity: sha512-RFnrW4lhXA3s3eqHDZvN654g8OTjzRfqpIRJYczCGB6HzphckVAi/Qh4tbPUbRuDi7s1Llv8g/NspLkttY3gTA==} resolution: {integrity: sha512-Gu0c0iH9FzgX1L1t7ByIbbS3Vmdz+6KHm/EsqmmC71gUQ82yvZRkTK6XzrFObSka91WUVdynqp6nsfilzr5k6Q==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'} engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true hasBin: true
@ -2557,8 +2557,8 @@ packages:
resolution: {integrity: sha512-dRXchy+C0IgK8WPC6xvCHFRIWYUbqqdEIKPaKo/AcTUNzwLTK6AH7RjdLWsEZcAN/TBdtfUw3PYEgPr5VPr6ww==} resolution: {integrity: sha512-dRXchy+C0IgK8WPC6xvCHFRIWYUbqqdEIKPaKo/AcTUNzwLTK6AH7RjdLWsEZcAN/TBdtfUw3PYEgPr5VPr6ww==}
engines: {node: '>=14.16'} engines: {node: '>=14.16'}
tokenx@1.3.0: tokenx@1.6.0:
resolution: {integrity: sha512-NLdXTEZkKiO0gZuLtMoZKjCXTREXeZZt8nnnNeyoXtNZAfG/GKGSbQtLU5STspc0rMSwcA+UJfWZkbNU01iKmQ==} resolution: {integrity: sha512-CKTjk345ajvBAUp5xUI9a5KKN0zU0lBueVHQbCskH1Hp6WkUKsPW2qGCYNs0pxNyfzxfo+IIjdt2W4sMbw/qBw==}
totalist@3.0.1: totalist@3.0.1:
resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
@ -2821,8 +2821,8 @@ packages:
resolution: {integrity: sha512-GZtjxm/J/4TSxuL3FNYjCmLktBTnIw/rVmKSIyKeYAZpmJB2ig9VauCC5xsa82GNKVKDAqpOn3KVzNt0zmrU0g==} resolution: {integrity: sha512-GZtjxm/J/4TSxuL3FNYjCmLktBTnIw/rVmKSIyKeYAZpmJB2ig9VauCC5xsa82GNKVKDAqpOn3KVzNt0zmrU0g==}
engines: {node: '>=12'} engines: {node: '>=12'}
yoctocolors@2.1.2: yoctocolors@2.2.0:
resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} resolution: {integrity: sha512-xYqdZFUK/VYazNl/oCDYN+3WloWQwMfZxBoiNt6qNyk+xfOdi598muWE42rNZFp1kNOiqW936q5RhUdnpqElSg==}
engines: {node: '>=18'} engines: {node: '>=18'}
zod@3.25.76: zod@3.25.76:
@ -2877,14 +2877,14 @@ snapshots:
fast-wrap-ansi: 0.2.2 fast-wrap-ansi: 0.2.2
sisteransi: 1.0.5 sisteransi: 1.0.5
'@conventional-changelog/git-client@3.1.0(conventional-commits-filter@6.0.1)(conventional-commits-parser@7.1.0)': '@conventional-changelog/git-client@3.1.0(conventional-commits-filter@6.0.1)(conventional-commits-parser@7.1.1)':
dependencies: dependencies:
'@simple-libs/child-process-utils': 2.0.0 '@simple-libs/child-process-utils': 2.0.0
'@simple-libs/stream-utils': 2.0.0 '@simple-libs/stream-utils': 2.0.0
semver: 7.8.5 semver: 7.8.5
optionalDependencies: optionalDependencies:
conventional-commits-filter: 6.0.1 conventional-commits-filter: 6.0.1
conventional-commits-parser: 7.1.0 conventional-commits-parser: 7.1.1
'@conventional-changelog/template@1.2.1': {} '@conventional-changelog/template@1.2.1': {}
@ -3008,7 +3008,7 @@ snapshots:
dependencies: dependencies:
'@iconify/types': 2.0.0 '@iconify/types': 2.0.0
'@iconify-json/simple-icons@1.2.91': '@iconify-json/simple-icons@1.2.92':
dependencies: dependencies:
'@iconify/types': 2.0.0 '@iconify/types': 2.0.0
@ -3102,36 +3102,36 @@ snapshots:
optionalDependencies: optionalDependencies:
markdown-it: 14.3.0 markdown-it: 14.3.0
'@mdit/plugin-anchor@1.1.1(markdown-it@14.3.0)': '@mdit/plugin-anchor@1.1.2(markdown-it@14.3.0)':
dependencies: dependencies:
'@types/markdown-it': 14.1.2 '@types/markdown-it': 14.1.2
markdown-it: 14.3.0 markdown-it: 14.3.0
'@mdit/plugin-attrs@1.0.2(markdown-it@14.3.0)': '@mdit/plugin-attrs@1.1.0(markdown-it@14.3.0)':
dependencies: dependencies:
'@mdit/helper': 1.0.1(markdown-it@14.3.0) '@mdit/helper': 1.0.1(markdown-it@14.3.0)
'@types/markdown-it': 14.1.2 '@types/markdown-it': 14.1.2
optionalDependencies: optionalDependencies:
markdown-it: 14.3.0 markdown-it: 14.3.0
'@mdit/plugin-container@1.0.1(markdown-it@14.3.0)': '@mdit/plugin-container@1.0.2(markdown-it@14.3.0)':
dependencies: dependencies:
'@types/markdown-it': 14.1.2 '@types/markdown-it': 14.1.2
optionalDependencies: optionalDependencies:
markdown-it: 14.3.0 markdown-it: 14.3.0
'@mdit/plugin-emoji@1.1.0(markdown-it@14.3.0)': '@mdit/plugin-emoji@1.1.1(markdown-it@14.3.0)':
dependencies: dependencies:
'@types/markdown-it': 14.1.2 '@types/markdown-it': 14.1.2
optionalDependencies: optionalDependencies:
markdown-it: 14.3.0 markdown-it: 14.3.0
'@mdit/plugin-footnote@1.0.1(markdown-it@14.3.0)': '@mdit/plugin-footnote@1.0.2(markdown-it@14.3.0)':
dependencies: dependencies:
'@types/markdown-it': 14.1.2 '@types/markdown-it': 14.1.2
markdown-it: 14.3.0 markdown-it: 14.3.0
'@mdit/plugin-tasklist@1.0.1(markdown-it@14.3.0)': '@mdit/plugin-tasklist@1.0.2(markdown-it@14.3.0)':
dependencies: dependencies:
'@types/markdown-it': 14.1.2 '@types/markdown-it': 14.1.2
optionalDependencies: optionalDependencies:
@ -3213,13 +3213,13 @@ snapshots:
'@rolldown/pluginutils@1.0.1': {} '@rolldown/pluginutils@1.0.1': {}
'@rollup/plugin-alias@6.0.0(rollup@4.62.2)': '@rollup/plugin-alias@6.0.0(rollup@4.62.3)':
optionalDependencies: optionalDependencies:
rollup: 4.62.2 rollup: 4.62.3
'@rollup/plugin-commonjs@29.0.3(rollup@4.62.2)': '@rollup/plugin-commonjs@29.0.3(rollup@4.62.3)':
dependencies: dependencies:
'@rollup/pluginutils': 5.4.0(rollup@4.62.2) '@rollup/pluginutils': 5.4.0(rollup@4.62.3)
commondir: 1.0.1 commondir: 1.0.1
estree-walker: 2.0.2 estree-walker: 2.0.2
fdir: 6.5.0(picomatch@4.0.5) fdir: 6.5.0(picomatch@4.0.5)
@ -3227,112 +3227,112 @@ snapshots:
magic-string: 0.30.21 magic-string: 0.30.21
picomatch: 4.0.5 picomatch: 4.0.5
optionalDependencies: optionalDependencies:
rollup: 4.62.2 rollup: 4.62.3
'@rollup/plugin-json@6.1.0(rollup@4.62.2)': '@rollup/plugin-json@6.1.0(rollup@4.62.3)':
dependencies: dependencies:
'@rollup/pluginutils': 5.4.0(rollup@4.62.2) '@rollup/pluginutils': 5.4.0(rollup@4.62.3)
optionalDependencies: optionalDependencies:
rollup: 4.62.2 rollup: 4.62.3
'@rollup/plugin-node-resolve@16.0.3(rollup@4.62.2)': '@rollup/plugin-node-resolve@16.0.3(rollup@4.62.3)':
dependencies: dependencies:
'@rollup/pluginutils': 5.4.0(rollup@4.62.2) '@rollup/pluginutils': 5.4.0(rollup@4.62.3)
'@types/resolve': 1.20.2 '@types/resolve': 1.20.2
deepmerge: 4.3.1 deepmerge: 4.3.1
is-module: 1.0.0 is-module: 1.0.0
resolve: 1.22.12 resolve: 1.22.12
optionalDependencies: optionalDependencies:
rollup: 4.62.2 rollup: 4.62.3
'@rollup/plugin-replace@6.0.3(rollup@4.62.2)': '@rollup/plugin-replace@6.0.3(rollup@4.62.3)':
dependencies: dependencies:
'@rollup/pluginutils': 5.4.0(rollup@4.62.2) '@rollup/pluginutils': 5.4.0(rollup@4.62.3)
magic-string: 0.30.21 magic-string: 0.30.21
optionalDependencies: optionalDependencies:
rollup: 4.62.2 rollup: 4.62.3
'@rollup/pluginutils@5.4.0(rollup@4.62.2)': '@rollup/pluginutils@5.4.0(rollup@4.62.3)':
dependencies: dependencies:
'@types/estree': 1.0.9 '@types/estree': 1.0.9
estree-walker: 2.0.2 estree-walker: 2.0.2
picomatch: 4.0.5 picomatch: 4.0.5
optionalDependencies: optionalDependencies:
rollup: 4.62.2 rollup: 4.62.3
'@rollup/rollup-android-arm-eabi@4.62.2': '@rollup/rollup-android-arm-eabi@4.62.3':
optional: true optional: true
'@rollup/rollup-android-arm64@4.62.2': '@rollup/rollup-android-arm64@4.62.3':
optional: true optional: true
'@rollup/rollup-darwin-arm64@4.62.2': '@rollup/rollup-darwin-arm64@4.62.3':
optional: true optional: true
'@rollup/rollup-darwin-x64@4.62.2': '@rollup/rollup-darwin-x64@4.62.3':
optional: true optional: true
'@rollup/rollup-freebsd-arm64@4.62.2': '@rollup/rollup-freebsd-arm64@4.62.3':
optional: true optional: true
'@rollup/rollup-freebsd-x64@4.62.2': '@rollup/rollup-freebsd-x64@4.62.3':
optional: true optional: true
'@rollup/rollup-linux-arm-gnueabihf@4.62.2': '@rollup/rollup-linux-arm-gnueabihf@4.62.3':
optional: true optional: true
'@rollup/rollup-linux-arm-musleabihf@4.62.2': '@rollup/rollup-linux-arm-musleabihf@4.62.3':
optional: true optional: true
'@rollup/rollup-linux-arm64-gnu@4.62.2': '@rollup/rollup-linux-arm64-gnu@4.62.3':
optional: true optional: true
'@rollup/rollup-linux-arm64-musl@4.62.2': '@rollup/rollup-linux-arm64-musl@4.62.3':
optional: true optional: true
'@rollup/rollup-linux-loong64-gnu@4.62.2': '@rollup/rollup-linux-loong64-gnu@4.62.3':
optional: true optional: true
'@rollup/rollup-linux-loong64-musl@4.62.2': '@rollup/rollup-linux-loong64-musl@4.62.3':
optional: true optional: true
'@rollup/rollup-linux-ppc64-gnu@4.62.2': '@rollup/rollup-linux-ppc64-gnu@4.62.3':
optional: true optional: true
'@rollup/rollup-linux-ppc64-musl@4.62.2': '@rollup/rollup-linux-ppc64-musl@4.62.3':
optional: true optional: true
'@rollup/rollup-linux-riscv64-gnu@4.62.2': '@rollup/rollup-linux-riscv64-gnu@4.62.3':
optional: true optional: true
'@rollup/rollup-linux-riscv64-musl@4.62.2': '@rollup/rollup-linux-riscv64-musl@4.62.3':
optional: true optional: true
'@rollup/rollup-linux-s390x-gnu@4.62.2': '@rollup/rollup-linux-s390x-gnu@4.62.3':
optional: true optional: true
'@rollup/rollup-linux-x64-gnu@4.62.2': '@rollup/rollup-linux-x64-gnu@4.62.3':
optional: true optional: true
'@rollup/rollup-linux-x64-musl@4.62.2': '@rollup/rollup-linux-x64-musl@4.62.3':
optional: true optional: true
'@rollup/rollup-openbsd-x64@4.62.2': '@rollup/rollup-openbsd-x64@4.62.3':
optional: true optional: true
'@rollup/rollup-openharmony-arm64@4.62.2': '@rollup/rollup-openharmony-arm64@4.62.3':
optional: true optional: true
'@rollup/rollup-win32-arm64-msvc@4.62.2': '@rollup/rollup-win32-arm64-msvc@4.62.3':
optional: true optional: true
'@rollup/rollup-win32-ia32-msvc@4.62.2': '@rollup/rollup-win32-ia32-msvc@4.62.3':
optional: true optional: true
'@rollup/rollup-win32-x64-gnu@4.62.2': '@rollup/rollup-win32-x64-gnu@4.62.3':
optional: true optional: true
'@rollup/rollup-win32-x64-msvc@4.62.2': '@rollup/rollup-win32-x64-msvc@4.62.3':
optional: true optional: true
'@shikijs/core@4.3.1': '@shikijs/core@4.3.1':
@ -3422,7 +3422,7 @@ snapshots:
'@types/cross-spawn@6.0.6': '@types/cross-spawn@6.0.6':
dependencies: dependencies:
'@types/node': 26.1.1 '@types/node': 26.1.2
'@types/debug@4.1.13': '@types/debug@4.1.13':
dependencies: dependencies:
@ -3469,7 +3469,7 @@ snapshots:
dependencies: dependencies:
undici-types: 7.18.2 undici-types: 7.18.2
'@types/node@26.1.1': '@types/node@26.1.2':
dependencies: dependencies:
undici-types: 8.3.0 undici-types: 8.3.0
@ -3479,7 +3479,7 @@ snapshots:
'@types/sax@1.2.7': '@types/sax@1.2.7':
dependencies: dependencies:
'@types/node': 26.1.1 '@types/node': 26.1.2
'@types/semver@7.7.1': {} '@types/semver@7.7.1': {}
@ -3489,10 +3489,10 @@ snapshots:
'@ungap/structured-clone@1.3.3': {} '@ungap/structured-clone@1.3.3': {}
'@vitejs/plugin-vue@6.0.8(vite@8.1.5(@types/node@26.1.1)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3))': '@vitejs/plugin-vue@6.0.8(vite@8.1.5(@types/node@26.1.2)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3))':
dependencies: dependencies:
'@rolldown/pluginutils': 1.0.1 '@rolldown/pluginutils': 1.0.1
vite: 8.1.5(@types/node@26.1.1)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0) vite: 8.1.5(@types/node@26.1.2)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0)
vue: 3.5.40(typescript@5.9.3) vue: 3.5.40(typescript@5.9.3)
'@vitest/expect@4.1.10': '@vitest/expect@4.1.10':
@ -3504,13 +3504,13 @@ snapshots:
chai: 6.2.2 chai: 6.2.2
tinyrainbow: 3.1.0 tinyrainbow: 3.1.0
'@vitest/mocker@4.1.10(vite@8.1.5(@types/node@26.1.1)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0))': '@vitest/mocker@4.1.10(vite@8.1.5(@types/node@26.1.2)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0))':
dependencies: dependencies:
'@vitest/spy': 4.1.10 '@vitest/spy': 4.1.10
estree-walker: 3.0.3 estree-walker: 3.0.3
magic-string: 0.30.21 magic-string: 0.30.21
optionalDependencies: optionalDependencies:
vite: 8.1.5(@types/node@26.1.1)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0) vite: 8.1.5(@types/node@26.1.2)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0)
'@vitest/pretty-format@4.1.10': '@vitest/pretty-format@4.1.10':
dependencies: dependencies:
@ -3796,20 +3796,20 @@ snapshots:
conventional-changelog@8.1.0(conventional-commits-filter@6.0.1): conventional-changelog@8.1.0(conventional-commits-filter@6.0.1):
dependencies: dependencies:
'@conventional-changelog/git-client': 3.1.0(conventional-commits-filter@6.0.1)(conventional-commits-parser@7.1.0) '@conventional-changelog/git-client': 3.1.0(conventional-commits-filter@6.0.1)(conventional-commits-parser@7.1.1)
'@simple-libs/hosted-git-info': 2.0.0 '@simple-libs/hosted-git-info': 2.0.0
'@simple-libs/normalize-package-data': 1.0.0 '@simple-libs/normalize-package-data': 1.0.0
argue-cli: 3.1.0 argue-cli: 3.1.0
conventional-changelog-preset-loader: 6.0.1 conventional-changelog-preset-loader: 6.0.1
conventional-changelog-writer: 9.2.0 conventional-changelog-writer: 9.2.0
conventional-commits-parser: 7.1.0 conventional-commits-parser: 7.1.1
fd-package-json: 2.0.0 fd-package-json: 2.0.0
transitivePeerDependencies: transitivePeerDependencies:
- conventional-commits-filter - conventional-commits-filter
conventional-commits-filter@6.0.1: {} conventional-commits-filter@6.0.1: {}
conventional-commits-parser@7.1.0: conventional-commits-parser@7.1.1:
dependencies: dependencies:
'@simple-libs/stream-utils': 2.0.0 '@simple-libs/stream-utils': 2.0.0
argue-cli: 3.1.0 argue-cli: 3.1.0
@ -4302,7 +4302,7 @@ snapshots:
log-symbols@7.0.1: log-symbols@7.0.1:
dependencies: dependencies:
is-unicode-supported: 2.1.0 is-unicode-supported: 2.1.0
yoctocolors: 2.1.2 yoctocolors: 2.2.0
longest-streak@3.1.0: {} longest-streak@3.1.0: {}
@ -4583,7 +4583,7 @@ snapshots:
mimic-function@5.0.1: {} mimic-function@5.0.1: {}
minimatch@10.2.5: minimatch@10.2.6:
dependencies: dependencies:
brace-expansion: 5.0.8 brace-expansion: 5.0.8
@ -4815,54 +4815,54 @@ snapshots:
'@rolldown/binding-win32-arm64-msvc': 1.1.5 '@rolldown/binding-win32-arm64-msvc': 1.1.5
'@rolldown/binding-win32-x64-msvc': 1.1.5 '@rolldown/binding-win32-x64-msvc': 1.1.5
rollup-plugin-dts@6.1.1(rollup@4.62.2)(typescript@5.9.3): rollup-plugin-dts@6.1.1(rollup@4.62.3)(typescript@5.9.3):
dependencies: dependencies:
magic-string: 0.30.21 magic-string: 0.30.21
rollup: 4.62.2 rollup: 4.62.3
typescript: 5.9.3 typescript: 5.9.3
optionalDependencies: optionalDependencies:
'@babel/code-frame': 7.29.7 '@babel/code-frame': 7.29.7
rollup-plugin-esbuild@6.2.1(esbuild@0.27.7)(rollup@4.62.2): rollup-plugin-esbuild@6.2.1(esbuild@0.27.7)(rollup@4.62.3):
dependencies: dependencies:
debug: 4.4.3 debug: 4.4.3
es-module-lexer: 1.7.0 es-module-lexer: 1.7.0
esbuild: 0.27.7 esbuild: 0.27.7
get-tsconfig: 4.14.0 get-tsconfig: 4.14.0
rollup: 4.62.2 rollup: 4.62.3
unplugin-utils: 0.2.5 unplugin-utils: 0.2.5
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
rollup@4.62.2: rollup@4.62.3:
dependencies: dependencies:
'@types/estree': 1.0.9 '@types/estree': 1.0.9
optionalDependencies: optionalDependencies:
'@rollup/rollup-android-arm-eabi': 4.62.2 '@rollup/rollup-android-arm-eabi': 4.62.3
'@rollup/rollup-android-arm64': 4.62.2 '@rollup/rollup-android-arm64': 4.62.3
'@rollup/rollup-darwin-arm64': 4.62.2 '@rollup/rollup-darwin-arm64': 4.62.3
'@rollup/rollup-darwin-x64': 4.62.2 '@rollup/rollup-darwin-x64': 4.62.3
'@rollup/rollup-freebsd-arm64': 4.62.2 '@rollup/rollup-freebsd-arm64': 4.62.3
'@rollup/rollup-freebsd-x64': 4.62.2 '@rollup/rollup-freebsd-x64': 4.62.3
'@rollup/rollup-linux-arm-gnueabihf': 4.62.2 '@rollup/rollup-linux-arm-gnueabihf': 4.62.3
'@rollup/rollup-linux-arm-musleabihf': 4.62.2 '@rollup/rollup-linux-arm-musleabihf': 4.62.3
'@rollup/rollup-linux-arm64-gnu': 4.62.2 '@rollup/rollup-linux-arm64-gnu': 4.62.3
'@rollup/rollup-linux-arm64-musl': 4.62.2 '@rollup/rollup-linux-arm64-musl': 4.62.3
'@rollup/rollup-linux-loong64-gnu': 4.62.2 '@rollup/rollup-linux-loong64-gnu': 4.62.3
'@rollup/rollup-linux-loong64-musl': 4.62.2 '@rollup/rollup-linux-loong64-musl': 4.62.3
'@rollup/rollup-linux-ppc64-gnu': 4.62.2 '@rollup/rollup-linux-ppc64-gnu': 4.62.3
'@rollup/rollup-linux-ppc64-musl': 4.62.2 '@rollup/rollup-linux-ppc64-musl': 4.62.3
'@rollup/rollup-linux-riscv64-gnu': 4.62.2 '@rollup/rollup-linux-riscv64-gnu': 4.62.3
'@rollup/rollup-linux-riscv64-musl': 4.62.2 '@rollup/rollup-linux-riscv64-musl': 4.62.3
'@rollup/rollup-linux-s390x-gnu': 4.62.2 '@rollup/rollup-linux-s390x-gnu': 4.62.3
'@rollup/rollup-linux-x64-gnu': 4.62.2 '@rollup/rollup-linux-x64-gnu': 4.62.3
'@rollup/rollup-linux-x64-musl': 4.62.2 '@rollup/rollup-linux-x64-musl': 4.62.3
'@rollup/rollup-openbsd-x64': 4.62.2 '@rollup/rollup-openbsd-x64': 4.62.3
'@rollup/rollup-openharmony-arm64': 4.62.2 '@rollup/rollup-openharmony-arm64': 4.62.3
'@rollup/rollup-win32-arm64-msvc': 4.62.2 '@rollup/rollup-win32-arm64-msvc': 4.62.3
'@rollup/rollup-win32-ia32-msvc': 4.62.2 '@rollup/rollup-win32-ia32-msvc': 4.62.3
'@rollup/rollup-win32-x64-gnu': 4.62.2 '@rollup/rollup-win32-x64-gnu': 4.62.3
'@rollup/rollup-win32-x64-msvc': 4.62.2 '@rollup/rollup-win32-x64-msvc': 4.62.3
fsevents: 2.3.3 fsevents: 2.3.3
rtlcss@4.3.0: rtlcss@4.3.0:
@ -5027,7 +5027,7 @@ snapshots:
'@tokenizer/token': 0.3.0 '@tokenizer/token': 0.3.0
ieee754: 1.2.1 ieee754: 1.2.1
tokenx@1.3.0: {} tokenx@1.6.0: {}
totalist@3.0.1: {} totalist@3.0.1: {}
@ -5121,7 +5121,7 @@ snapshots:
'@types/unist': 3.0.3 '@types/unist': 3.0.3
vfile-message: 4.0.3 vfile-message: 4.0.3
vite@8.1.5(@types/node@26.1.1)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0): vite@8.1.5(@types/node@26.1.2)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0):
dependencies: dependencies:
lightningcss: 1.33.0 lightningcss: 1.33.0
picomatch: 4.0.5 picomatch: 4.0.5
@ -5129,19 +5129,19 @@ snapshots:
rolldown: 1.1.5 rolldown: 1.1.5
tinyglobby: 0.2.17 tinyglobby: 0.2.17
optionalDependencies: optionalDependencies:
'@types/node': 26.1.1 '@types/node': 26.1.2
esbuild: 0.27.7 esbuild: 0.27.7
fsevents: 2.3.3 fsevents: 2.3.3
jiti: 1.21.7 jiti: 1.21.7
yaml: 2.9.0 yaml: 2.9.0
vitepress-plugin-group-icons@1.7.5(vite@8.1.5(@types/node@26.1.1)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0)): vitepress-plugin-group-icons@1.7.5(vite@8.1.5(@types/node@26.1.2)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0)):
dependencies: dependencies:
'@iconify-json/logos': 1.2.11 '@iconify-json/logos': 1.2.11
'@iconify-json/vscode-icons': 1.2.67 '@iconify-json/vscode-icons': 1.2.67
'@iconify/utils': 3.1.4 '@iconify/utils': 3.1.4
optionalDependencies: optionalDependencies:
vite: 8.1.5(@types/node@26.1.1)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0) vite: 8.1.5(@types/node@26.1.2)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0)
vitepress-plugin-llms@1.13.3: vitepress-plugin-llms@1.13.3:
dependencies: dependencies:
@ -5150,22 +5150,22 @@ snapshots:
markdown-title: 1.0.2 markdown-title: 1.0.2
mdast-util-from-markdown: 2.0.3 mdast-util-from-markdown: 2.0.3
millify: 6.1.0 millify: 6.1.0
minimatch: 10.2.5 minimatch: 10.2.6
path-to-regexp: 6.3.0 path-to-regexp: 6.3.0
picocolors: 1.1.1 picocolors: 1.1.1
pretty-bytes: 7.1.1 pretty-bytes: 7.1.1
remark: 15.0.1 remark: 15.0.1
remark-frontmatter: 5.0.0 remark-frontmatter: 5.0.0
tokenx: 1.3.0 tokenx: 1.6.0
unist-util-remove: 4.0.0 unist-util-remove: 4.0.0
unist-util-visit: 5.1.0 unist-util-visit: 5.1.0
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
vitest@4.1.10(@types/node@26.1.1)(vite@8.1.5(@types/node@26.1.1)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0)): vitest@4.1.10(@types/node@26.1.2)(vite@8.1.5(@types/node@26.1.2)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0)):
dependencies: dependencies:
'@vitest/expect': 4.1.10 '@vitest/expect': 4.1.10
'@vitest/mocker': 4.1.10(vite@8.1.5(@types/node@26.1.1)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0)) '@vitest/mocker': 4.1.10(vite@8.1.5(@types/node@26.1.2)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0))
'@vitest/pretty-format': 4.1.10 '@vitest/pretty-format': 4.1.10
'@vitest/runner': 4.1.10 '@vitest/runner': 4.1.10
'@vitest/snapshot': 4.1.10 '@vitest/snapshot': 4.1.10
@ -5182,10 +5182,10 @@ snapshots:
tinyexec: 1.2.4 tinyexec: 1.2.4
tinyglobby: 0.2.17 tinyglobby: 0.2.17
tinyrainbow: 3.1.0 tinyrainbow: 3.1.0
vite: 8.1.5(@types/node@26.1.1)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0) vite: 8.1.5(@types/node@26.1.2)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0)
why-is-node-running: 2.3.0 why-is-node-running: 2.3.0
optionalDependencies: optionalDependencies:
'@types/node': 26.1.1 '@types/node': 26.1.2
transitivePeerDependencies: transitivePeerDependencies:
- msw - msw
@ -5277,7 +5277,7 @@ snapshots:
y18n: 5.0.8 y18n: 5.0.8
yargs-parser: 21.1.1 yargs-parser: 21.1.1
yoctocolors@2.1.2: {} yoctocolors@2.2.0: {}
zod@3.25.76: {} zod@3.25.76: {}

@ -12,5 +12,7 @@ autoInstallPeers: false
ignoreWorkspaceRootCheck: true ignoreWorkspaceRootCheck: true
minimumReleaseAge: 1440 minimumReleaseAge: 1440
minimumReleaseAgeExclude:
- '@mdit/*'
shellEmulator: true shellEmulator: true

@ -270,14 +270,14 @@ export interface MarkdownOptions extends MarkdownItAsyncOptions {
* @default false * @default false
* @see https://vitepress.dev/guide/markdown#math-equations * @see https://vitepress.dev/guide/markdown#math-equations
*/ */
math?: boolean | any math?: any | boolean
/** /**
* Custom labels for the built-in containers (`::: tip` etc.) and * Custom labels for the built-in containers (`::: tip` etc.) and
* additional user-defined containers. Labels are also used as the * additional user-defined containers. Labels are also used as the
* default titles of GitHub-flavored alerts. * default titles of GitHub-flavored alerts.
* @see https://vitepress.dev/guide/markdown#custom-containers * @see https://vitepress.dev/guide/markdown#custom-containers
*/ */
container?: ContainerOptions container?: ContainerOptions | boolean
/** /**
* Whether to enable GitHub-flavored alerts (`> [!NOTE]`). * Whether to enable GitHub-flavored alerts (`> [!NOTE]`).
* @default true * @default true
@ -399,12 +399,12 @@ export async function createMarkdownRenderer(
if (options.snippet !== false) { if (options.snippet !== false) {
snippetPlugin(md, srcDir) snippetPlugin(md, srcDir)
} }
containerPlugin(md, options.container, { const containerOptions = normalizePluginOptions(options.container)
attrs: options.attrs !== false, if (options.container !== false) {
locales: options.locales containerPlugin(md, containerOptions, { locales: options.locales })
}) }
if (options.gfmAlerts !== false) { if (options.gfmAlerts !== false) {
gitHubAlertsPlugin(md, options.container, { locales: options.locales }) gitHubAlertsPlugin(md, containerOptions, { locales: options.locales })
} }
if (options.image !== false) { if (options.image !== false) {
imagePlugin(md, publicDir, normalizePluginOptions(options.image)) imagePlugin(md, publicDir, normalizePluginOptions(options.image))
@ -424,7 +424,17 @@ export async function createMarkdownRenderer(
attrsPlugin(md, { attrsPlugin(md, {
// no `fence` - code block meta (e.g. line highlighting) must reach // no `fence` - code block meta (e.g. line highlighting) must reach
// the highlighter intact // the highlighter intact
rule: ['inline', 'table', 'list', 'heading', 'hr', 'softbreak', 'block'], rule: [
'inline',
'table',
'list',
'heading',
'hr',
'softbreak',
'blockInfo',
'blockEnd',
'tasklist'
],
...normalizePluginOptions(options.attrs) ...normalizePluginOptions(options.attrs)
}) })
} }

@ -12,11 +12,6 @@ import { extractTitle } from './preWrapper'
export type { ContainerOptions } from '../../shared' export type { ContainerOptions } from '../../shared'
export interface ContainerPluginOptions { export interface ContainerPluginOptions {
/**
* Whether fence-line `{...}` attributes are parsed. Mirrors the state of
* the `markdown.attrs` option.
*/
attrs?: boolean
/** /**
* Per-locale overrides for container titles, keyed by locale index. * Per-locale overrides for container titles, keyed by locale index.
*/ */
@ -26,7 +21,7 @@ export interface ContainerPluginOptions {
export const containerPlugin = ( export const containerPlugin = (
md: MarkdownItAsync, md: MarkdownItAsync,
options?: ContainerOptions, options?: ContainerOptions,
{ attrs = true, locales }: ContainerPluginOptions = {} { locales }: ContainerPluginOptions = {}
) => { ) => {
md md
// explicitly escape Vue syntax // explicitly escape Vue syntax
@ -51,7 +46,7 @@ export const containerPlugin = (
for (const name of Object.keys(titles.base)) { for (const name of Object.keys(titles.base)) {
md.use(container, { md.use(container, {
name, name,
openRender: createOpenRender(md, name, titles, attrs), openRender: createOpenRender(md, name, titles),
closeRender: () => (name === 'details' ? `</details>\n` : `</div>\n`) closeRender: () => (name === 'details' ? `</details>\n` : `</div>\n`)
}) })
} }
@ -128,13 +123,11 @@ function resolveTitlesByLocale(
function createOpenRender( function createOpenRender(
md: MarkdownItAsync, md: MarkdownItAsync,
name: string, name: string,
titles: LocaleTitles, titles: LocaleTitles
attrs: boolean
): RenderRule { ): RenderRule {
return (tokens, idx, _options, env: MarkdownEnv & { references?: any }) => { return (tokens, idx, _options, env: MarkdownEnv & { references?: any }) => {
const token = tokens[idx] const token = tokens[idx]
let info = token.info.trim().slice(name.length).trim() let info = token.info.trim().slice(name.length).trim()
if (attrs) info = applyFenceAttrs(token, info)
// details always needs its summary, so no-title is ignored there // details always needs its summary, so no-title is ignored there
const noTitle = attrPop(token, 'no-title') === '' && name !== 'details' const noTitle = attrPop(token, 'no-title') === '' && name !== 'details'
token.attrJoin('class', `${name} custom-block`) token.attrJoin('class', `${name} custom-block`)
@ -158,27 +151,6 @@ function attrPop(token: Token, name: string): string | null {
return token.attrs!.splice(idx, 1)[0][1] return token.attrs!.splice(idx, 1)[0][1]
} }
// `::: tip Title {#id .class key="value" bare}` - the attrs plugin only
// handles fence lines through its `fence` rule, which is disabled to keep
// code block meta intact, so its trailing-braces syntax is parsed here
const fenceAttrsRE = /(?:^|\s)\{\s*([^{}]+?)\s*\}$/
const attrRE = /([^\s=]+)(?:=("[^"]*"|\S*))?/g
function applyFenceAttrs(token: Token, info: string): string {
const match = fenceAttrsRE.exec(info)
if (!match) return info
for (const [, name, value = ''] of match[1].matchAll(attrRE)) {
if (name.startsWith('.')) {
if (name.length > 1) token.attrJoin('class', name.slice(1))
} else if (name.startsWith('#')) {
if (name.length > 1) token.attrPush(['id', name.slice(1)])
} else {
token.attrPush([name, value.replace(/^"(.*)"$/, '$1')])
}
}
return info.slice(0, match.index)
}
function createCodeGroupOpenRender(md: MarkdownItAsync): RenderRule { function createCodeGroupOpenRender(md: MarkdownItAsync): RenderRule {
return (tokens, idx) => { return (tokens, idx) => {
let tabs = '' let tabs = ''

Loading…
Cancel
Save