\r\n \u003Ckey id=\"that\" to=\"ថា\" />\r\n \u003C/keys>\r\n\r\n \u003Clayers form=\"hardware\">\r\n \u003Clayer id=\"base\">\r\n \u003Crow keys=\"hmaqtugha that\" />\r\n \u003C/layer>\r\n \u003C/layers>\r\n\r\n\u003C/keyboard>\r\n```\r\n\r\nSymptom is an error deep inside vue\r\n\r\n```\r\n5:26:34 PM [vitepress] Internal server error: Duplicate attribute.\r\n Plugin: vite:vue\r\n File: /Users/srl295/src/codehivetx.us/en/posts/2022-kbd-progress.md:22:69\r\n 22 | \u003Ckeys>\r\n 23 | \u003Ckey id=\"hmaqtugha\" to=\"ħ\" />\r\n 24 | \u003Ckey id=\"that\" to=\"ថា\" />\r\n | ^\r\n 25 | \u003C/keys>\r\n 26 | \r\n at createCompilerError (/Users/srl295/src/codehivetx.us/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js:1327:17)\r\n at emitError (/Users/srl295/src/codehivetx.us/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js:2805:5)\r\n at Object.onattribnameend (/Users/srl295/src/codehivetx.us/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js:2290:7)\r\n at Tokenizer.handleAttrNameEnd (/Users/srl295/src/codehivetx.us/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js:872:14)\r\n at Tokenizer.stateInAttrName (/Users/srl295/src/codehivetx.us/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js:812:12)\r\n at Tokenizer.parse (/Users/srl295/src/codehivetx.us/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js:1065:16)\r\n at Object.baseParse (/Users/srl295/src/codehivetx.us/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js:2844:13)\r\n at Object.parse (/Users/srl295/src/codehivetx.us/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.js:698:23)\r\n at Object.parse$2 [as parse] (/Users/srl295/src/codehivetx.us/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js:1846:24)\r\n at createDescriptor (file:///Users/srl295/src/codehivetx.us/node_modules/@vitejs/plugin-vue/dist/index.mjs:74:43) (x2)\r\n```\r\n",[3020,3023],{"name":3021,"color":3022},"build","377ba8",{"name":3024,"color":3025},"stale","ededed",3401,"vuejs","vitepress","open","better stack trace / error message for markdown-it-attrs failures","2025-03-02T18:10:00Z","https://github.com/vuejs/vitepress/issues/3401",0.7204603,{"description":3035,"labels":3036,"number":3038,"owner":3027,"repository":3028,"state":3029,"title":3039,"updated_at":3040,"url":3041,"score":3042},"### Is your feature request related to a problem? Please describe.\n\nI am always frustrated when searching for related content across the site.\n\n### Describe the solution you'd like\n\nIt might be a great idea to have some kind of tag system very much like the way a hashtag works, where you can set the tags in the frontmatter and the vitepress tool would automatically inject those tags at the top of the page or the bottom of the page. These tags would then become searchable via the built-in search tool or you could have a list of tags in the sidebar appear, so when you click on a tag it will display or the related content that is associated to that tag.\n\n### Describe alternatives you've considered\n\nI have not tried any alternatives, I believe that Vitepress does not provide an alternative solution.\n\n### Additional context\n\nI am building a resource for making the law more approachable and accessible to the everyday South African called lawforidiots.org, I have realized that the way that i intend for the content to be laid out would require some kind of tagging system because there will eventually be a lot of content that is related overtime. Therefore, a tagging system would be the best way to go. I see there is another ticket https://github.com/vuejs/vitepress/issues/3029 but I thought I would create a duplicate just for more context on the matter\n\n### Validations\n\n- [X] Follow our [Code of Conduct](https://vuejs.org/about/coc.html)\n- [X] Read the [docs](https://vitepress.dev).\n- [X] Read the [Contributing Guidelines](https://github.com/vuejs/vitepress/blob/main/.github/contributing.md).\n- [X] Check that there isn't already an issue that asks for the same feature to avoid creating a duplicate.",[3037],{"name":3024,"color":3025},3254,"Searchable tags","2025-03-02T18:10:16Z","https://github.com/vuejs/vitepress/issues/3254",0.72657734,{"description":3044,"labels":3045,"number":3050,"owner":3027,"repository":3028,"state":3029,"title":3051,"updated_at":3052,"url":3053,"score":3054},"### Is your feature request related to a problem? Please describe.\n\nDue to my markdown file is particularly large, resulting in packaged js file and the corresponding html file size are close to 3M b, which in turn leads to the browser first screen rendering DOM size is too large.\n\n### Describe the solution you'd like\n\nIs it possible to reduce the size of the first screen html and lazy load the rest of the dom?\r\n\n\n### Describe alternatives you've considered\n\n_No response_\n\n### Additional context\n\n\u003Cimg width=\"368\" alt=\"image\" src=\"https://github.com/vuejs/vitepress/assets/73653404/afe26e27-6e7a-489d-983a-42a6acbfff8e\">\r\n\n\n### Validations\n\n- [X] Follow our [Code of Conduct](https://vuejs.org/about/coc.html)\n- [X] Read the [docs](https://vitepress.dev).\n- [X] Read the [Contributing Guidelines](https://github.com/vuejs/vitepress/blob/main/.github/contributing.md).\n- [X] Check that there isn't already an issue that asks for the same feature to avoid creating a duplicate.",[3046,3047],{"name":3024,"color":3025},{"name":3048,"color":3049},"perf","378A61",3509,"DOM is oversized","2025-03-02T18:09:47Z","https://github.com/vuejs/vitepress/issues/3509",0.76703846,{"description":3056,"labels":3057,"number":3062,"owner":3027,"repository":3028,"state":3063,"title":3064,"updated_at":3065,"url":3066,"score":3067},"### Describe the bug\n\nswitching pages `collapsed` sidebar items NOT expand\n\n### Reproduction\n\nhttps://stackblitz.com/edit/vite-bvmtz6?file=docs%2F.vitepress%2Fconfig.ts\r\n\r\n\r\nhttps://github.com/vuejs/vitepress/assets/40693636/3f5f07ee-7a41-407b-9e53-2d35894063cb\r\n\r\n\n\n### Expected behavior\n\nauto expand `collapsed` sidebar items when switching pages\n\n### System Info\n\n```Text\nhttps://stackblitz.com/edit/vite-bvmtz6?file=docs%2F.vitepress%2Fconfig.ts\n```\n\n\n### Additional context\n\nIt should be caused by recent changes, and the previous version was normal.\n\n### Validations\n\n- [X] Check if you're on the [latest VitePress version](https://github.com/vuejs/vitepress/releases/latest).\n- [X] Follow our [Code of Conduct](https://vuejs.org/about/coc.html)\n- [X] Read the [docs](https://vitepress.dev).\n- [X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.",[3058,3061],{"name":3059,"color":3060},"theme","0754FB",{"name":3024,"color":3025},3613,"closed","[BUG] sidebar : switching pages `collapsed` sidebar items NOT expand","2024-07-10T04:41:54Z","https://github.com/vuejs/vitepress/issues/3613",0.6896319,{"description":3069,"labels":3070,"number":3074,"owner":3027,"repository":3028,"state":3063,"title":3075,"updated_at":3076,"url":3077,"score":3078},"### Describe the bug\r\n\r\nYou can check Reproduction Url test.\r\n\r\nEverything works fine when I start the vite project(`apps/playground`) using `pnpm dev:playground`. It crashed when I started vitepress project(`apps/document`) using `pnpm dev:document`.\r\n\r\nMy monorepo project uses `node condition` to link the source code. You can check the `dev` field in `package.json` or `condition: [\"dev\"]` in `vite.config.ts` or `condition: [\"dev\"]` in `config.ts`.\r\n\r\n### Reproduction\r\n\r\nhttps://github.com/i7eo/monorepo-vitepress-bug-report\r\n\r\n### Expected behavior\r\n\r\nStart normally like a vite project(`apps/playground`)\r\n\r\n### System Info\r\n\r\n```Text\r\nSystem:\r\n OS: macOS 14.4.1\r\n CPU: (10) arm64 Apple M1 Max\r\n Memory: 3.61 GB / 64.00 GB\r\n Shell: 5.9 - /bin/zsh\r\n Binaries:\r\n Node: 20.12.2 - ~/.nvm/versions/node/v20.12.2/bin/node\r\n npm: 10.5.0 - ~/.nvm/versions/node/v20.12.2/bin/npm\r\n pnpm: 9.1.0 - ~/.nvm/versions/node/v20.12.2/bin/pnpm\r\n Watchman: 2024.04.08.00 - /opt/homebrew/bin/watchman\r\n Browsers:\r\n Chrome: 124.0.6367.201\r\n Safari: 17.4.1\r\n Safari Technology Preview: 17.4\r\n```\r\n\r\n\r\n### Additional context\r\n\r\n_No response_\r\n\r\n### Validations\r\n\r\n- [X] Check if you're on the [latest VitePress version](https://github.com/vuejs/vitepress/releases/latest).\r\n- [X] Follow our [Code of Conduct](https://vuejs.org/about/coc.html)\r\n- [X] Read the [docs](https://vitepress.dev).\r\n- [X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.",[3071],{"name":3072,"color":3073},"bug: pending triage","e99695",3888,"Vitepress project in monorepo reports `Failed to resolve import \"xxx\"`","2024-05-22T04:41:52Z","https://github.com/vuejs/vitepress/issues/3888",0.7267442,{"description":3080,"labels":3081,"number":3085,"owner":3027,"repository":3028,"state":3063,"title":3086,"updated_at":3087,"url":3088,"score":3089},"### Describe the bug\n\nI want to use VitePress to generate some static HTML pages, and I hope these HTML files can be opened directly with a browser by double-clicking, without the need for a web server. But after run `npm run docs:build`, and open the HTML file in Chrome, there came an error in Network panel, `Name: inter-roman-latin.bvIUbFQP.woff2`, `Status: (failed)net::ERR_FILE_NOT_FOUND`.\r\n\r\n\r\nIn `.vitepress/dist/assets/style.SZl3QJfs.css`, you can see the url of file `inter-roman-latin.bvIUbFQP.woff2` is `/assets/inter-roman-latin.bvIUbFQP.woff2` but not `./assets/inter-roman-latin.bvIUbFQP.woff2`. This might be the cause of the error.\r\n\r\n\r\n\n\n### Reproduction\n\nRun the command:\r\n\r\n```\r\nnpm install --save-dev vitepress\r\n\r\nnpx vitepress init\r\n\r\n Where should VitePress initialize the config?\r\n ./\r\n\r\n Site title:\r\n My Awesome Project\r\n\r\n Site description:\r\n A VitePress Site\r\n\r\n Theme:\r\n Default Theme (Out of the box, good-looking docs)\r\n\r\n Use TypeScript for config and theme files?\r\n No\r\n\r\n Add VitePress npm scripts to package.json?\r\n Yes\r\n```\r\n\r\nEdit `.vitepress/config.mjs`, add `base : '.'` and `mpa : true`:\r\n\r\n```\r\nimport { defineConfig } from 'vitepress'\r\n\r\n// https://vitepress.dev/reference/site-config\r\nexport default defineConfig({\r\n title: \"My Awesome Project\",\r\n description: \"A VitePress Site\",\r\n themeConfig: {\r\n // https://vitepress.dev/reference/default-theme-config\r\n nav: [\r\n { text: 'Home', link: '/' },\r\n { text: 'Examples', link: '/markdown-examples' }\r\n ],\r\n\r\n sidebar: [\r\n {\r\n text: 'Examples',\r\n items: [\r\n { text: 'Markdown Examples', link: '/markdown-examples' },\r\n { text: 'Runtime API Examples', link: '/api-examples' }\r\n ]\r\n }\r\n ],\r\n\r\n socialLinks: [\r\n { icon: 'github', link: 'https://github.com/vuejs/vitepress' }\r\n ]\r\n },\r\n base : '.',\r\n mpa : true\r\n})\r\n```\r\n\r\nAnd build the docs:\r\n\r\n```\r\nnpm run docs:build\r\n```\r\n\r\nOpen the file `.vitepress/dist/api-examples.html` in Chrome by double-clicking, and then open the Network panel of Chrome's DevTools to see the error.\n\n### Expected behavior\n\nAfter set `base : '.'` in `config.mjs`, the url of assets should start with `./assets/`, but not `/assets/`.\r\n\n\n### System Info\n\n```Text\nSystem:\r\n OS: Linux 6.1 Debian GNU/Linux 12 (bookworm) 12 (bookworm)\r\n CPU: (4) x64 Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz\r\n Memory: 10.44 GB / 15.52 GB\r\n Container: Yes\r\n Shell: 3.6.0 - /usr/bin/fish\r\n Binaries:\r\n Node: 18.17.1 - ~/dev/nodejs/nodejs/bin/node\r\n npm: 10.4.0 - ~/dev/nodejs/nodejs/bin/npm\r\n Browsers:\r\n Chrome: 112.0.5615.165\r\n npmPackages:\r\n vitepress: ^1.0.0-rc.42 => 1.0.0-rc.42\n```\n\n\n### Additional context\n\n_No response_\n\n### Validations\n\n- [X] Check if you're on the [latest VitePress version](https://github.com/vuejs/vitepress/releases/latest).\n- [X] Follow our [Code of Conduct](https://vuejs.org/about/coc.html)\n- [X] Read the [docs](https://vitepress.dev).\n- [X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.",[3082],{"name":3083,"color":3084},"wont fix","EDEED1",3563,"The link in css file is not correct after setting base to '.' in config.mjs","2024-02-16T00:04:27Z","https://github.com/vuejs/vitepress/issues/3563",0.73781455,{"description":3091,"labels":3092,"number":3095,"owner":3027,"repository":3028,"state":3063,"title":3096,"updated_at":3097,"url":3098,"score":3099},"### Describe the bug\n\nI am using a markdown-it plugin to add classes to `\u003Ctable>` tags. This was broken by #3932.\r\n\r\nIf you look at: https://github.com/vuejs/vitepress/pull/3932/files#diff-332834eb76757b8e31926e411cef34f7207564d0bf5fd00a185b41d97b3403bf\r\n```\r\n md.renderer.rules.table_open = function (tokens, idx, options, env, self) {\r\n return '\u003Ctable tabindex=\"0\">\\n'\r\n }\r\n```\r\n\r\nThis breaks the chaining of any other modifications to the table_open rule. My understanding is that you should use the methods on token to modify the token and then chain to the existing rule. This post has a decent description: https://publishing-project.rivendellweb.net/customizing-markdown-it/#adding-classes-to-list-and-list-items\r\n\r\nIt looks like the overriding of `math_blocks` further down in the file _does_ chain the original renderer.\n\n### Reproduction\n\nIn `config.mts`\r\n\r\n```\r\nimport markdownItClass from '@toycode/markdown-it-class'\r\n...\r\nexport default defineConfig({\r\n...\r\n markdown: {\r\n config: (md) => {\r\n md.use(markdownItClass, {table: ['table', 'table-striped']})\r\n },\r\n },\r\n})\r\n```\r\n\n\n### Expected behavior\n\nvitepress markdown.it plugin doesn't break other markdown.it plugin\n\n### System Info\n\n```Text\nSystem:\r\n OS: Windows 11 10.0.22631\r\n CPU: (16) x64 Intel(R) Core(TM) i9-10885H CPU @ 2.40GHz\r\n Memory: 9.01 GB / 31.75 GB\r\n Binaries:\r\n Node: 20.16.0 - C:\\Program Files\\nodejs\\node.EXE\r\n npm: 10.8.1 - C:\\Program Files\\nodejs\\npm.CMD\r\n pnpm: 9.5.0 - C:\\Program Files\\nodejs\\pnpm.CMD\r\n Browsers:\r\n Edge: Chromium (127.0.2651.74)\r\n Internet Explorer: 11.0.22621.3527\n```\n\n\n### Additional context\n\n_No response_\n\n### Validations\n\n- [X] Check if you're on the [latest VitePress version](https://github.com/vuejs/vitepress/releases/latest).\n- [X] Follow our [Code of Conduct](https://vuejs.org/about/coc.html)\n- [X] Read the [docs](https://vitepress.dev).\n- [X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.",[3093,3094],{"name":3021,"color":3022},{"name":3024,"color":3025},4239,"Regression: #3932 breaks chaining of table_open markdown.it rules ","2025-03-16T04:43:43Z","https://github.com/vuejs/vitepress/issues/4239",0.74118876,{"description":3101,"labels":3102,"number":3107,"owner":3027,"repository":3028,"state":3063,"title":3108,"updated_at":3109,"url":3110,"score":3111},"### Is your feature request related to a problem? Please describe.\r\n\r\nHello,\r\n\r\nActually, I have to create a loader for each language, and then import all of them in my vue component.\r\n\r\n```ts\r\n// @ts-expect-error - vitepress types are not available\r\nimport { data as rootData } from '../../data/posts.data'\r\n// @ts-expect-error - vitepress types are not available\r\nimport { data as frData } from '../../data/fr-posts.data'\r\nimport { computed } from 'vue';\r\n\r\nconst data: Record\u003Cstring, any> = {\r\n root: rootData,\r\n fr: frData\r\n}\r\n\r\nconst { localeIndex } = useData()\r\n\r\nconst posts = computed(() => data[localeIndex.value])\r\n```\r\n\r\n### Describe the solution you'd like\r\n\r\nI would like to have to only create a single content loader and based on my locales configuration (and maybe an option) retrive all content.\r\n\r\nFor example: `posts/*.md` should get `posts/*.md` (the root) and `fr/posts/*.md` (the fr locale).\r\n\r\n### Describe alternatives you've considered\r\n\r\n_No response_\r\n\r\n### Additional context\r\n\r\n_No response_\r\n\r\n### Validations\r\n\r\n- [X] Follow our [Code of Conduct](https://vuejs.org/about/coc.html)\r\n- [X] Read the [docs](https://vitepress.dev).\r\n- [X] Read the [Contributing Guidelines](https://github.com/vuejs/vitepress/blob/main/.github/contributing.md).\r\n- [X] Check that there isn't already an issue that asks for the same feature to avoid creating a duplicate.",[3103,3106],{"name":3104,"color":3105},"has-workaround","1B4515",{"name":3024,"color":3025},4072,"Support i18n in `contentLoader`","2024-10-08T04:44:35Z","https://github.com/vuejs/vitepress/issues/4072",0.74290884,{"description":3113,"labels":3114,"number":3115,"owner":3027,"repository":3028,"state":3063,"title":3116,"updated_at":3117,"url":3118,"score":3119},"### Describe the bug\n\nVitePress ignores the `vite.clearScreen: false` option - running `vitepress build` will clear the screen regardless.\r\n\r\nThis is causing issues in our turbo build monorepo - when building several packages at once, VitePress's clear screen clears the log output for packages that were built before it.\n\n### Reproduction\n\nhttps://stackblitz.com/edit/vite-dtu41vnr?file=package.json\r\n\r\n1. Install dependencies\r\n2. Run `npx vitepress build docs`\r\n3. See that screen is cleared, despite vite.clearScreen:false in docs/.vitepress/config.ts\n\n### Expected behavior\n\nScreen should not be cleared if vite.clearScreen:false is set\n\n### System Info\n\n```Text\nSystem:\r\n OS: macOS 15.2\r\n CPU: (10) arm64 Apple M1 Pro\r\n Memory: 78.41 MB / 32.00 GB\r\n Shell: 5.9 - /bin/zsh\r\n Binaries:\r\n Node: 22.12.0 - ~/.local/state/fnm_multishells/64248_1736184870871/bin/node\r\n Yarn: 1.22.19 - ~/.local/state/fnm_multishells/64248_1736184870871/bin/yarn\r\n npm: 10.9.0 - ~/.local/state/fnm_multishells/64248_1736184870871/bin/npm\r\n Browsers:\r\n Chrome: 131.0.6778.205\r\n Safari: 18.2\r\n npmPackages:\r\n vitepress: 1.5.0 => 1.5.0\n```\n\n\n### Additional context\n\n_No response_\n\n### Validations\n\n- [X] Check if you're on the [latest VitePress version](https://github.com/vuejs/vitepress/releases/latest).\n- [X] Follow our [Code of Conduct](https://vuejs.org/about/coc.html)\n- [X] Read the [docs](https://vitepress.dev).\n- [X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.",[],4468,"`vite.clearScreen: false` option is ignorred","2025-01-14T04:42:24Z","https://github.com/vuejs/vitepress/issues/4468",0.74434125,{"description":3121,"labels":3122,"number":3124,"owner":3027,"repository":3028,"state":3063,"title":3125,"updated_at":3126,"url":3127,"score":3128},"### Describe the bug\n\nI've no idea how to fix this properly so instead of giving a PR, I would like to just raise this issue.\r\n\r\n\r\n\n\n### Reproduction\n\nAny code-group with enough multiple tabs will cause this issue\n\n### Expected behavior\n\nThe marker should have the full-width\n\n### System Info\n\n```sh\nvitepress 1.0.0-beta.6\n```\n\n\n### Additional context\n\n_No response_\n\n### Validations\n\n- [X] Check if you're on the [latest VitePress version](https://github.com/vuejs/vitepress/releases/latest).\n- [X] Follow our [Code of Conduct](https://vuejs.org/about/coc.html)\n- [X] Read the [docs](https://vitepress.dev).\n- [X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.",[3123],{"name":3059,"color":3060},2700,"🐞Bug(theme): Code group's `tab`'s `marker`'s width is limited and not following horizental scroll","2023-08-05T00:04:22Z","https://github.com/vuejs/vitepress/issues/2700",0.7459681,["Reactive",3130],{},["Set"],["ShallowReactive",3133],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$ffwi_mHKloxrfdkymdMtVZxrRI5-oYFQLH5xY1NZkg40":-1},"/vuejs/vitepress/3205"]