\r\n```\r\n\r\nAlternatively, use the `desc` defined in the `container` to write Markdown syntax.\r\n\r\n```md\r\n::: demo src=\"../demo.vue\" title=\"Demo block\"\r\n\r\nThis is a `description` that can be written using Markdown.\r\n\r\n:::\r\n```\r\n\r\n### Describe the solution you'd like\r\n\r\nTo address this, I have created the [markdown-it-vitepress-demo](https://github.com/hairyf/markdown-it-vitepress-demo) plugin. I'm not sure if it can be helpful.\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- https://github.com/vuejs/vitepress/issues/987\r\n- https://github.com/vuejs/vitepress/issues/1349\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.",[3167],{"name":3146,"color":3147},2432,"feat(demo): built-in markdown plugin provides support for showcasing demo capabilities.","2024-07-17T14:37:26Z","https://github.com/vuejs/vitepress/issues/2432",0.7242314,{"description":3174,"labels":3175,"number":3177,"owner":3149,"repository":3150,"state":3151,"title":3178,"updated_at":3179,"url":3180,"score":3181},"### Is your feature request related to a problem? Please describe.\r\n\r\nI want to use UnoCSS in a VitePress project, just like what [unocss.dev](https://unocss.dev) does. However, simply copying their config cannot bring UnoCSS to the whole site.\r\n\r\nIn this [minimal demo on StackBlitz](https://stackblitz.com/edit/vitepress-unocss), there are 3 UnoCSS injections:\r\n- [x] In Markdown content, any UnoCSS element keeps their format but without style\r\n- [ ] In the hero of `index.md`, the element turns into a string\r\n- [x] Only in the feature cards, element and styles exists so the icon shows\r\n- [ ] Other cases haven't been checked\r\n\r\n### Describe the solution you'd like\r\n\r\nProvide some guide to allow UnoCSS injection, it may be better if there is a plugin to do that.\r\n\r\n### Describe alternatives you've considered\r\n\r\nBoth VitePress and UnoCSS are powered by Vite, if UnoCSS can be integrated into VitePress, it may bring a more customizable style with little cost.\r\n\r\n~~I don't know if it's better to request this feature after UnoCSS reaches v1.0, or request it on UnoCSS for now.~~\r\n\r\n### Additional context\r\n\r\n- [UnoCSS docs source](https://github.com/unocss/unocss/tree/main/docs)\r\n- [Guide of integrating UnoCSS into Vite](https://unocss.dev/integrations/vite)\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.",[3176],{"name":3146,"color":3147},2424,"Feature request: support UnoCSS generally","2023-08-03T10:15:33Z","https://github.com/vuejs/vitepress/issues/2424",0.73870856,{"description":3183,"labels":3184,"number":3185,"owner":3149,"repository":3150,"state":3151,"title":3186,"updated_at":3187,"url":3188,"score":3189},"### Is your feature request related to a problem? Please describe.\n\nWhen using Vue templates, the Markdown renderer processes them correctly and compiles them. However, in the title, sidenav, and local search (path), the Vue templates are not rendered and are displayed as raw templates.\n\n\u003Cimg width=\"537\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/db835d1f-1084-41c9-bf1c-aa329f4609eb\" />\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,"Sidenav Components / Skip title update","2025-03-20T12:17:14Z","https://github.com/vuejs/vitepress/issues/4637",0.7426338,{"description":3191,"labels":3192,"number":3193,"owner":3149,"repository":3150,"state":3151,"title":3194,"updated_at":3195,"url":3196,"score":3197},"### Is your feature request related to a problem? Please describe.\n\nWhen a heading comes from a Vue component, it gets an `id` and shows up in the \"On this page\" outline, but the invisible `\u003Ca class=\"header-anchor\">`, which appears on mouse hover, is missing.\n\nMinimal repro:\n\ndocs/index.md\n\n```md\n\u003Cscript setup lang=\"ts\">\nimport AComponent from './AComponent.vue'\n\u003C/script>\n\n## foo {#foo}\n\n\u003CAComponent />\n```\n\ndocs/AComponent.vue\n\n```vue\n\u003Ctemplate>\n \u003Ch2 id=\"bar\">bar\u003C/h2>\n \u003Ch2 id=\"baz\">baz\u003C/h2>\n\u003C/template>\n```\n\nResult: `## bar` and `## baz` appear in the outline and are linkable, but they have no header‑anchor element, so users cannot easily copy a permalink, and the UI feels a bit inconsistent when hovering the mouse over headings added by the component and the ones written in Markdown.\n\n\n### Describe the solution you'd like\n\nDuring the same client‑side pass that builds the outline, scan for any `\u003Ch1‑h6>` with an `id` but lacking `.header-anchor`, and inject an anchor with the same markup VitePress generates for Markdown headings.\n\n\n### Describe alternatives you've considered\n\nManually adding the anchor works...\n\n```html\n\u003Ch2 id=\"qux\">\n qux\n \u003Ca class=\"header-anchor\" href=\"#qux\" aria-label='Permalink to \"qux {#qux}\"'>​\u003C/a>\n\u003C/h2>\n```\n\n...but is somewhat boilerplate and is brittle. It must be manually added to each place where `\u003Ch1‑h6>` is used and will break if the theme changes.\n\n### Additional context\n\nScreencast of how the repro example looks:\n\n\nhttps://github.com/user-attachments/assets/28deb3dc-47d4-4c16-9d30-f491cfb58fda\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.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.",[],4867,"Auto‑insert `\u003Ca.header‑anchor>` for headings rendered by Vue components","2025-07-30T19:09:15Z","https://github.com/vuejs/vitepress/issues/4867",0.7443154,{"description":3199,"labels":3200,"number":3202,"owner":3149,"repository":3150,"state":3203,"title":3204,"updated_at":3205,"url":3206,"score":3207},"### Is your feature request related to a problem? Please describe.\n\nIn VuePress it was possible to set default titles for TIP, INFO, WARNING, DANGER, DETAILS in config but in VitePress it doesn't work anymore.\n\n### Describe the solution you'd like\n\nAdd something like this in a config:\r\n```js\r\nthemeConfig: {\r\n\tcontainer: {\r\n\t\ttip: 'Tip',\r\n\t\tinfo: 'Info',\r\n\t\twarning: \"Warning\",\r\n\t\tdanger: 'Danger',\r\n\t\tdetails: \"Details\"\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.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.",[3201],{"name":3146,"color":3147},1947,"closed","Add i18n support for default Custom Container titles","2023-08-11T00:04:11Z","https://github.com/vuejs/vitepress/issues/1947",0.71119285,{"description":3209,"labels":3210,"number":3214,"owner":3149,"repository":3150,"state":3203,"title":3215,"updated_at":3216,"url":3217,"score":3218},"### Describe the bug\r\n\r\nwhen I update the version to `\"vitepress\": \"^1.0.0-alpha.63\",` , and run `vitepress dev docs`, The Aside component is render nothing\r\n\r\n\r\n\r\n### Reproduction\r\n\r\nupdate the vitepress version to `\"vitepress\": \"^1.0.0-alpha.63\",`\r\n\r\nrun `vitepress dev docs`\r\n\r\n`config.js`\r\n```\r\nimport { defineConfigWithTheme } from 'vitepress';\r\nimport vueJsx from '@vitejs/plugin-vue-jsx';\r\nimport baseConfig from '@vue/theme/config';\r\nimport { demoBlockPlugin } from 'vitepress-theme-demoblock';\r\nimport path from 'path';\r\n\r\nimport { i18n, nav, sidebar } from './themeConfig/index';\r\n\r\nexport default defineConfigWithTheme({\r\n extends: baseConfig,\r\n lang: 'zh-CN',\r\n title: 'SinoGear Vue',\r\n description: '',\r\n srcDir: './src',\r\n scrollOffset: 'header',\r\n ignoreDeadLinks: true,\r\n head: [['meta', { name: 'theme-color', content: '#3c8772' }]],\r\n themeConfig: {\r\n nav,\r\n sidebar,\r\n appearance: false, // 开启 light/dark 模式\r\n // Placeholder of the i18n config for @vuejs-translations.\r\n i18n,\r\n },\r\n\r\n markdown: {\r\n config(md) {\r\n md.use(demoBlockPlugin, {\r\n cssPreprocessor: 'less',\r\n scriptImports: [\r\n \"import * as AntDesignVue from 'ant-design-vue'\",\r\n ],\r\n scriptReplaces: [\r\n {\r\n searchValue: /import ({.*}) from 'ant-design-vue'/g,\r\n replaceValue: (s, s1) => `const ${s1} = AntDesignVue`\r\n },\r\n ]\r\n });\r\n }\r\n },\r\n\r\n vite: {\r\n server: {\r\n host: true,\r\n port: 3001,\r\n fs: {\r\n // for when developing with locally linked theme\r\n allow: ['../..']\r\n }\r\n },\r\n build: {\r\n chunkSizeWarningLimit: Infinity\r\n },\r\n json: {\r\n stringify: true\r\n },\r\n ssr: {\r\n noExternal: ['@wangeditor/editor', '@wangeditor/editor-for-vue', 'ant-design-vue', '@ant-design/icons-vue', '@babel/runtime']\r\n },\r\n plugins: [vueJsx()],\r\n css: {\r\n preprocessorOptions: {\r\n less: {\r\n javascriptEnabled: true\r\n }\r\n }\r\n }\r\n },\r\n\r\n vue: {\r\n reactivityTransform: path.resolve(__dirname, 'src')\r\n }\r\n});\r\n\r\n```\r\n\r\n### Expected behavior\r\n\r\nrender aside component\r\n\r\n### System Info\r\n\r\n\r\n`packages.json`\r\n```shell\r\n\r\n\"@babel/plugin-syntax-jsx\": \"^7.18.6\",\r\n \"@vitejs/plugin-vue\": \"^4.0.0\",\r\n \"@vitejs/plugin-vue-jsx\": \"^3.0.0\",\r\n \"@vue/babel-plugin-jsx\": \"^1.1.1\",\r\n \"@vue/compiler-sfc\": \"^3.0.4\",\r\n \"conventional-changelog-cli\": \"^2.1.0\",\r\n \"cross-env\": \"^7.0.2\",\r\n \"del\": \"^6.0.0\",\r\n \"gulp\": \"^4.0.2\",\r\n \"gulp-babel\": \"^8.0.0\",\r\n \"highlight.js\": \"^10.4.1\",\r\n \"less\": \"^4.1.2\",\r\n \"lint-staged\": \"^13.0.3\",\r\n \"prettier\": \"^2.7.1\",\r\n \"rimraf\": \"^3.0.0\",\r\n \"transliteration\": \"^2.2.0\",\r\n \"vitepress\": \"^1.0.0-alpha.63\",\r\n \"vitepress-plugin-search\": \"^1.0.4-alpha.17\",\r\n \"vitepress-theme-demoblock\": \"^2.0.0\"\r\n```\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] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.",[3211],{"name":3212,"color":3213},"need more info","bdbefc",2157,"The Aside component is render nothing","2023-04-05T00:04:02Z","https://github.com/vuejs/vitepress/issues/2157",0.72934353,{"description":3220,"labels":3221,"number":3222,"owner":3149,"repository":3150,"state":3203,"title":3223,"updated_at":3224,"url":3225,"score":3226},"**Is your feature request related to a problem? Please describe.**\r\nI would like the ability to configure markdown options similar to what is availiable in `vuepress`.\r\n\r\n**Describe the solution you'd like**\r\nIn the `config.js` file would like to be able to toggle markdown options added by `vitepress` and add my own markdown plugins. It seems that most of this was already scaffolded out and the markdown options just need to be exposed to the user config.\r\n\r\n**Describe alternatives you've considered**\r\nN/a\r\n\r\n**Additional context**\r\nN/a",[],127,"Configure markdown options","2023-01-21T16:24:15Z","https://github.com/vuejs/vitepress/issues/127",0.7300048,{"description":3228,"labels":3229,"number":3233,"owner":3149,"repository":3150,"state":3203,"title":3234,"updated_at":3235,"url":3236,"score":3237},"I am looking into porting the using vue in Markdown from vuepress: \r\nhttps://vuepress.vuejs.org/guide/using-vue.html\r\n\r\nIf I understand correctly, vitepress doesn't want to auto register components by convention as Vuepress does. Is this the case? I actually liked this feature, but I understand that vitepress wants to keep the moving parts as small as possible.\r\n\r\nWhat is the recommended way to register the components? I see that in vue-router-next docs they are registered globally inside `enhanceApp`: https://github.com/vuejs/vue-router-next/search?q=HomeSponsors.\r\nSame as with this comment: https://github.com/vuejs/vitepress/issues/92#issuecomment-724645482\r\n\r\nShould we document this way in the docs?\r\n\r\nSome thoughts about this. It would be great that users that want to use the default theme as is, do not need to learn straight away about enhanceApp to be able to use a vue component in their markdown.\r\n\r\nIf auto registering by convention in a folder like `.vitepress/components` is not an option, could we import them directly in the markdown?\r\n\r\n```markdown\r\n# Docs\r\n\r\nThis is a .md using a custom component\r\n\r\n\u003CCustomComponent />\r\n\r\n## More docs\r\n\r\n...\r\n\r\n\u003Cscript setup>\r\n import CustomComponent from '../components/CustomComponent.vue'\r\n\u003C/script>\r\n```\r\n\r\nScript & style hoisting is working in vitepress: https://vuepress.vuejs.org/guide/using-vue.html#script-style-hoisting, but I tried this example to import a Component and it is not at this point.\r\n",[3230],{"name":3231,"color":3232},"docs","0075ca",157,"Recommended way to use Custom Vue components in .md","2023-01-21T16:04:10Z","https://github.com/vuejs/vitepress/issues/157",0.73042625,["Reactive",3239],{},["Set"],["ShallowReactive",3242],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$f1Vj_k7_-jBRLVObDVtvcnpN_soJ-jmHZpjFIjzZ3DP4":-1},"/vuejs/vitepress/4164"]