\n\n\u003Cimg width=\"308\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/0e1beb6b-d06b-436c-b106-c924fead87ab\" />\n\n\u003Cimg width=\"931\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/aef6f71a-fa28-4b7c-b512-e6386e18159a\" />\n\n### Describe the solution you'd like\n\nIn my [pull request](https://github.com/vuejs/vitepress/pull/4630), I've introduced custom components that can be overridden in the `enhanceApp` function. In these custom components, I can add custom logic for rendering text, such as using the Vue compile function. \n\nAdditionally, I added a flag to skip the title update, allowing for custom logic implementation. \n\nPlease also see my PR: [https://github.com/vuejs/vitepress/pull/4630](https://github.com/vuejs/vitepress/pull/4630).\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.",[],4637,"vuejs","vitepress","open","Sidenav Components / Skip title update","2025-03-20T12:17:14Z","https://github.com/vuejs/vitepress/issues/4637",0.75558156,{"description":2874,"labels":2875,"number":2879,"owner":2866,"repository":2867,"state":2868,"title":2880,"updated_at":2881,"url":2882,"score":2883},"### Is your feature request related to a problem? Please describe.\r\n\r\nI'm using Vitepress to generate a combined static site that includes a substantial dynamic component, which ideally would include dynamic routing based on stuff like user ids–standard SPA stuff. I am using Vitepress in this way because it better for SEO than a Vue SPA, and is generally easier for development than using two separate builds.\r\n\r\nCurrently, I have `/index.md` as static, and `app/index.md` as a stub containing a client-only component. I want `app/[page].md` (or something) to be dynamic and render another client-only component, but this is (mostly) not possible even with dynamic routing, as it is file-based.\r\n\r\n### Describe the solution you'd like\r\n\r\nIt would be great if there were a `[page].vue` or other config option that marked a route as client-side only such that it has the same behavior as normal vue-router. Essentially a way to have a partially-static Vue site.\r\n\r\n### Describe alternatives you've considered\r\n\r\nIt is possible to modify the layout's 404 handler such that it renders the component for the runtime dynamic route. The browser will report a 404, which is [mostly a cosmetic issue](https://utcc.utoronto.ca/~cks/space/blog/web/BrowsersAndHTTPStatusCodes). Otherwise, this workaround complicates the split between application and view logic, which is not ideal.\r\n\r\nThe workaround looks a little like this plus a `v-if` in the template\r\n\r\n```ts\r\nconst pageId = computed(() => {\r\n const relPath = page.value.relativePath || window.location.pathname;\r\n return relPath.match(/\\/app\\/([\\w\\-]+)\\/?$/)?.[1] ?? undefined;\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] 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.",[2876],{"name":2877,"color":2878},"stale","ededed",2892,"Runtime dynamic routes","2025-03-02T18:10:56Z","https://github.com/vuejs/vitepress/issues/2892",0.7569447,{"description":2885,"labels":2886,"number":2888,"owner":2866,"repository":2867,"state":2868,"title":2889,"updated_at":2890,"url":2891,"score":2892},"### Is your feature request related to a problem? Please describe.\n\n1. sometimes need use vue dynamic render highlight content like json list or some thing . if can provide component or function to do that, that will be great.\r\n2. tryed use the vue dynamic component it's not woking , can we use it ? how.\r\n1.有时候需要动态输出 markdown ,能不能加一个从vue 动态输出的功能 。 2. 动态组件用不了,怎么才能用vue 的动态组件\n\n### Describe the solution you'd like\n\n1. sometimes need use vue dynamic render highlight content like json list or some thing . if can provide component or function to do that, that will be great.\r\n2. tryed use the vue dynamic component it's not woking , can we use it ? how.\r\n1.有时候需要动态输出 markdown ,能不能加一个从vue 动态输出的功能 。 2. 动态组件用不了,怎么才能用vue 的动态组件\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.",[2887],{"name":2877,"color":2878},4253,"[Feature request] use vue render highlight section","2024-12-03T17:27:43Z","https://github.com/vuejs/vitepress/issues/4253",0.7587276,{"description":2894,"labels":2895,"number":2896,"owner":2866,"repository":2867,"state":2897,"title":2898,"updated_at":2899,"url":2900,"score":2901},"### Is your feature request related to a problem? Please describe.\n\nI want to make a website that contains pre-built websites inside the public folder, so my public folder has let's say a file called `foo/index.html`. I want it to be accessible by going to `mysite.com/foo`, however that brings me to a 404 page. I have to go to `mysite.com/foo/index.html` in order for the page to load.\n\n### Describe the solution you'd like\n\nI have the cleanURLs setting set to with-subfolders, which is supposed to do the above transformation, but it appears to only do so for generated files. I'd like it to also perform the transformation for any index.html files inside the public folder.\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.vuejs.org).\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.",[],1432,"closed","Support cleanURLs for index.html files in public folder","2023-01-21T14:25:14Z","https://github.com/vuejs/vitepress/issues/1432",0.7267047,{"description":2903,"labels":2904,"number":2905,"owner":2866,"repository":2867,"state":2897,"title":2906,"updated_at":2907,"url":2908,"score":2909},"### Is your feature request related to a problem? Please describe.\n\nMy company has many development documentation sites, and because each of these documents is a separate site, it is difficult to link them together. My current idea is to link them together in a micro-application way. VitePress framework is a very good document, so we are developing document site is it, unable to use the router. OnBeforeRouteChange, lead to cannot be quick and easy to realize the communication between father and son application function.\r\n \n\n### Describe the solution you'd like\n\nI hope we can add the function of route guard to the router or useRouter hook of enhanceApp, which can solve many problems.\r\n \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.",[],3100,"i want to use Router.onBeforeRouteChange","2023-10-26T00:04:33Z","https://github.com/vuejs/vitepress/issues/3100",0.73437774,{"description":2911,"labels":2912,"number":2913,"owner":2866,"repository":2867,"state":2897,"title":2914,"updated_at":2915,"url":2916,"score":2917},"### Is your feature request related to a problem? Please describe.\n\nno\n\n### Describe the solution you'd like\n\nIt will be great if this feature be implemented, like it was implemented in old `vuepress` from the box. it is related to Github integration.\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.",[],3371,"README.md as default folder page together with index.md","2024-01-08T00:04:55Z","https://github.com/vuejs/vitepress/issues/3371",0.73789704,{"description":2919,"labels":2920,"number":2924,"owner":2866,"repository":2867,"state":2897,"title":2925,"updated_at":2926,"url":2927,"score":2928},"### Describe the bug\r\n\r\nVitepress should check for a nested index.md if no file for the current url exists\r\n\r\n\r\n### Reproduction\r\n\r\n1. Create a folder `test`\r\n2. Create a `index.md` file inside the `test` folder\r\n\r\nCall the URL http://localhost:5173/test\r\n\r\nhttp://localhost:5173/test -> 404 page not found\r\nhttp://localhost:5173/test/ -> index.md gets found\r\n\r\nThis behavior makes sense from a file and folder perspective, but not from an url perspective.\r\nURLs should point to the same resource regardless of using a trailing slash or not\r\n\r\nI thought this gets handled with the cleanUrls setting\r\nhttps://vitepress.vuejs.org/config/app-configs#cleanurls-experimental\r\n\r\nIn my opinion `with-subfolders` should check for an `index.md` file and `without-subfolders` should not.\r\n\r\n### Expected behavior\r\n\r\nIf no file gets found for the currently called url vitepress should check if the called folder contains an index file\r\n\r\n### System Info\r\n\r\n```shell\r\nSystem:\r\n OS: Windows 10 10.0.19045\r\n CPU: (32) x64 AMD Ryzen 9 3950X 16-Core Processor\r\n Memory: 44.27 GB / 63.91 GB\r\n Binaries:\r\n Node: 16.14.2 - C:\\Program Files\\nodejs\\node.EXE\r\n Yarn: 1.22.19 - ~\\AppData\\Roaming\\npm\\yarn.CMD\r\n npm: 8.7.0 - C:\\Program Files\\nodejs\\npm.CMD\r\n Browsers:\r\n Edge: Spartan (44.19041.1266.0), Chromium (108.0.1462.76)\r\n Internet Explorer: 11.0.19041.1566\r\n npmPackages:\r\n vitepress: ^1.0.0-alpha.13 => 1.0.0-alpha.35\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] Follow our [Code of Conduct](https://vuejs.org/about/coc.html)\r\n- [X] Read the [docs](https://vitepress.vuejs.org).\r\n- [X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.",[2921],{"name":2922,"color":2923},"build","377ba8",1770,"cleanUrls does not check for nested index.md","2023-01-21T14:16:46Z","https://github.com/vuejs/vitepress/issues/1770",0.7380275,{"description":2930,"labels":2931,"number":2932,"owner":2866,"repository":2867,"state":2897,"title":2933,"updated_at":2934,"url":2935,"score":2936},"### Describe the bug\n\nHello, thank you so much for vitepress — we are using it for https://observablehq.com/plot/\r\n\r\nCurrently we see that the instant search **detailed list** feature works in `docs:dev` but does not work with `docs:preview` (nor in production). \r\n\r\nWe are currently using v1.0.0-alpha.72, but I tried locally upgrading to v1.0.0-beta.1 and the issue is still here.\r\n\n\n### Reproduction\n\nClone https://github.com/observablehq/plot\r\nchange vitepress version to v1.0.0-beta.1 in package.json\r\nrun yarn; yarn docs:build; yarn docs:preview\r\nopen the site and search “color”\r\n\r\nscreenshot: left: docs:dev; right: docs:preview\r\n\r\n\r\n\n\n### Expected behavior\n\nThe detailed list should appear.\n\n### System Info\n\n```sh\nSystem:\r\n OS: macOS 13.3.1\r\n CPU: (8) arm64 Apple M1\r\n Memory: 63.64 MB / 16.00 GB\r\n Shell: 5.9 - /bin/zsh\r\n Binaries:\r\n Node: 20.1.0 - ~/.nvm/versions/node/v20.1.0/bin/node\r\n Yarn: 1.22.19 - /opt/homebrew/bin/yarn\r\n npm: 9.6.4 - ~/.nvm/versions/node/v20.1.0/bin/npm\r\n Browsers:\r\n Chrome: 114.0.5735.106\r\n Firefox: 113.0.2\r\n Safari Technology Preview: 16.4\r\n npmPackages:\r\n vitepress: ^1.0.0-beta.1 => 1.0.0-beta.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.",[],2485,"Detailed list doesn't work with docs:preview (only works with docs:dev)","2023-06-15T00:04:10Z","https://github.com/vuejs/vitepress/issues/2485",0.73838747,{"description":2938,"labels":2939,"number":2940,"owner":2866,"repository":2867,"state":2897,"title":2941,"updated_at":2942,"url":2943,"score":2944},"### Is your feature request related to a problem? Please describe.\n\nI can not build to use the site \"offline\", so open index.html directly in browser.\n\n### Describe the solution you'd like\n\nI want to be able to use relative URLS\r\n\r\ne.g. asset loading in index.html defaults to this\r\n````\r\n \u003Clink rel=\"modulepreload\" href=\"/assets/chunks/framework.efMJGC9V.js\">\r\n \u003Clink rel=\"modulepreload\" href=\"/assets/chunks/theme.DRnY8Jar.js\">\r\n \u003Clink rel=\"modulepreload\" href=\"/assets/index.md.BTLj63lk.lean.js\">\r\n`````\r\n\r\nthese links starting with a slath won't work if I open index.html directly in the browser\r\n\r\n\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.",[],3673,"Build with Relative URLs","2024-04-28T12:27:41Z","https://github.com/vuejs/vitepress/issues/3673",0.7452071,{"description":2946,"labels":2947,"number":2948,"owner":2866,"repository":2867,"state":2897,"title":2949,"updated_at":2950,"url":2951,"score":2952},"### Describe the bug\n\nI've noticed that my index.md meta content within the html \u003Chead> continues to populate throughout the users session whilst navigating to different pages within a site build. \r\n\r\nI think this goes against the desired experienced that occurs when in project docs:dev, where the meta content from the active page appears as expected for each page (and doesn't double-up/include the index.md meta content). \r\n\n\n### Reproduction\n\n\r\nMy front matter is JSON format, looking similar to this;\r\n\r\n```index.md\r\n---\r\n{\r\n \"title\": \"My Sites Homepage\",\r\n \"description\": \"The main index.md site\",\r\n \"head\":\r\n [\r\n [\"meta\", { \"name\": \"application\", \"content\": \"My App\" }],\r\n [\"meta\", { \"name\": \"search\", \"content\": \"Black, White, Red, Green, Blue\" },\r\n ],\r\n ],\r\n}\r\n---\r\n```\r\n\r\n\r\nMy front matter is JSON format, looking similar to this;\r\n\r\n```random-page.md\r\n---\r\n{\r\n \"title\": \"A Random Page\",\r\n \"description\": \"A random page of various topics\",\r\n \"head\":\r\n [\r\n [\"meta\", { \"name\": \"application\", \"content\": \"Random App\" }],\r\n [\"meta\", { \"name\": \"search\", \"content\": \"Apples, Oranges, Balloons\" },\r\n ],\r\n ],\r\n}\r\n---\r\n```\r\n\r\nnpm run docs:dev - we see the expected content on the random-page.html\r\n\r\n\r\n\r\nnpm run docs:build / docs:serve - navigating to the same page, the head looks like this;\r\n\r\n\r\n\n\n### Expected behavior\n\nI would expect the head meta content for both Dev and Build/Serve to look as Dev currently does.\r\n\r\n\n\n### System Info\n\n```Text\n- Windows 10/11\r\n - FireFox (latest version)\r\n - VitePress builds 32 / 35\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.",[],3471,"meta content from index appears in head when navigating with build/serve, but not whilst in dev. ","2024-01-27T00:04:23Z","https://github.com/vuejs/vitepress/issues/3471",0.7566374,["Reactive",2954],{},["Set"],["ShallowReactive",2957],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fFoS3Ocz2OLKZxAgbaAf2Jmo-n8Bx3ErmbvQtrdrzrfo":-1},"/vuejs/vitepress/2541"]