\r\n\u003CVPNavBarMenu class=\"menu\" />\r\n\u003CVPNavBarTranslations class=\"translations\" />\r\n\u003CVPNavBarAppearance class=\"appearance\" />\r\n\u003CVPNavBarSocialLinks class=\"social-links\" />\r\n\u003CVPNavBarExtra class=\"extra\" />\r\n\u003Cslot name=\"nav-bar-content-after\" />\r\n\u003CVPNavBarHamburger class=\"hamburger\" :active=\"isScreenOpen\" @click=\"$emit('toggle-screen')\" />\r\n```\r\nand those would either have to be copied and/or reimplemented inside my project if all I wanted to do, for example, was put the site title/logo in the middle of the navbar instead of the left side.\r\n\r\n### Describe the solution you'd like\r\n\r\nI'm still learning Vue, but it seems like if these core theme components could be exported from the vitepress library, they could be imported instead of reimplemented if all I wanted to do was copy the NavBar template and edit it a bit.\r\n\r\n### Describe alternatives you've considered\r\n\r\nThe alternative right now seems to be either copying all these theme files into my project, reimplementing them, or not using them and sacrificing their utility.\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.",[],2976,"Easier Overriding of Internal Components","2023-10-03T00:04:19Z","https://github.com/vuejs/vitepress/issues/2976",0.7229062,{"description":2906,"labels":2907,"number":2912,"owner":2869,"repository":2870,"state":2871,"title":2913,"updated_at":2914,"url":2915,"score":2916},"### 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.",[2908,2909],{"name":2866,"color":2867},{"name":2910,"color":2911},"contribution welcome","11E4B8",2765,"Export VPButton + VPSponsors","2023-08-23T00:04:06Z","https://github.com/vuejs/vitepress/issues/2765",0.7251341,{"description":2918,"labels":2919,"number":2921,"owner":2869,"repository":2870,"state":2871,"title":2922,"updated_at":2923,"url":2924,"score":2925},"### Is your feature request related to a problem? Please describe.\n\nI want to use `Badge` component in my custom theme. And the `Badge` component not exportd by `vitepress/theme`\r\n\r\nSo I can do this only:\r\n```ts\r\nimport Theme from 'vitepress/theme'\r\n\r\nexport default {\r\n\t...Theme,\r\n\tenhanceApp(ctx) {\r\n\t \tTheme.enhanceApp(ctx)\r\n\t\t// Custom content\r\n\t}\r\n}\r\n```\n\n### Describe the solution you'd like\n\nSo I' d like to import `Badge` from `vitepress/theme` directly\r\n\r\n```ts\r\nimport { Badge } from 'vitepress/theme'\r\n\r\nexport default {\r\n\t...Theme,\r\n\tenhanceApp(ctx) {\r\n\t \tctx.app.component('Badge', VPBadge);\r\n\t\t// Custom content\r\n\t}\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.",[2920],{"name":2910,"color":2911},3430,"Export `Badge` component for custom Theme","2024-01-18T00:04:42Z","https://github.com/vuejs/vitepress/issues/3430",0.7315524,{"description":2927,"labels":2928,"number":2930,"owner":2869,"repository":2870,"state":2871,"title":2931,"updated_at":2932,"url":2933,"score":2934},"### 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.",[2929],{"name":2890,"color":2891},2368,"Docs: more information when using a custom theme","2023-08-25T19:31:40Z","https://github.com/vuejs/vitepress/issues/2368",0.7446394,{"description":2936,"labels":2937,"number":2938,"owner":2869,"repository":2870,"state":2871,"title":2939,"updated_at":2940,"url":2941,"score":2942},"\u003C!--\r\nNOTE:\r\nVitePress is still WIP, and it is not compatible with VuePress.\r\nPlease do not open issue about default theme missing features or something doesn't work like VuePress.\r\n-->\r\n\r\n**Describe the bug**\r\nWhen using a custom theme, importing composables like `useRoute` from `\"vitepress\"` in the Layout component also imports the styles for the default theme.\r\n\r\n**To Reproduce**\r\n\r\n1. Follow the [Getting Started guide](https://vitepress.vuejs.org/guide/getting-started.html) to create a new site\r\n2. Create `docs/.vitepress/theme/Layout.vue` with the following contents:\r\n\r\n```vue\r\n\u003Ctemplate>\r\n \u003CContent />\r\n\u003C/template>\r\n\r\n\u003Cscript setup>\r\n// import { useRoute } from \"vitepress\";\r\n// const route = useRoute();\r\n\u003C/script>\r\n```\r\n\r\n3. Create `docs/.vitepress/theme/index.js` with the following contents:\r\n\r\n```js\r\nimport Layout from \"./Layout.vue\";\r\n\r\nexport default {\r\n Layout,\r\n};\r\n```\r\n\r\n4. Run `yarn docs:dev` and open http://localhost:3000. Note the heading doesn't have any styles applied to it:\r\n\r\n\r\n\r\n5. Uncomment the lines in the `\u003Cscript setup>` section in `docs/.vitepress/theme/Layout.vue`. Note the heading now has the default styles applied to it, even though we only imported `useRoute`:\r\n\r\n\r\n\r\n**Expected behavior**\r\nThe heading should remain unstyled since we aren't explicitly importing any styles.\r\n\r\n**System Info**\r\n- vitepress version: v0.9.2\r\n- vite version: v1.0.0-rc.13\r\n- Node version: v12.20.0\r\n- OS version: macOS Catalina 10.15.7\r\n\r\n**Additional context**\r\nI had a quick look at the Vitepress code and it looks like the problem might be to do with this line: https://github.com/vuejs/vitepress/blob/309aa7a8d0e7ab08c1c9db258c74709a66b295cb/src/client/app/exports.ts#L29\r\n\r\nAdding the following to `docs/.vitepress/config.js`:\r\n\r\n```javascript\r\nmodule.exports = {\r\n alias: {\r\n \"/@default-theme/index\": \"/@theme/empty.js\",\r\n },\r\n};\r\n```\r\n\r\n...and creating an empty file `docs/.vitepress/theme/empty.js` prevents the default styles being applied.\r\n",[],182,"Importing default composables also imports default theme's styles","2023-01-21T16:23:59Z","https://github.com/vuejs/vitepress/issues/182",0.74546236,{"description":2944,"labels":2945,"number":2947,"owner":2869,"repository":2870,"state":2871,"title":2948,"updated_at":2949,"url":2950,"score":2951},"### 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.",[2946],{"name":2866,"color":2867},1914,"Make prev / next links changeable","2023-03-05T00:04:54Z","https://github.com/vuejs/vitepress/issues/1914",0.7461518,{"description":2953,"labels":2954,"number":377,"owner":2869,"repository":2870,"state":2871,"title":2956,"updated_at":2957,"url":2958,"score":2959},"### Is your feature request related to a problem? Please describe.\n\nCurrently sidebar depth can be specified per page in the frontmatter section. It would be convenient to set a global default sidebar depth in themeConfig. In situations where pages are auto-generated, adding the frontmatter block may not be so easy. \n\n### Describe the solution you'd like\n\nAdd support for `sidebarDepth` in `themeConfig`.\r\n\r\nSidebar depth specified in the frontmatter block should take priority over what's defined in `themeConfig`. If `sidebarDepth` is not defined, either in the page or in `themeConfig`, `Infinity` should be used to avoid breaking changes.\r\n\n\n### Describe alternatives you've considered\n\nThe default theme in vuepress supports setting sidebarDepth in sidebar groups as well, which could be nice, but I guess the most important is to have a global default available.\n\n### Additional context\n\n_No response_\n\n### Validations\n\n- [X] Follow our [Code of Conduct](https://vuejs.org/coc)\n- [X] Read the [docs](https://vitepress.vuejs.org/).\n- [X] Read the [Contributing Guidelines](https://github.com/vuejs/vitepress/blob/master/.github/contributing.md).\n- [X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.",[2955],{"name":2866,"color":2867},"Support setting sidebar depth in themeConfig for default theme","2023-01-21T14:32:50Z","https://github.com/vuejs/vitepress/issues/482",0.7473301,["Reactive",2961],{},["Set"],["ShallowReactive",2964],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fDY27floBL5a5DQLMRBsSueXaffdVYlYaGRv34aPX-hw":-1},"/vuejs/vitepress/70"]