\n\n### Expected behavior\n\nI hope to use SVG and other methods instead of using masks to display icons, which can avoid frequent redrawing\n\n### System Info\n\n```Text\n\"vitepress\": \"^1.6.4\",\n```\n\n### Additional context\n\n\u003Cimg width=\"2559\" height=\"1042\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/39db5990-f3ee-47bb-8bcf-49272a1918f4\" />\n\n### Validations\n\n- [x] Check if you're on the [latest VitePress version](https://github.com/vuejs/vitepress/releases/latest).\n- [x] Follow our [Code of Conduct](https://vuejs.org/about/coc.html)\n- [x] Read the [docs](https://vitepress.dev).\n- [x] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.",[3162],{"name":3146,"color":3147},4917,"Bug: Frequent triggering of redrawing of navigation bar icons","2025-08-21T09:14:41Z","https://github.com/vuejs/vitepress/issues/4917",0.71477777,{"description":3169,"labels":3170,"number":3171,"owner":3152,"repository":3153,"state":3154,"title":3172,"updated_at":3173,"url":3174,"score":3175},"### Is your feature request related to a problem? Please describe.\n\nThe `frontmatter.head` functionality is nice, but it would be great to allow inserting raw HTML.\n\nMy use case is this:\n* For my website I have a download page.\n* The download/release page is generate by the product build process, based on the available operating systems and CPU.\n* The download/release page is generated from a Jinja2 template\n* I would like to use `vitepress` to generate the Jinja2 template. This should allow injecting some Jinja2 markup in the header and the content\n\nInserting in the `title` already works. \n\nThe current code is here and it force rendering the content as HTML tags\n\nhttps://github.com/vuejs/vitepress/blob/23541b4f83726cdac09ffcaf9141bba871cda690/src/node/build/render.ts#L238-L256\n\n\n\n\n### Describe the solution you'd like\n\nMaybe not the ideal case... but this solution will keep the same interface.\n\nThe idea is that the `RAW_VALUE` marker is used to let `vitepress` know that we don't want to generate a tag.\n\n```\n---\nhead:\n - - meta\n - name: description\n content: hello\n - - RAW_VALUE\n - attr: ignored-but-required\n - \"{%- block head %}{%- endblock %}\"\n---\n```\n\n\n### Describe alternatives you've considered\n\nAs a workaround I can create a tag with a special tag, and than process the HTML file generated by `vitepress` and replace it with the `jinja2` marker.\n\n### Additional context\n\nThe release notes for some project are generated at release time by tools like `https://github.com/twisted/towncrier` and these tools use a `Jinja2` template to generate the final HTML.\n\nWhat I am looking here is to have `vitepress` generate the `Jinja2` template and then `towncrier` generate the final HTML.\n\n`vitepress` knows about the top navigation and other links\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.",[],4793,"Allow for raw HTML in extra head.","2025-06-19T19:06:01Z","https://github.com/vuejs/vitepress/issues/4793",0.7214858,{"description":3177,"labels":3178,"number":3180,"owner":3152,"repository":3153,"state":3154,"title":3181,"updated_at":3182,"url":3183,"score":3184},"### Describe the bug\n\n\n\n\n\nI accidentally used AI to generate a text of an md, and found that there was a text overflow problem\n\n### Reproduction\n\nAs described above\n\n### Expected behavior\n\nThe text should not overflow\n\n### System Info\n\n```Text\ndefault config 、edge\n```\n\n### Additional context\n\n_No response_\n\n### Validations\n\n- [x] Check if you're on the [latest VitePress version](https://github.com/vuejs/vitepress/releases/latest).\n- [x] Follow our [Code of Conduct](https://vuejs.org/about/coc.html)\n- [x] Read the [docs](https://vitepress.dev).\n- [x] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.",[3179],{"name":3146,"color":3147},4798,"Rendering or parsing issues with Markdown","2025-06-21T09:57:36Z","https://github.com/vuejs/vitepress/issues/4798",0.7321685,{"description":3186,"labels":3187,"number":3194,"owner":3152,"repository":3153,"state":3195,"title":3196,"updated_at":3197,"url":3198,"score":3199},"### Describe the bug\n\n```\n transformHead(context) {\n let description = context.pageData?.frontmatter?.layout === \"home\" ? \"Zezombye's Blog\" : \"Programming, self-improvement, and various stuff\";\n return [\n ['meta', { name: 'description', content: description }],\n ]\n },\n```\n\nAlthough the `\u003Cmeta name=\"description\">` tag is overridden, it doesn't take into account the description, putting instead the default description of \"A VitePress site\":\n\n\n\nThis does work if I put `og:description`, but Discord picks up the `description` tag.\n\n\n\n### Reproduction\n\nIt doesn't seem the build works properly at vitepress.new but by putting the `transformHead` hook and removing the default `description` field in the config, it should reproduce.\n\n### Expected behavior\n\nThe tag should be properly overridden\n\n### System Info\n\n```Text\nSystem:\n OS: Windows 10 10.0.17763\n CPU: (8) x64 AMD Ryzen 5 1500X Quad-Core Processor\n Memory: 12.95 GB / 31.95 GB\n Binaries:\n Node: 22.14.0 - C:\\Program Files\\nodejs\\node.EXE\n npm: 10.9.2 - C:\\Program Files\\nodejs\\npm.CMD\n pnpm: 10.7.0 - ~\\AppData\\Roaming\\npm\\pnpm.CMD\n Browsers:\n Chrome: 138.0.7204.49\n Internet Explorer: 11.0.17763.2989\n npmPackages:\n vitepress: ^1.6.3 => 1.6.3\n```\n\n### Additional context\n\nVitePress should by default put the description on the home page, but the title if on any other page as the meta description\n\n### Validations\n\n- [x] Check if you're on the [latest VitePress version](https://github.com/vuejs/vitepress/releases/latest).\n- [x] Follow our [Code of Conduct](https://vuejs.org/about/coc.html)\n- [x] Read the [docs](https://vitepress.dev).\n- [x] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.",[3188,3191],{"name":3189,"color":3190},"docs","0075ca",{"name":3192,"color":3193},"wont fix","EDEED1",4812,"closed","Cannot override meta description with transformHead","2025-06-26T21:56:52Z","https://github.com/vuejs/vitepress/issues/4812",0.6928093,{"description":3201,"labels":3202,"number":3203,"owner":3152,"repository":3153,"state":3195,"title":3204,"updated_at":3205,"url":3206,"score":3207},"### Describe the bug\n\nI've noticed that my index.md meta content within the html \u003Chead> continues to populate throughout the users session whilst navigating to different pages within a site build. \r\n\r\nI think this goes against the desired experienced that occurs when in project docs:dev, where the meta content from the active page appears as expected for each page (and doesn't double-up/include the index.md meta content). \r\n\n\n### Reproduction\n\n\r\nMy front matter is JSON format, looking similar to this;\r\n\r\n```index.md\r\n---\r\n{\r\n \"title\": \"My Sites Homepage\",\r\n \"description\": \"The main index.md site\",\r\n \"head\":\r\n [\r\n [\"meta\", { \"name\": \"application\", \"content\": \"My App\" }],\r\n [\"meta\", { \"name\": \"search\", \"content\": \"Black, White, Red, Green, Blue\" },\r\n ],\r\n ],\r\n}\r\n---\r\n```\r\n\r\n\r\nMy front matter is JSON format, looking similar to this;\r\n\r\n```random-page.md\r\n---\r\n{\r\n \"title\": \"A Random Page\",\r\n \"description\": \"A random page of various topics\",\r\n \"head\":\r\n [\r\n [\"meta\", { \"name\": \"application\", \"content\": \"Random App\" }],\r\n [\"meta\", { \"name\": \"search\", \"content\": \"Apples, Oranges, Balloons\" },\r\n ],\r\n ],\r\n}\r\n---\r\n```\r\n\r\nnpm run docs:dev - we see the expected content on the random-page.html\r\n\r\n\r\n\r\nnpm run docs:build / docs:serve - navigating to the same page, the head looks like this;\r\n\r\n\r\n\n\n### Expected behavior\n\nI would expect the head meta content for both Dev and Build/Serve to look as Dev currently does.\r\n\r\n\n\n### System Info\n\n```Text\n- Windows 10/11\r\n - FireFox (latest version)\r\n - VitePress builds 32 / 35\n```\n\n\n### Additional context\n\n_No response_\n\n### Validations\n\n- [X] Check if you're on the [latest VitePress version](https://github.com/vuejs/vitepress/releases/latest).\n- [X] Follow our [Code of Conduct](https://vuejs.org/about/coc.html)\n- [X] Read the [docs](https://vitepress.dev).\n- [X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.",[],3471,"meta content from index appears in head when navigating with build/serve, but not whilst in dev. ","2024-01-27T00:04:23Z","https://github.com/vuejs/vitepress/issues/3471",0.70787984,{"description":3209,"labels":3210,"number":3211,"owner":3152,"repository":3153,"state":3195,"title":3212,"updated_at":3213,"url":3214,"score":3215},"From https://github.com/vuejs/vitepress/pull/152#issuecomment-733801888\r\n\r\nThe issue appears when using the escaping char in heading in markdown, for example:\r\n```\r\n## \\$page\r\n```\r\n\r\n\r\n",[],155,"unescaped \\ escaping char in sidebar titles","2023-01-21T16:24:08Z","https://github.com/vuejs/vitepress/issues/155",0.71003467,{"description":3217,"labels":3218,"number":3220,"owner":3152,"repository":3153,"state":3195,"title":3221,"updated_at":3222,"url":3223,"score":3224},"### Describe the bug\n\n1. see https://github.com/docschina/vue-tips-weekly/blob/main/posts/070.md . the file front-matter set head link \r\n2. clone, install, build\r\n3. see view-source:https://vue-tips-weekly.vercel.app/070.html , the rendered source html file not have head link \r\n4. visit https://vue-tips-weekly.vercel.app/070.html in browser, have the head link\n\n### Reproduction\n\n- source https://github.com/docschina/vue-tips-weekly/blob/main/posts/070.md\r\n- site https://vue-tips-weekly.vercel.app/070.html \n\n### Expected behavior\n\nrendered source html file have head link\n\n### System Info\n\n```shell\n\"vitepress\": \"^1.0.0-alpha.4\",\n```\n\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] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.",[3219],{"name":3146,"color":3147},1069,"md set formatter head tag but rendered html not have head tag","2023-01-21T14:30:07Z","https://github.com/vuejs/vitepress/issues/1069",0.71071917,{"description":3226,"labels":3227,"number":3231,"owner":3152,"repository":3153,"state":3195,"title":3232,"updated_at":3233,"url":3234,"score":3235},"### Is your feature request related to a problem? Please describe.\r\n\r\nI'd like to override `\u003Cmeta name=\"description\">` for each page via `transformHead()`\r\n\r\nhttps://vitepress.dev/reference/site-config#transformhead\r\n\r\nHow it only adds it. So there are 2 `\u003Cmeta description>`s.\r\n\r\n### Describe the solution you'd like\r\n\r\nI'd like to get a chance to remove or override the default `\u003Cmeta description>` for a certain page.\r\n\r\n### Describe alternatives you've considered\r\n\r\nOr having an option to disable the default `\u003Cmeta description>`.\r\n\r\n### Additional context\r\n\r\nReproduction link: https://github.com/Jinjiang/reproductions/tree/vitepress-head-dedupe-20230728\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.",[3228],{"name":3229,"color":3230},"build","377ba8",2695,"Override/deduplicate meta heads in transformHead()","2023-08-06T00:04:30Z","https://github.com/vuejs/vitepress/issues/2695",0.7226939,{"description":3237,"labels":3238,"number":3240,"owner":3152,"repository":3153,"state":3195,"title":3241,"updated_at":3242,"url":3243,"score":3244},"### Describe the bug\n\n在 xx.md 文件中输入以下文档会报错:\r\n## 测试文档\r\n\r\n\r\n> \u003Cn>y = 密钥在 n 年后过期\r\n> 密钥的有效期限是?(0)\r\n\r\n\r\n11\r\n22\r\n\r\n33\n\n### Reproduction\n\n输入以上内容,编译错误\n\n### Expected behavior\n\n能够正常的编译, \n\n### System Info\n\n```shell\n17:38:38 [vite] Internal server error: Element is missing end tag.\r\n Plugin: vite:vue\r\n File: D:/pro/doc/my-docs/docs/l-note/GPG入门教程.md\r\n 6 | \r\n 7 | \r\n 8 | 11\r\n | ^\r\n 9 | 22\r\n 10 | \r\n at createCompilerError (D:\\pro\\doc\\my-docs\\node_modules\\@vue\\compiler-core\\dist\\compiler-core.cjs.js:19:19)\r\n at emitError (D:\\pro\\doc\\my-docs\\node_modules\\@vue\\compiler-core\\dist\\compiler-core.cjs.js:1602:29)\r\n at parseElement (D:\\pro\\doc\\my-docs\\node_modules\\@vue\\compiler-core\\dist\\compiler-core.cjs.js:1154:9)\r\n at parseChildren (D:\\pro\\doc\\my-docs\\node_modules\\@vue\\compiler-core\\dist\\compiler-core.cjs.js:937:28)\r\n at parseElement (D:\\pro\\doc\\my-docs\\node_modules\\@vue\\compiler-core\\dist\\compiler-core.cjs.js:1133:22)\r\n at parseChildren (D:\\pro\\doc\\my-docs\\node_modules\\@vue\\compiler-core\\dist\\compiler-core.cjs.js:937:28)\r\n at parseElement (D:\\pro\\doc\\my-docs\\node_modules\\@vue\\compiler-core\\dist\\compiler-core.cjs.js:1133:22)\r\n at parseChildren (D:\\pro\\doc\\my-docs\\node_modules\\@vue\\compiler-core\\dist\\compiler-core.cjs.js:937:28)\r\n at parseElement (D:\\pro\\doc\\my-docs\\node_modules\\@vue\\compiler-core\\dist\\compiler-core.cjs.js:1133:22)\r\n at parseChildren (D:\\pro\\doc\\my-docs\\node_modules\\@vue\\compiler-core\\dist\\compiler-core.cjs.js:937:28)\n```\n\n\n### Additional context\n\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] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.",[3239],{"name":3146,"color":3147},1470,"容错率太低了, 以下文档也会进行报错。","2023-01-23T00:04:14Z","https://github.com/vuejs/vitepress/issues/1470",0.72397107,["Reactive",3246],{},["Set"],["ShallowReactive",3249],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fjrEZMEXeNJEy4tNt94HPhasftVrFK6rsKPELIBemc7A":-1},"/vuejs/vitepress/2190"]