|\u003Cimg width=\"612\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/e408b294-1471-4703-b7b4-8d21a6ccd5be\" />|\n|[preview link](https://deploy-preview-4660--vitepress-docs.netlify.app/404)|[preview link](https://deploy-preview-4660--vitepress-docs.netlify.app/zh/404)|\n\nThis is currently **impossible** because `NotFound.vue` does not provide an locale configuration interface.\nAfter introducing the proposed feature, it **automatically** supports multi-language - _without changing one line of code inside it_!\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.",[],4659,"closed","Multi-layer hierarchical configuration overloading","2025-04-15T17:13:25Z","https://github.com/vuejs/vitepress/issues/4659",0.67422193,{"description":2909,"labels":2910,"number":2911,"owner":2871,"repository":2872,"state":2903,"title":2912,"updated_at":2913,"url":2914,"score":2915},"I notice that VitePress uses the shiki's `transformerNotationFocus()` with an option of:\n\nhttps://github.com/vuejs/vitepress/blob/21f24b9994ea4807ac7e0be38408e9aaa3abe8a9/src/node/markdown/plugins/highlight.ts#L78-L81\n\nhowever the default value set by shiki is :\n```\nconst {\n classActiveLine = 'focused',\n classActivePre = 'has-focused',\n} = options\n```\n\nIs there any particular reasons for this?",[],4716,"question about shiki's `transformerNotationFocus()` options","2025-04-24T08:58:13Z","https://github.com/vuejs/vitepress/issues/4716",0.6956475,{"description":2917,"labels":2918,"number":2922,"owner":2871,"repository":2872,"state":2903,"title":2923,"updated_at":2924,"url":2925,"score":2926},"### Describe the bug\r\n\r\nI'm getting some errors when running `pnpm build`, I guess it's because I should somehow wrap this component causing the error in `\u003CClientOnly />`, but how should I find the exact cause from the error log? It does not provide any useful details (see below screenshot)\r\n\r\n---\r\n\r\nAnother question, as I guess my error is because of this:\r\nShould I wrap `watch()` inside `onMounted()`? or in another word, can I do it? I didn't find any corresponding example in Vue documentation... \r\nSorry if this is a dumb question, as I'm a react guy :(\r\n```vue\r\n\u003Cscript setup lang=\"ts\">\r\nimport { useLocalStorage } from '@vueuse/core';\r\nimport { watch } from 'vue';\r\n\r\nconst nfcapiEnvRef = useLocalStorage('vp-nfcapi-env', 'staging', {\r\n deep: false,\r\n listenToStorageChanges: true,\r\n writeDefaults: true\r\n});\r\n\r\nwatch(nfcapiEnvRef, (value, oldValue) => {\r\n const htmlDataSet = document.documentElement.dataset;\r\n oldValue && (htmlDataSet.nfcapiEnv = oldValue.toLowerCase());\r\n htmlDataSet.nfcapiEnv = value.toLowerCase();\r\n}, { immediate: true });\r\n\u003C/script>\r\n```\r\n\r\n---\r\n\r\nScreenshot of the error:\r\n\r\n\r\n\r\n\r\n\r\n### Reproduction\r\n\r\nThis is not a bug, but a question\r\n\r\n### Expected behavior\r\n\r\nN/A\r\n\r\n### System Info\r\n\r\n```sh\r\nSystem:\r\n OS: Windows 10 10.0.19045\r\n CPU: (16) x64 11th Gen Intel(R) Core(TM) i9-11900K @ 3.50GHz\r\n Memory: 30.87 GB / 63.84 GB\r\n Binaries:\r\n Node: 18.16.0 - C:\\NodeJS\\node.EXE\r\n Yarn: 1.22.19 - C:\\NodeJS\\yarn.CMD\r\n npm: 9.8.0 - C:\\NodeJS\\npm.CMD\r\n pnpm: 8.6.7 - C:\\NodeJS\\pnpm.CMD\r\n Browsers:\r\n Edge: Spartan (44.19041.1266.0), Chromium (114.0.1823.82)\r\n Internet Explorer: 11.0.19041.1566\r\n npmPackages:\r\n vitepress: ^1.0.0-beta.5 => 1.0.0-beta.5\r\n```\r\n\r\n\r\n### Additional context\r\n\r\nN/A\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.",[2919],{"name":2920,"color":2921},"question","5D5FAE",2627,"How should I trace build error?","2023-07-24T00:04:51Z","https://github.com/vuejs/vitepress/issues/2627",0.7118815,{"description":2928,"labels":2929,"number":2933,"owner":2871,"repository":2872,"state":2903,"title":2934,"updated_at":2935,"url":2936,"score":2937},"### Describe the bug\n\n如题,我准备使用vitepress开发一个组件库文档,但每次更改md代码时,日志里虽然显示已经热重载成功,,但页面并没有热重载,只能我手动刷新。 \n\n我尝试清理vitepress缓存,更换不同设备,或者重新安装所有依赖都没有解决。\n\n### Reproduction\n\n可复现仓库:https://github.com/xinnian999/arto-ui\n\n先 pnpm i \n然后 pnpm build\n然后 pnpm dev:docs \n可复现\n\n### Expected behavior\n\n更改md代码时,页面可以自动热重载,不需要 我手动刷新 \n\n### System Info\n\n```Text\nSystem:\n OS: macOS 12.6.5\n CPU: (8) x64 Intel(R) Core(TM) i7-8559U CPU @ 2.70GHz\n Memory: 324.78 MB / 16.00 GB\n Shell: 5.8.1 - /bin/zsh\nBinaries:\n Node: 20.18.0 - ~/.nvm/versions/node/v20.18.0/bin/node\n npm: 10.8.2 - ~/.nvm/versions/node/v20.18.0/bin/npm\n pnpm: 8.15.4 - /usr/local/bin/pnpm\nBrowsers:\n Chrome: 135.0.7049.85\n Safari: 17.0\n```\n\n### Additional context\n\n\u003Cimg width=\"1440\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/97616e9a-c200-471a-8346-42a288f61baa\" /> 如图,我在代码里修改标题为Demo3333 浏览器发起了热重载请求,但是页面不会自动更新\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.",[2930],{"name":2931,"color":2932},"bug: pending triage","e99695",4690,"热更新失效","2025-04-15T06:05:35Z","https://github.com/vuejs/vitepress/issues/4690",0.7314396,{"description":2939,"labels":2940,"number":2941,"owner":2871,"repository":2872,"state":2903,"title":2942,"updated_at":2943,"url":2944,"score":2945},"### Describe the bug\n\n✓ building client + server bundles...\r\n✓ rendering pages...\r\n✖ generating sitemap...\r\nbuild error:\r\nError: spawn git ENOENT\r\n at ChildProcess._handle.onexit (node:internal/child_process:283:19)\r\n at onErrorNT (node:internal/child_process:476:16)\r\n at process.processTicksAndRejections (node:internal/process/task_queues:82:21)\r\n ELIFECYCLE Command failed with exit code 1.\r\n\r\n\r\n\n\n### Reproduction\n\nhttps://github.com/tomiaa12/blog\n\n### Expected behavior\n\n如题\n\n### System Info\n\n```sh\nSystem:\r\n OS: Windows 10 10.0.19043\r\n CPU: (12) x64 12th Gen Intel(R) Core(TM) i5-1235U\r\n Memory: 3.64 GB / 15.64 GB\r\n Binaries:\r\n Node: 18.16.0 - C:\\Program Files\\nodejs\\node.EXE\r\n npm: 9.5.1 - C:\\Program Files\\nodejs\\npm.CMD\r\n pnpm: 8.6.11 - C:\\Program Files\\nodejs\\pnpm.CMD\r\n Browsers:\r\n Edge: Spartan (44.19041.1023.0)\r\n Internet Explorer: 11.0.19041.1\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.",[],2749,"✖ generating sitemap...生成sitemap编译报错","2023-08-16T00:04:25Z","https://github.com/vuejs/vitepress/issues/2749",0.75730056,{"description":2947,"labels":2948,"number":2950,"owner":2871,"repository":2872,"state":2903,"title":2951,"updated_at":2952,"url":2953,"score":2954},"### Describe the bug\r\n\r\nInstalling a fresh vitepress quickstart and using yarn with PnP installs. `yarn run docs:build` fails with:\r\n\r\n```\r\nbuild error:\r\n[vite]: Rollup failed to resolve import \"vue/server-renderer\" from \"/home/thomas/projects/testpnp/README.md\".\r\nThis is most likely unintended because it can break your application at runtime.\r\nIf you do want to externalize this module explicitly add it to\r\n`build.rollupOptions.external`\r\nError: [vite]: Rollup failed to resolve import \"vue/server-renderer\" from \"/home/thomas/projects/testpnp/README.md\".\r\nThis is most likely unintended because it can break your application at runtime.\r\nIf you do want to externalize this module explicitly add it to\r\n`build.rollupOptions.external`\r\n at viteWarn (file:///home/thomas/projects/testpnp/.yarn/__virtual__/vite-virtual-4c2197c7d1/3/.yarn/berry/cache/vite-npm-5.2.11-fa468e8533-10c0.zip/node_modules/vite/dist/node/chunks/dep-cNe07EU9.js:67612:27)\r\n at onRollupWarning (file:///home/thomas/projects/testpnp/.yarn/__virtual__/vite-virtual-4c2197c7d1/3/.yarn/berry/cache/vite-npm-5.2.11-fa468e8533-10c0.zip/node_modules/vite/dist/node/chunks/dep-cNe07EU9.js:67640:9)\r\n at onwarn (file:///home/thomas/projects/testpnp/.yarn/__virtual__/vite-virtual-4c2197c7d1/3/.yarn/berry/cache/vite-npm-5.2.11-fa468e8533-10c0.zip/node_modules/vite/dist/node/chunks/dep-cNe07EU9.js:67356:13)\r\n at file:///home/thomas/.yarn/berry/cache/rollup-npm-4.18.0-9eadb97a09-10c0.zip/node_modules/rollup/dist/es/shared/node-entry.js:18514:13\r\n at Object.logger [as onLog] (file:///home/thomas/.yarn/berry/cache/rollup-npm-4.18.0-9eadb97a09-10c0.zip/node_modules/rollup/dist/es/shared/node-entry.js:20162:9)\r\n at ModuleLoader.handleInvalidResolvedId (file:///home/thomas/.yarn/berry/cache/rollup-npm-4.18.0-9eadb97a09-10c0.zip/node_modules/rollup/dist/es/shared/node-entry.js:19104:26)\r\n at file:///home/thomas/.yarn/berry/cache/rollup-npm-4.18.0-9eadb97a09-10c0.zip/node_modules/rollup/dist/es/shared/node-entry.js:19062:26\r\n```\r\n\r\n### Reproduction\r\n\r\nUse this repo: https://github.com/l3d00m/vitepress-yarn-repro and run `corepack enable && yarn install && yarn run docs:build`\r\n\r\nAlternatively: \r\n\r\n1. Create New folder\r\n1. `yarn set version stable`\r\n2. `yarn add -D vitepress` \r\n3. `yarn vitepress init` (use default settings, just press enter)\r\n4. `yarn run docs:build` fails\r\n\r\n### Expected behavior\r\n\r\nShould not fail, should work out of the box\r\n\r\n### System Info\r\n\r\n```Text\r\nSystem:\r\n OS: Linux 6.9 Manjaro Linux\r\n CPU: (12) x64 AMD Ryzen 5 2600 Six-Core Processor\r\n Memory: 6.45 GB / 15.53 GB\r\n Container: Yes\r\n Shell: 5.9 - /usr/bin/zsh\r\n Binaries:\r\n Node: 20.13.1 - ~/.nvm/versions/node/v20.13.1/bin/node\r\n Yarn: 4.2.2 - ~/.nvm/versions/node/v20.13.1/bin/yarn\r\n npm: 10.5.2 - ~/.nvm/versions/node/v20.13.1/bin/npm\r\n Browsers:\r\n Chromium: 124.0.6367.155\r\n```\r\n\r\n\r\n### Additional context\r\n\r\nThis is similar to #3035, but here it always fails, also with a fresh repo.\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.",[2949],{"name":2891,"color":2892},3919,"Fails to build with yarn v4 PnP, rollup error","2024-06-03T04:41:58Z","https://github.com/vuejs/vitepress/issues/3919",0.7586707,{"description":2956,"labels":2957,"number":2959,"owner":2871,"repository":2872,"state":2903,"title":2960,"updated_at":2961,"url":2962,"score":2963},"### Is your feature request related to a problem? Please describe.\r\n\r\nMy doc site has 1000+ api `.md` generated from source code, they are pure api spec, basically no difference between languages, the only locales I need to covered is a `guide` folder, so I can create different mds for `/guide`, `/zh/guide`, `/fr/guide` ... for different language info, which is a fine way to do that.\r\n\r\nBut for `api` folder,I have to create/duplicated `/zh/api`, `/ft/api` ... for all same `.md`, and there are over 1000 files for each locales. It is too much redundancy and hard to manage.\r\n\r\nA work around I used right now is to use the same nav/sidebar settings for different locales, e.g.\r\n```js\r\nlocales:{\r\n root:{\r\n nav: [{\r\n text: 'guide',\r\n items: [{\r\n text: 'gudie',\r\n link: '/guide/'\r\n }]\r\n },{\r\n text: 'api',\r\n items: [{\r\n text: 'api',\r\n link: '/api/'\r\n }]\r\n }]\r\n sidebar: {\r\n '/guide/': [...],\r\n '/api/': [...]\r\n }\r\n },\r\n zh: {\r\n nav: [{\r\n text: 'guide',\r\n items: [{\r\n text: 'gudie',\r\n link: '/zh/guide/'\r\n }]\r\n },{\r\n text: 'api',\r\n items: [{\r\n text: 'api',\r\n link: '/api/'\r\n }]\r\n }]\r\n sidebar: {\r\n '/zh/guide/': [...],\r\n '/api/': [...]\r\n }\r\n },\r\n fr: {\r\n nav: [{\r\n text: 'guide',\r\n items: [{\r\n text: 'gudie',\r\n link: '/fr/guide/'\r\n }]\r\n },{\r\n text: 'api',\r\n items: [{\r\n text: 'api',\r\n link: '/api/'\r\n }]\r\n }]\r\n sidebar: {\r\n '/fr/guide/': [...],\r\n '/api/': [...]\r\n }\r\n }\r\n}\r\n```\r\nbut this will redirect to the root locale on `/api` paths, which is not a perfect way.\r\n\r\n\r\nIs there a way to re-use `md` file in different locales, but still keep the route link? e.g. all `/api/`, `/zh/api/`, `/fr/api/` ... they are all point to a same `.md` in `api` folder?\r\n\r\n\r\n### Describe the solution you'd like\r\n\r\nA map config to soft link path with target `md`?\r\nor expose a `md` transform function/hook to locate the source file?\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.",[2958],{"name":2868,"color":2869},2153,"Soft link mds in different locales?","2023-08-20T00:04:20Z","https://github.com/vuejs/vitepress/issues/2153",0.7612058,["Reactive",2965],{},["Set"],["ShallowReactive",2968],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$f63zMb1XWdVy8leX7JOVzCQ0Ph5fc0LD17WmiD0HmkGw":-1},"/vuejs/vitepress/4670"]