(\\s*[^\\\u003C\\>]*\\s*)\\\u003C\\/label\\>/g, (_, $1) => {\r\n return `>${getLogoTagString($1)} ${$1}\u003C/label>`\r\n })\r\n }\r\n}\r\n\r\nexport default langPlugin\r\n\r\n```\n\n### Describe the solution you'd like\n\n```diff\r\n- import MarkdownIt from 'markdown-it';\r\n+ import type { MarkdownIt } from 'vitepress'\r\nimport { getLogoTagString } from '../content'\r\n\r\nfunction langPlugin(md: MarkdownIt) {\r\n const temp = md.renderer!.rules!.fence!.bind(md.renderer.rules)\r\n md.renderer.rules.fence = (tokens, idx, options, env, slf) => {\r\n const token = tokens[idx]\r\n if (getLogoTagString(token.info)) {\r\n const result = token.info.match(/^\\b([\\w\\.]*)\\b/)\r\n if (!result)\r\n return temp(tokens, idx, options, env, slf)\r\n const [_, lang] = result\r\n const content = temp(tokens, idx, options, env, slf)\r\n const value = getLogoTagString(lang)\r\n return content.replace(`\u003Cspan class=\"lang\">${lang}\u003C/span>`, `\u003Cspan class=\"lang icon\">${value}\u003C/span>`)\r\n }\r\n\r\n return temp(tokens, idx, options, env, slf)\r\n }\r\n\r\n // insert icon before\r\n // https://github.com/vuejs/vitepress/blob/0c434bf537a64b06fc0bc630b4ee58b9fa67309b/src/node/markdown/plugins/containers.ts#L95\r\n const rawCodeGroupRender = md.renderer.rules['container_code-group_open']!\r\n \r\n md.renderer.rules['container_code-group_open'] = (tokens, idx, options, env, slf) => {\r\n const content: string = rawCodeGroupRender(tokens, idx, options, env, slf)\r\n // match: >index.ts\u003C/label>\r\n return content.replace(/>(\\s*[^\\\u003C\\>]*\\s*)\\\u003C\\/label\\>/g, (_, $1) => {\r\n return `>${getLogoTagString($1)} ${$1}\u003C/label>`\r\n })\r\n }\r\n}\r\n\r\nexport default langPlugin\r\n\r\n```\n\n### Describe alternatives you've considered\n\nNot yet.\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.",[],4146,"Support exporting in `MarkdownIt` interface to be compatible with Markdown plugins users have written themselves","2024-08-25T04:42:06Z","https://github.com/vuejs/vitepress/issues/4146",0.7096414,{"description":2959,"labels":2960,"number":2964,"owner":2874,"repository":2875,"state":2945,"title":2965,"updated_at":2966,"url":2967,"score":2968},"### Is your feature request related to a problem? Please describe.\r\n\r\nConveniently use content-adaptive layout in components on the home page\r\n\r\n### Describe the solution you'd like\r\n\r\n`.vitepress/theme/index.ts`:\r\n```ts\r\nimport HomePage from './component/HomePage'\r\n\r\nexport default {\r\n Layout: () => {\r\n return h(Theme.Layout, null, {\r\n 'home-features-after': () => h(HomePage),\r\n })\r\n },\r\n```\r\n\r\n---\r\n\r\n`HomePage.vue`:\r\n\r\n```html\r\n\u003Cscript setup lang=\"ts\">\r\nimport{ VPHomeContent } from 'vitepress/theme'\r\n\u003C/script>\r\n\r\n\u003Ctemplate>\r\n\t\u003CVPHomeContent>\r\n\t\t\u003C!-- my custom content -->\r\n\t\u003C/VPHomeContent>\r\n\u003C/template>\r\n```\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.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.",[2961],{"name":2962,"color":2963},"contribution welcome","11E4B8",3954,"[New feature] export `VPHomeContent` to provide content-adaptive layout","2024-06-22T04:41:46Z","https://github.com/vuejs/vitepress/issues/3954",0.7435434,["Reactive",2970],{},["Set"],["ShallowReactive",2973],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fj1Q7BTID9GH3c9myyHabZTmBvhwfvHLbSHIQe1RvHPE":-1},"/vuejs/vitepress/4161"]