\r\n\r\nbut in Layout.vue it uses Header and Header uses themeConfig that is a Symbol: \r\n```vue\r\n// Layout.vue\r\n\u003Ctemplate>\r\n \u003CHeader :nav=\"Navlist\">\u003C/Header>\r\n\u003C/template>\r\n\r\n\u003Cscript setup lang=\"ts\">\r\nimport Header from \"../header/index.vue\";\r\n\u003C/script>\r\n// Header.vue\r\n\u003Cscript setup lang=\"ts\">\r\nimport { inject, computed } from \"vue\";\r\nimport { themeConfig } from \"../../compositions/configProvider\"; // Notice this line\r\n\r\nconst theme = inject(themeConfig)!; // Notice this line\r\n```\r\nIn Header.vue, themeConfig exists in myTheme/src/compositions/configProvider.ts, \r\nbut in .vitepress/cache/deps/myTheme.js, it also exits a themeConfig.\r\ntwo themeConfig, two Symbol.\r\n***In the result***, provide/inject is fail.\r\n\r\n\r\nIn development this is bad, in production, the configProvider module is not extracted, the themeConfig variable is unique.\n\n### Reproduction\n\nas mentioned earlier\n\n### Expected behavior\n\nIn development, some es module that come from node_modules ain't extracted, the variable don't be duplicated.\n\n### System Info\n\n```Text\nSystem:\r\n OS: Windows 11 10.0.22000\r\n Binaries:\r\n Node: 18.16.0\r\n pnpm: 8.6.0\r\n npmPackages:\r\n vitepress: 1.0.0-rc.31\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.",[2893,2896],{"name":2894,"color":2895},"need more info","bdbefc",{"name":2868,"color":2869},3292,"Theme is made into npm package, if use the theme, Symbol is duplicated in dev.","2024-03-07T11:19:22Z","https://github.com/vuejs/vitepress/issues/3292",0.81334627,{"description":2903,"labels":2904,"number":2908,"owner":2871,"repository":2872,"state":2909,"title":2910,"updated_at":2911,"url":2912,"score":2913},"### Describe the bug\n\n\r\n复现方式,在服务器部署后,访问具体的某一个子菜单后,鼠标选中浏览器地址,按下enter键。就会导致如图效果,首页会和选中页面重合\n\n### Reproduction\n\n在服务器部署后,访问具体的某一个子菜单后,鼠标选中浏览器地址,按下enter键\r\n例如 :\r\n我已经定位到这个具体的菜单 : http://127.0.0.1:80/demo/specify01\r\n\r\n当我在浏览器地址栏使用鼠标选中地址栏并且按下enter键的时候,就会出现上面的情况\n\n### Expected behavior\n\n我希望我在定位到具体的菜单后,在浏览器快速访问时,会帮我定位到具体的菜单,而不是和首页重合\n\n### System Info\n\n```sh\n1.0.0-beta.3\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.",[2905],{"name":2906,"color":2907},"bug: pending triage","e99695",2556,"closed","页面与首页重合","2023-07-07T00:04:41Z","https://github.com/vuejs/vitepress/issues/2556",0.7869467,{"description":2915,"labels":2916,"number":2917,"owner":2871,"repository":2872,"state":2909,"title":2918,"updated_at":2919,"url":2920,"score":2921},"### Is your feature request related to a problem? Please describe.\n\nyes, sometimes code samples are too large to fit on the full screen or the size of screen the user is on\n\n### Describe the solution you'd like\n\nI'd like to allow for a button next to the copy button on code blocks that allows the user to wrap the code blocks\r\n\r\n\u003Cimg width=\"190\" alt=\"testing 2023-08-18 at 10 28 07\" src=\"https://github.com/vuejs/vitepress/assets/46639943/7e404a6c-3405-4b4c-a56a-0174c49c339f\">\n\n### Describe alternatives you've considered\n\n_No response_\n\n### Additional context\n\n_No response_\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.",[],2815,"Allow wrapping of code blocks","2023-08-26T00:04:05Z","https://github.com/vuejs/vitepress/issues/2815",0.7975086,{"description":2923,"labels":2924,"number":2927,"owner":2871,"repository":2872,"state":2909,"title":2928,"updated_at":2929,"url":2930,"score":2931},"### Describe the bug\r\n\r\nSetting the base path on GitHub pages does not update the path for logo\r\n\r\n### Reproduction\r\n\r\n1. Create a new app\r\n2. Set the `base` path to something eg: `/hello/`\r\n3. Set your logo to `/logo.\u003Cext>`\r\n\r\nHere is what I have - https://github.com/akshaybabloo/dotfiles/tree/main/docs\r\n\r\n### Expected behavior\r\n\r\nThe path after generation should be `\u003Culr>/hello/logo.\u003Cext>` but it generates `\u003Curl>/logo.\u003Cext>`\r\n\r\n### System Info\r\n\r\n```Text\r\nSystem:\r\n OS: Linux 6.2 Ubuntu 22.04.3 LTS 22.04.3 LTS (Jammy Jellyfish)\r\n CPU: (16) x64 11th Gen Intel(R) Core(TM) i7-11850H @ 2.50GHz\r\n Memory: 18.87 GB / 31.07 GB\r\n Container: Yes\r\n Shell: 5.1.16 - /bin/bash\r\n Binaries:\r\n Node: 20.5.1 - ~/.nvm/versions/node/v20.5.1/bin/node\r\n Yarn: 1.22.19 - ~/.npm-global/bin/yarn\r\n npm: 9.8.0 - ~/.nvm/versions/node/v20.5.1/bin/npm\r\n Browsers:\r\n Brave Browser: 117.1.58.127\r\n Chrome: 117.0.5938.88\r\n npmPackages:\r\n vitepress: ^1.0.0-rc.12 => 1.0.0-rc.14\r\n```\r\n\r\n\r\n### Additional context\r\n\r\nI am using Bun as my package manager.\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.",[2925,2926],{"name":2906,"color":2907},{"name":2868,"color":2869},2981,"Setting base path doesn't set logo path","2024-01-29T00:04:27Z","https://github.com/vuejs/vitepress/issues/2981",0.80145204,{"description":2933,"labels":2934,"number":2936,"owner":2871,"repository":2872,"state":2909,"title":2937,"updated_at":2938,"url":2939,"score":2940},"### Is your feature request related to a problem? Please describe.\r\n\r\nCan the Type.js plugin be built-in to make the homepage look better, or can an entrance be added for developers to run custom JS files for some custom operations\r\n\r\n### Describe the solution you'd like\r\n\r\n[See this doc](https://steven.codes/typerjs/)\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.",[2935],{"name":2868,"color":2869},4086,"Support more plugins","2025-03-08T04:41:54Z","https://github.com/vuejs/vitepress/issues/4086",0.80383724,{"description":2942,"labels":2943,"number":2944,"owner":2871,"repository":2872,"state":2909,"title":2945,"updated_at":2946,"url":2947,"score":2948},"### Description\n\nCurrently, a `vitepress` site is configured through a centralized monolithic configuration entry. This makes it difficult to apply fine grained configuration alternation for a specific part of the website.\n\nFor example, to achieve multilingual support, the official documentation had to organize it's configuration as follows:\n\n```plaintext\ndocs/.vitepress/config\n├── en.ts\n├── es.ts\n├── fa.ts\n├── index.ts\n├── ko.ts\n├── pt.ts\n├── ru.ts\n├── shared.ts\n└── zh.ts\n```\n\nIn addition to the organization of the configuration files, the UI components have to be rewritten to provide locale support. For example, the search box component has to provide `locales` configuration entry and programmatically derive current locale using global state. These extra burdens will likely add up and become unmaintainable in the near future.\n\n### Describe the solution you'd like\n\nWe can instead provide a distributed configuration hierarchy based on the same folder structure used to organize markdown contents.\n\nFor example, the multilingal support can be achieved as follows:\n\n```plaintext\ndocs\n├── .vitepress\n│ ├── config.ts # Global configuration (root)\n│ └── ...\n├── en\n│ ├── config.ts # English specific configuration\n│ ├── index.md\n│ └── ...\n├── zh\n│ ├── config.ts # Chinese specific configuration\n│ ├── index.md\n│ └── ...\n└── ...\n```\n\nIn the example above, `docs/en/config.ts` only applies to pages under `docs/en/` directory, and the same can be said for other language specific configuration files.\n\n### Additional Benefits\n\nAlmost any configuration can be fine-adjusted in the suggested architecture without specific adaptation. Features added in the future will also be automatically compatible. This will replace the `locale` entry in the current configuration interface.\n\nAs an example, I simply added [6 lines of code](https://github.com/zhangyx1998/vitepress/commit/c3c0d71d1d5ee6244e6b51abef4bbead713aac03#diff-169e70e8b8105432b9949c9ab7ca95265c4ed4476b7056f05f50cf21b50bedbdR44-R49) in `docs/zh/config.ts` and made a Chinese version of the 404 page, effective for ANY page under the `/zh/` path:\n\n| Default 404 Page (English) | Chinese Specific 404 Page |\n|:---:|:---:|\n|\u003Cimg width=\"612\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/e60478b8-bf79-4c9f-a409-2dcf04eee7c7\" />|\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,"Multi-layer hierarchical configuration overloading","2025-04-15T17:13:25Z","https://github.com/vuejs/vitepress/issues/4659",0.8056088,{"description":2950,"labels":2951,"number":2952,"owner":2871,"repository":2872,"state":2909,"title":2953,"updated_at":2954,"url":2955,"score":2956},"### Is your feature request related to a problem? Please describe.\r\n\r\nI'd like to showcase components of a component library with vitepress. I put all of those components in a `\u003Cdiv class=\"preview\">*\u003C/div>` container. The problem is that the `vp-doc` styling is affecting and breaking a lot of those components as you can see here:\r\n\r\n\r\n\r\nHowever, I can fix this by wrapping the default layout and replacing the `vp-doc` class by a custom one and by re-applying all the styles I need in a `custom.css` file. I'm aware that I also could use `layout: page`, but I really like how much love you put in the default theme and would like to continue using it.\r\n\r\n\r\n### Describe the solution you'd like\r\n\r\nIf there is no simple way of ignoring the `vp-doc.css` I'd suggest updating the css selector slightly. For exmaple, convert `.vp-doc h1 {` to `.vp-doc :not(.preview) > h1 {`. This would obviously not apply the styling of this selector inside the preview container. \r\n\r\nI'd like to hear your ideas about that :-)\r\n\r\n### Describe alternatives you've considered\r\n\r\nPlease see the `Is your feature request related to a problem?` section. If this feature is not useful for others, I'm fine with my workaround :-)\r\n\r\n### Additional context\r\n\r\nI'm happy to file a pr if you would like to add this 'feature'.\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.vuejs.org).\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.",[],1482,"Adding container without any global styling inside vp-docs","2023-01-21T14:23:11Z","https://github.com/vuejs/vitepress/issues/1482",0.806743,{"description":2958,"labels":2959,"number":2961,"owner":2871,"repository":2872,"state":2909,"title":2962,"updated_at":2963,"url":2964,"score":2965},"### Describe the bug\r\n\r\nIf a component is using `defineClientComponent`, everything exposed by `defineExpose` is missing via component's ref value.\r\n\r\n### Reproduction\r\n\r\n# Example\r\n\r\ncreate `Editor.vue`\r\n```vue\r\n\u003Cscript setup lang=\"ts\">\r\n// ...\r\ndefineExpose({\r\n getHtml,\r\n setHtml,\r\n});\r\n\u003C/script>\r\n```\r\n\r\nusing `Editor.vue` in `Page.vue`\r\n```vue\r\n\u003Ctemplate>\r\n \u003CEditor ref=\"editor\" />\r\n\u003Cbutton @click=\"clear\">clear all\u003C/button>\r\n\u003C/template>\r\n\r\n\u003Cscript setup lang=\"ts\">\r\n// ...\r\n import { ref } from 'vue';\r\n const editor = ref();\r\n\r\n const clear = () => {\r\n console.log(`editor.value`, editor.value);\r\n editor.value.setHtml();\r\n }\r\n\r\n\u003C/script>\r\n```\r\n\r\n# When using `defineClientComponent` it can't not found `setHtml`\r\n- `docs\\.vitepress\\theme\\index.js` config:\r\n```\r\nexport default {\r\n ...DefaultTheme,\r\n async enhanceApp(ctx) {\r\n const app = ctx.app;\r\n // ...\r\n if (!import.meta.env.SSR) {\r\n const Editor = defineClientComponent(() => {\r\n return import('../../../src/components/Editor.vue');\r\n })\r\n app.component('editor', Editor);\r\n }\r\n }\r\n}\r\n```\r\n- click `clear all` button\r\n- the result is :\r\n -:devtool tell me:editor.value.setHtml is not a function\r\n - `editor.value` object missing `setHtml` \r\n\r\n# When not using `defineClientComponent` it work normally\r\n- `docs\\.vitepress\\theme\\index.js` config:\r\n```\r\nimport Editor from '../../../src/components/Editor.vue'\r\nexport default {\r\n ...DefaultTheme,\r\n async enhanceApp(ctx) {\r\n const app = ctx.app;\r\n // ...\r\n if (!import.meta.env.SSR) {\r\n app.component('editor', Editor);\r\n }\r\n }\r\n}\r\n```\r\n- click `clear all` button\r\n- the result is :\r\n - editor.value.setHtml is called\r\n - console tab `editor.value` object has `setHtml` \r\n\r\n\r\n\r\n### Expected behavior\r\n\r\ndefineExpose works in defineClientComponent component\r\n\r\n### System Info\r\n\r\n```Text\r\nSystem:\r\n OS: Windows 10 10.0.19045\r\n CPU: (8) x64 Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz\r\n Memory: 1.18 GB / 7.86 GB\r\n Binaries:\r\n Node: 18.12.1 - C:\\Program Files\\nodejs\\node.EXE\r\n Yarn: 1.22.19 - C:\\Program Files\\nodejs\\yarn.CMD\r\n npm: 8.19.2 - C:\\Program Files\\nodejs\\npm.CMD\r\n Browsers:\r\n Edge: Spartan (44.19041.1266.0), Chromium (117.0.2045.43)\r\n Internet Explorer: 11.0.19041.1566\r\n npmPackages:\r\n vitepress: 1.0.0-rc.20 => 1.0.0-rc.20\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.",[2960],{"name":2906,"color":2907},3023,"can't get anything defined by `defineExpose` from component ref","2023-10-27T00:04:12Z","https://github.com/vuejs/vitepress/issues/3023",0.80705297,["Reactive",2967],{},["Set"],["ShallowReactive",2970],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$f2c7cgaVp3E0JRJfPybXm5FfbX9Rs9zLduwlEV8FTSjk":-1},"/vuejs/vitepress/4361"]