` to every `.md` documents. However, I think this is not a proper way to do it as it's used in every documents.\r\n\r\n\r\n\r\n### Describe the solution you'd like\r\n\r\nAdding a slot before or after the document content.\r\n\r\n`\u003Ctemplate #doc-before>\u003C/template>`\r\n`\u003Ctemplate #doc-after>\u003C/template>`\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.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.",[],762,"Slot for top or bottom of document","2023-01-21T14:34:09Z","https://github.com/vuejs/vitepress/issues/762",0.7437908,{"description":2913,"labels":2914,"number":2915,"owner":2869,"repository":2870,"state":2880,"title":2916,"updated_at":2917,"url":2918,"score":2919},"### Is your feature request related to a problem? Please describe.\r\n\r\nRight now (unless I'm not understanding the correct method) it seems difficult to override core theme componentry. Say I want to edit the NavBar template; I have to either write a completely new implementation from scratch (sacrificing a lot of features built in to the framework like the hamburger menu, and the configurable data expressed to navbar links, logo image, site title, etc. This seems to be because those components are part of the core library and not exported anywhere to be reused, so there's a big block of reused components like\r\n```\r\n\u003CVPNavBarSearch class=\"search\" />\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.7481518,{"description":2921,"labels":2922,"number":2924,"owner":2869,"repository":2870,"state":2880,"title":2925,"updated_at":2926,"url":2927,"score":2928},"### 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.",[2923],{"name":2866,"color":2867},2368,"Docs: more information when using a custom theme","2023-08-25T19:31:40Z","https://github.com/vuejs/vitepress/issues/2368",0.7516925,{"description":2930,"labels":2931,"number":2933,"owner":2869,"repository":2870,"state":2880,"title":2934,"updated_at":2935,"url":2936,"score":2937},"### Is your feature request related to a problem? Please describe.\n\nHey, can you expose [`isDark`](https://github.com/vuejs/vitepress/blob/acca3a81c3096e24bff3524fbd3f12a55896c61c/src/client/theme-default/components/VPSwitchAppearance.vue#L7)\r\n\r\nFor example, I use hasClass to get whether there is a dark class in html or directly from storage, they are not responsive\n\n### Describe the solution you'd like\n\nIt may be used to adapt to dark mode when paired with some component libraries, thanks\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.",[2932],{"name":2897,"color":2898},923,"Hey, can you expose `isDark`","2023-01-21T14:32:45Z","https://github.com/vuejs/vitepress/issues/923",0.75234574,{"description":2939,"labels":2940,"number":2941,"owner":2869,"repository":2870,"state":2880,"title":2942,"updated_at":2943,"url":2944,"score":2945},"### Is your feature request related to a problem? Please describe.\r\n\r\nI would like to replace sections in the default theme with my own components and sections for the home page. For example I want to replace the `VPHomeFeatures` with my own features component and not rely on the vitepress `VPHomeFeatures` component. The slots `vp-home-feature-before` and `vp-home-feature-after` are not sufficient, because I want to replace the actual component itself.\r\n\r\nSection from from `src/client/theme-default/components/VPHome.vue` where the feature component is defined in the theme:\r\n```\r\n \u003Cslot name=\"home-features-before\" />\r\n \u003CVPHomeFeatures />\r\n \u003Cslot name=\"home-features-after\" />\r\n```\r\n\r\n### Describe the solution you'd like\r\n\r\nA simple solution is to introduce more slots in the default theme such that a developer can replace components on the home page with his own custom components.\r\n\r\nI think we should introduce at least two new slots:\r\n- `home-features`\r\n- `home-hero`\r\n\r\nThe improved section from `src/client/theme-default/components/VPHome.vue` would simply be:\r\n```\r\n \u003Cslot name=\"home-features-before\" />\r\n \u003Cslot name=\"home-features\" />\r\n \u003CVPHomeFeatures />\r\n \u003C/slot>\r\n \u003Cslot name=\"home-features-after\" />\r\n```\r\n\r\n\r\n\r\n### Describe alternatives you've considered\r\n\r\nThe alternative is to tell vite to replace the `VPHome.vue` component (or Features component for that matter) with a custom `VPHome.vue` component using aliases in the configuration, e.g.:\r\n\r\n```\r\nvite: {\r\n resolve: {\r\n alias: [\r\n {\r\n find: /^.*\\/VPHome\\.vue$/,\r\n replacement: fileURLToPath(\r\n new URL('./theme/components/VPHome.vue', import.meta.url),\r\n ),\r\n },\r\n ],\r\n },\r\n },\r\n```\r\n\r\n### Additional context\r\n\r\nIf this is something the maintainers want to consider, I can prepare a quick MR for this feature asap after approval.\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.",[],3558,"More slots in the default theme to replace components completely","2024-02-15T00:05:28Z","https://github.com/vuejs/vitepress/issues/3558",0.7528616,{"description":2947,"labels":2948,"number":2952,"owner":2869,"repository":2870,"state":2880,"title":2953,"updated_at":2954,"url":2955,"score":2956},"### 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.",[2949],{"name":2950,"color":2951},"need more info","bdbefc",1376,"Customize default page layout","2023-01-21T14:23:05Z","https://github.com/vuejs/vitepress/issues/1376",0.7532405,["Reactive",2958],{},["Set"],["ShallowReactive",2961],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fMh1t96BnFb6ApRuGsbIYKAUQ-Te2mW3uMgzkjozJgjw":-1},"/vuejs/vitepress/4190"]