`)\r\n\r\nI'm currently working on migrating and documenting the excellent Spectre CSS docs and am using Vitepress.\r\n\r\nI'm developing an ejected and modified default theme which has already come some way to solving this problem:\r\n\r\n- [original](https://picturepan2.github.io/spectre/components/menu.html) (custom app)\r\n- [migrated](https://spectre-org.github.io/spectre-docs/docs/components/menu.html) (VitePress with modified default theme)\r\n - note the `vp-doc` formatting which is all Spectre CSS\r\n - some fixed, and some not-yet fixed clashes of general class names\r\n\r\nFor reference to the use case (documenting a 3rd-party framework) here is the raw markdown page:\r\n\r\n- https://raw.githubusercontent.com/spectre-org/spectre-docs/main/docs/components/menu.md\r\n\r\nNote that:\r\n\r\n- Spectre CSS (or any other 3rd-party CSS framework) is now able to be simply \"dropped in\"\r\n- there is no pollution between VitePress and the 3rd-party framework\r\n- VitePress' default components remain fully-styled and work as they were before\r\n- `vp-doc` content can be safely used to demo any 3rd party HTML elements and classes\r\n\r\nI think I know enough to fix the problems in my modified theme and either:\r\n\r\n- publish a new \"neutral\" theme\r\n- port the changes to the default theme (ideal outcome)\r\n\r\nThere's actually not that much work; it's:\r\n\r\n- renaming the general component classes\r\n- moving some `vp-doc` classes to other locations\r\n- creating an additional unstyled entrypoint such as `without-formatting`\r\n\r\n### Describe alternatives you've considered\r\n\r\nPublishing the modified theme standalone, but then of course it would not benefit from ongoing updates.\r\n\r\n### Additional context\r\n\r\nI am proposing a PR in the coming weeks to integrate these updates.\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.",[2867],{"name":2868,"color":2869},"stale","ededed",3021,"vuejs","vitepress","open","Make the default theme compatible with 3rd-party CSS frameworks","2023-11-06T14:43:58Z","https://github.com/vuejs/vitepress/issues/3021",0.7237176,{"description":2879,"labels":2880,"number":2885,"owner":2871,"repository":2872,"state":2873,"title":2886,"updated_at":2887,"url":2888,"score":2889},"When clicking on a page, the sidebar on the left cannot automatically scroll to the current page and needs to scroll some more on its own.\r\nIf there are many things on the sidebar, it may take a long time to scroll. I checked some official documents related to the Vue series and found that many of them use vitepress, and similar things happen.\r\nAt first, I thought it was a matter of the version, but later I tried it myself and found that the new version didn't work either.\r\n\r\nSo is this a feature that can be considered for addition? I think it would be very helpful.\r\n\r\n### at first\r\n\u003Cimg width=\"1232\" alt=\"image\" src=\"https://github.com/vuejs/vitepress/assets/103993866/744ed1b9-157a-4692-9152-d4f3e4dd725c\">\r\n\r\n### after scrolling in the left area\r\n\u003Cimg width=\"1262\" alt=\"image\" src=\"https://github.com/vuejs/vitepress/assets/103993866/4b7622fe-49dd-4862-8d47-b9a954210d86\">\r\n\r\n### Describe the solution you'd like\r\n\r\nIn the sidebar area on the left, make it automatically display the title of the current page.\r\n\r\n### Describe alternatives you've considered\r\n\r\nIf given the opportunity, I hope to contribute to this feature together.\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.",[2881,2884],{"name":2882,"color":2883},"theme","0754FB",{"name":2868,"color":2869},3426,"feat: cannot automatically top the current page","2025-03-02T18:09:56Z","https://github.com/vuejs/vitepress/issues/3426",0.7388602,{"description":2891,"labels":2892,"number":2894,"owner":2871,"repository":2872,"state":2895,"title":2896,"updated_at":2897,"url":2898,"score":2899},"### Is your feature request related to a problem? Please describe.\n\nWhen the text on the link is contextual there is no way to include an alternative text to be shown on next/prev footer.\n\n### Describe the solution you'd like\n\nAdd an optional text entry on `SidebarItem` and use it on `VPDocFooter` if configured.\n\n### Describe alternatives you've considered\n\n_No response_\n\n### Additional context\n\nWe have a `Getting Started` on each group:\r\n\r\n\r\n\r\n\u003Cbr/>\r\n\r\nHere you can check the text is not in context (the next entry should be `Getting Started | Frameworks`):\r\n\r\n\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.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.",[2893],{"name":2882,"color":2883},758,"closed","Provide text entry for `VPDocFooter`","2023-01-21T14:32:49Z","https://github.com/vuejs/vitepress/issues/758",0.6577775,{"description":2901,"labels":2902,"number":2906,"owner":2871,"repository":2872,"state":2895,"title":2907,"updated_at":2908,"url":2909,"score":2910},"### Is your feature request related to a problem? Please describe.\n\nThe default page layout is 'doc', which is hard coded. It will easier the user's life to be able to provide an aletrnative layout so that he doesn't need to write a whole theme.\n\n### Describe the solution you'd like\n\nUse dynamic component in VPContent, and add a config option in the themeConfig.\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.",[2903],{"name":2904,"color":2905},"need more info","bdbefc",1376,"Customize default page layout","2023-01-21T14:23:05Z","https://github.com/vuejs/vitepress/issues/1376",0.6688649,{"description":2912,"labels":2913,"number":2914,"owner":2871,"repository":2872,"state":2895,"title":2915,"updated_at":2916,"url":2917,"score":2918},"### Is your feature request related to a problem? Please describe.\r\n\r\n\"Previous page\" and \"Next page\" may need translation to other language.\r\n\r\nAt this point we one can configure \"On this page\" (with `outlineTitle`), but not yet \"Previous page\" and \"Next page\".\r\n\r\nPossibly `previousPageTitle` and `nextPageTitle` are needed.\r\n\r\n\r\n### Describe the solution you'd like\r\n\r\nAs in https://github.com/vuejs/vitepress/issues/689#issuecomment-1144611412\r\n\r\n### Describe alternatives you've considered\r\n\r\n_No response_\r\n\r\n### Additional context\r\n\r\nIssue discussed at https://github.com/vuejs/vitepress/issues/689 with making \"On this page\" text configurable, but closed without going forward.\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.",[],1883,"Translate Previous page and Next page (make the text configurable)","2023-02-10T00:04:36Z","https://github.com/vuejs/vitepress/issues/1883",0.6854945,{"description":2920,"labels":2921,"number":2923,"owner":2871,"repository":2872,"state":2895,"title":2924,"updated_at":2925,"url":2926,"score":2927},"### Is your feature request related to a problem? Please describe.\n\nCurrently it is only possible to customize the text of the links, but not the link itself, this is taken from the sidebar. However, if a page does not exist in the sidebar, no prev / next link can be set or modified.\r\n\r\nThe current behavior causes the vitepress application to crash if the page is not in the sidebar and you set a prev link via frontmatter, because there is no prev link whose text you can change. As next link always the first page of the sidebar is used.\r\n\r\nI think it would be good if you could customize not only the text but also the link.\r\n\r\n\r\n\n\n### Describe the solution you'd like\n\nChange the frontmatter options from \r\n\r\n```yml\r\n---\r\nprev: 'Get Started | Markdown'\r\n---\r\n```\r\n\r\nto\r\n\r\n```yml\r\n---\r\nprev:\r\n text: 'Get Started | Markdown'\r\n link: '/gettingstarted/markdown'\r\n---\r\n```\r\n\n\n### Describe alternatives you've considered\n\n_No response_\n\n### Additional context\n\n```yml\r\n// prev-next.d.ts\r\n prev: {\r\n text: any;\r\n link: string;\r\n };\r\n next: {\r\n text: any;\r\n link: string;\r\n };\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.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.",[2922],{"name":2882,"color":2883},1914,"Make prev / next links changeable","2023-03-05T00:04:54Z","https://github.com/vuejs/vitepress/issues/1914",0.6903925,{"description":2929,"labels":2930,"number":2932,"owner":2871,"repository":2872,"state":2895,"title":2933,"updated_at":2934,"url":2935,"score":2936},"### Is your feature request related to a problem? Please describe.\n\n[Prev Next Links](https://vitepress.dev/reference/default-theme-prev-next-links) can only customize using Frontmatter in each markdown file\n\n### Describe the solution you'd like\n\nI think there must be someone else who thinks like me: **I don't want Prev Next Links**\r\n\r\nusing `custom.css` or customize in each markdown file is too hack and hope it can be edit in either global config\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.",[2931],{"name":2882,"color":2883},2079,"Add support for custom Prev Next Links in themeConfig","2023-06-18T00:04:58Z","https://github.com/vuejs/vitepress/issues/2079",0.7072143,{"description":2938,"labels":2939,"number":2940,"owner":2871,"repository":2872,"state":2895,"title":2941,"updated_at":2942,"url":2943,"score":2944},"### Is your feature request related to a problem? Please describe.\n\nWhen adding Vue components or HTML markup inside a `doc` or `page` markdown file, it's frustrating to have to contend with the global `.vp-doc` styles.\n\n### Describe the solution you'd like\n\nIt would be very nice to have a `.not-vp-doc` class to negate and opt out of the global `.vp-doc` styles (for the element where you apply `.not-vp-doc` and all descendants) similar to the `.prose` and `.not-prose` classes used by [@tailwindcss/typography](https://github.com/tailwindlabs/tailwindcss-typography).\n\n### Describe alternatives you've considered\n\nI started creating my own override `vp-doc.css` stylesheet, but maintaining it and also getting it imported instead of the default one requires too much duplication files of the default theme.\n\nI also considered mechanisms to opt out of the `.vp-doc` styles at the theme level in `Layout.vue` but it really doesn't solve the problem - the opt-out needs to be able to happen on a specific fragment or component when embedded inside an `.md` file that otherwise consists primarily of markdown content.\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.",[],4731,"Default theme: Add class to opt out of .vp-doc styles","2025-05-04T08:39:09Z","https://github.com/vuejs/vitepress/issues/4731",0.7193061,{"description":2946,"labels":2947,"number":2952,"owner":2871,"repository":2872,"state":2895,"title":2953,"updated_at":2954,"url":2955,"score":2956},"### Is your feature request related to a problem? Please describe.\n\nFind myself wanting to use VPButton and VPSponsors on a few places throughout my site. Right now, I exported them through a patch, but would great if they were exported by default.\n\n### Describe the solution you'd like\n\nVPButton and VPSponsors exported.\n\n### Describe alternatives you've considered\n\nCurrently use the following patch:\r\n\r\n```diff\r\ndiff --git a/dist/client/theme-default/without-fonts.js b/dist/client/theme-default/without-fonts.js\r\nindex 2b760aa398b7ac1881551ab146d7d308ef2277a3..a2940ca0b99b7673d8914e4bf332f57c588e8f46 100644\r\n--- a/dist/client/theme-default/without-fonts.js\r\n+++ b/dist/client/theme-default/without-fonts.js\r\n@@ -11,10 +11,12 @@ import Layout from './Layout.vue';\r\n // Note: if we add more optional components here, i.e. components that are not\r\n // used in the theme by default unless the user imports them, make sure to update\r\n // the `lazyDefaultThemeComponentsRE` regex in src/node/build/bundle.ts.\r\n+export { default as VPButton } from './components/VPButton.vue';\r\n export { default as VPHomeHero } from './components/VPHomeHero.vue';\r\n export { default as VPHomeFeatures } from './components/VPHomeFeatures.vue';\r\n export { default as VPHomeSponsors } from './components/VPHomeSponsors.vue';\r\n export { default as VPDocAsideSponsors } from './components/VPDocAsideSponsors.vue';\r\n+export { default as VPSponsors } from './components/VPSponsors.vue';\r\n export { default as VPTeamPage } from './components/VPTeamPage.vue';\r\n export { default as VPTeamPageTitle } from './components/VPTeamPageTitle.vue';\r\n export { default as VPTeamPageSection } from './components/VPTeamPageSection.vue';\r\ndiff --git a/theme.d.ts b/theme.d.ts\r\nindex 4b1076b5fbda893eb6f4a5df6a40c15d1bb379ba..177f5a6aa9602e0eeae954137bcce1ac0080ddef 100644\r\n--- a/theme.d.ts\r\n+++ b/theme.d.ts\r\n@@ -3,10 +3,12 @@ import type { DefineComponent } from 'vue'\r\n import { EnhanceAppContext } from './dist/client/index.js'\r\n \r\n // TODO: add props for these\r\n+export const VPButton: DefineComponent\r\n export const VPHomeHero: DefineComponent\r\n export const VPHomeFeatures: DefineComponent\r\n export const VPHomeSponsors: DefineComponent\r\n export const VPDocAsideSponsors: DefineComponent\r\n+export const VPSponsors: DefineComponent\r\n export const VPTeamPage: DefineComponent\r\n export const VPTeamPageTitle: DefineComponent\r\n export const VPTeamPageSection: DefineComponent\r\n```\n\n### Additional context\n\nHappy to open a PR for this!\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.",[2948,2949],{"name":2882,"color":2883},{"name":2950,"color":2951},"contribution welcome","11E4B8",2765,"Export VPButton + VPSponsors","2023-08-23T00:04:06Z","https://github.com/vuejs/vitepress/issues/2765",0.7203663,{"description":2958,"labels":2959,"number":2961,"owner":2871,"repository":2872,"state":2895,"title":2962,"updated_at":2963,"url":2964,"score":2965},"### Is your feature request related to a problem? Please describe.\r\n\r\nIt can be difficult to gather some \"necessary\" information when using a fully custom theme. This is normally not much of an issue, but I have found a few issues with the default behavior when using a custom theme. \r\n\r\n1. Codeblocks render in a strange way, and it's not very straightforward on how to edit the default behavior. \r\n\r\nFor example, I frequently make a basic example like so:\r\n```\r\n\\```bash\r\npnpm add bootstrap bootstrap-vue-next @bootstrap-vue-next/nuxt -D\r\n\\```\r\n```\r\n\r\nThe code highlighting works well, but I end up getting some weird extra business:\r\n\r\n\r\nIn addition to this, 'code-groups' give undesirable behavior: \r\n\r\n```\r\n::: code-group\r\n\r\n\\```bash [PNPM]\r\npnpm add bootstrap bootstrap-vue-next\r\n\r\npnpm add unplugin-vue-components -D\r\n\\```\r\n\r\n\\```bash [YARN]\r\nyarn add bootstrap bootstrap-vue-next\r\n\r\nyarn add unplugin-vue-components -D\r\n\\```\r\n\r\n\\```bash [NPM]\r\nnpm i bootstrap bootstrap-vue-next\r\n\r\nnpm i unplugin-vue-components -D\r\n\\```\r\n\r\n:::\r\n```\r\n\r\n\r\n\r\nIn this specific instance, I solved it by simply not using the default code-group and instead just using my already existing custom component \r\n\r\n```vue\r\n\u003Cb-tabs v-model=\"codePreference\">\r\n \u003Cb-tab title=\"PNPM\">\r\n\r\n\\```bash\r\npnpm add bootstrap bootstrap-vue-next\r\n\\```\r\n\r\n \u003C/b-tab>\r\n \u003Cb-tab title=\"YARN\">\r\n```\r\netc etc.\r\n\r\nHowever, each of these instances still render\r\n\r\nAbove them, which is undesirable\r\n\r\n2. Links, \r\n\r\nThe default behavior of links is \"fine\", however, it would be nice if I could convert all links in markdown to use a component of my choosing. Specifically, I already have a \"BLink\" component that I could use.\r\n\r\nIn addition to this, a nice ease of use that I would enjoy is the auto creation of perma links. This one also goes together with the next section. Simply using `## Some header`, it would be nice if it auto created subsequent links for each instance... However, it doesn't. Which, perhaps most people wouldn't benefit from that behavior. This goes with Table of contents as I'm not exactly sure how a toc would be generated without these items existing... Perhaps you need to make each of these things manually? But if that's the case, how do custom themes like the default theme do it? There has to be a way if the default theme accomplishes this behavior.\r\n\r\n3. Table of contents\r\n\r\nNow, I haven't used the table of contents list, but I imagine that this one will be somewhat difficult as there's little information on it's usage. It's only shown usage is `[[toc]]`. But this doesn't really give much. Say for example if you wanted to put the toc into a layout vue component. It doesn't say anything about that.\r\n\r\n4. Custom containers\r\n\r\nNow, a simple solution to using a \"custom container\" is to use your own component. However, I'm wondering if there is another way to fulfill this syntax:\r\n\r\n::: info\r\nFoo!\r\n:::\r\n\r\nAnd simply have it use a component of your choosing. \r\n\r\n### Describe the solution you'd like\r\n\r\nPerhaps some more information on the \"Using a Custom Theme\" section could be useful. Most of the issue I find here revolve around the \"Markdown Extensions\" usage. It's clear that extensions are available whether or not you decide to use a custom theme, so it makes it difficult to understand how to overwrite some of those behaviors. \r\n\r\n### Describe alternatives you've considered\r\n\r\nHonestly, I'm not sure of the best alternatives in any of these situations. In some cases, I can simply use my builtin components and forgo the extensions. \r\n\r\n### Additional context\r\n\r\nIt seems that some of this information is upstream in the markdown-it library. But this I am unsure about. But in addition to this, there is the `theme/index.ts` file, which proposes to export a weakly typed object. Perhaps there could be a strongly typed function for this that would provide some info\r\n\r\nI have found no reference to this being strongly typed though.\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.",[2960],{"name":2868,"color":2869},2368,"Docs: more information when using a custom theme","2023-08-25T19:31:40Z","https://github.com/vuejs/vitepress/issues/2368",0.724409,["Reactive",2967],{},["Set"],["ShallowReactive",2970],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$ffoc2tACh5qpLblISvk640t06Av7eYg-mwWo6ti3tW0A":-1},"/vuejs/vitepress/893"]