```\r\n\r\nIt doesn't seem to be correct:\r\n\r\n\r\n\r\nHow to make it look correct, just like on the homepage?:\r\n\r\n\r\n\r\n",[2867],{"name":2868,"color":2869},"stale","ededed",4273,"vuejs","vitepress","open","How to use default Vue components elsewhere","2024-12-03T17:27:39Z","https://github.com/vuejs/vitepress/issues/4273",0.64343935,{"description":2879,"labels":2880,"number":2885,"owner":2871,"repository":2872,"state":2873,"title":2886,"updated_at":2887,"url":2888,"score":2889},"### Is your feature request related to a problem? Please describe.\r\n\r\nI would like to show a text in the footer like:\r\n\r\n`Edited at ${updatedAt} (${commitHash})`.\r\n\r\n\r\n### Describe the solution you'd like\r\n\r\n`updatedAt` is being fetched from this [`getGitTimestamp`](https://github.com/vuejs/vitepress/blob/4c2300318952bfdaabd766a6f16f26419ee854da/src/node/utils/getGitTimestamp.ts#L4) function.\r\n\r\nI would like to propose a new function called `getCommitHash` function which also receives a `file: string` as an argument called `updatedCommitHash` and then add it to the [`page` type](https://github.com/vuejs/vitepress/blob/54042ef5760e0af5590b616d909e7f23effedc22/types/shared.d.ts#L8-L19)\r\n\r\n### Describe alternatives you've considered\r\n\r\nI am going to built this code for my own `vitepress` project, but I think it might be beneficial for other pepole.\r\n\r\n### Additional context\r\n\r\nI would like to make a PR if we agree this is a good thing to add to `vitepress`. \r\n\r\nFirst, I would like to hear an OK from the maintainers. \r\n\r\nPD: Suggest better names as I think my proposed names are not very descriptive 😄 \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.",[2881,2884],{"name":2882,"color":2883},"has-workaround","1B4515",{"name":2868,"color":2869},3520,"Add `updatedCommitHash` to the `page` object","2025-03-02T18:09:45Z","https://github.com/vuejs/vitepress/issues/3520",0.7296788,{"description":2891,"labels":2892,"number":2897,"owner":2871,"repository":2872,"state":2873,"title":2898,"updated_at":2899,"url":2900,"score":2901},"### Describe the bug\n\nbuildConcurrency 默认为64,使用pMap之后,无法保证本地搜索索引的添加顺序\r\n\r\nhttps://github.com/vuejs/vitepress/blob/8f31a4c0780657af9137762c9394c56912f6e383/src/node/plugins/localSearchPlugin.ts#L137\n\n### Reproduction\n\n重现路径:\r\n * 配置文件中,启动 `themeConfig.server.provider = 'local'`\r\n * 需要处理的页面尽量多\r\n\r\n临时规避方案:\r\n配置 `buildConcurrency = 1` 之后,问题消失\n\n### Expected behavior\n\n每次编译都生成相同的 @localSearchIndexroot.js \n\n### System Info\n\n```Text\nSystem:\r\n OS: Linux 6.1\r\n CPU: (32) x64 AMD EPYC 7K62 48-Core Processor\r\n Memory: 46.37 GB / 62.79 GB\r\n Container: Yes\r\n Shell: 5.2.0 - /bin/bash\r\n Binaries:\r\n Node: 16.19.1 - ~/.n/bin/node\r\n Yarn: 1.22.10 - ~/.n/bin/yarn\r\n npm: 8.19.3 - ~/.n/bin/npm\r\n pnpm: 8.6.11 - ~/.n/bin/pnpm\r\n npmPackages:\r\n vitepress: ^1.3.1 => 1.3.1\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.",[2893,2896],{"name":2894,"color":2895},"build","377ba8",{"name":2868,"color":2869},4081,"源码无变化下,每次编译产物@localSearchIndexroot.js hash都不同","2025-03-02T18:08:51Z","https://github.com/vuejs/vitepress/issues/4081",0.73190945,{"description":2903,"labels":2904,"number":2907,"owner":2871,"repository":2872,"state":2873,"title":2908,"updated_at":2909,"url":2910,"score":2911},"I hit another case of #449 by including the following in a markdown file. The workaround which linked to #662 worked for me. Perhaps this should be off by default? Or detect the compilation error and bring a suggestion? The XML I included seems pretty straightforward. Would have been very hard to diagnose if I hadn't been doing lots of searches against the issues here. \r\n\r\n```xml\r\n\u003Ckeyboard locale=\"mt\" conformsTo=\"techpreview\">\r\n \u003Ckeys>\r\n \u003Ckey id=\"hmaqtugha\" to=\"ħ\" />\r\n \u003Ckey id=\"that\" to=\"ថា\" />\r\n \u003C/keys>\r\n\r\n \u003Clayers form=\"hardware\">\r\n \u003Clayer id=\"base\">\r\n \u003Crow keys=\"hmaqtugha that\" />\r\n \u003C/layer>\r\n \u003C/layers>\r\n\r\n\u003C/keyboard>\r\n```\r\n\r\nSymptom is an error deep inside vue\r\n\r\n```\r\n5:26:34 PM [vitepress] Internal server error: Duplicate attribute.\r\n Plugin: vite:vue\r\n File: /Users/srl295/src/codehivetx.us/en/posts/2022-kbd-progress.md:22:69\r\n 22 | \u003Ckeys>\r\n 23 | \u003Ckey id=\"hmaqtugha\" to=\"ħ\" />\r\n 24 | \u003Ckey id=\"that\" to=\"ថា\" />\r\n | ^\r\n 25 | \u003C/keys>\r\n 26 | \r\n at createCompilerError (/Users/srl295/src/codehivetx.us/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js:1327:17)\r\n at emitError (/Users/srl295/src/codehivetx.us/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js:2805:5)\r\n at Object.onattribnameend (/Users/srl295/src/codehivetx.us/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js:2290:7)\r\n at Tokenizer.handleAttrNameEnd (/Users/srl295/src/codehivetx.us/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js:872:14)\r\n at Tokenizer.stateInAttrName (/Users/srl295/src/codehivetx.us/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js:812:12)\r\n at Tokenizer.parse (/Users/srl295/src/codehivetx.us/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js:1065:16)\r\n at Object.baseParse (/Users/srl295/src/codehivetx.us/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js:2844:13)\r\n at Object.parse (/Users/srl295/src/codehivetx.us/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.js:698:23)\r\n at Object.parse$2 [as parse] (/Users/srl295/src/codehivetx.us/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js:1846:24)\r\n at createDescriptor (file:///Users/srl295/src/codehivetx.us/node_modules/@vitejs/plugin-vue/dist/index.mjs:74:43) (x2)\r\n```\r\n",[2905,2906],{"name":2894,"color":2895},{"name":2868,"color":2869},3401,"better stack trace / error message for markdown-it-attrs failures","2025-03-02T18:10:00Z","https://github.com/vuejs/vitepress/issues/3401",0.7439127,{"description":2913,"labels":2914,"number":2917,"owner":2871,"repository":2872,"state":2873,"title":2918,"updated_at":2919,"url":2920,"score":2921},"### Is your feature request related to a problem? Please describe.\n\nDuring build (or CI) process, external links should be checked for validity.\r\n\r\nCurrently, VP only checks localhost links. Other external links are just added as-is to the page. See https://github.com/vuejs/vitepress/blob/d837e82bc8bde63df737be2a1290a2e70c8a0bf3/src/node/markdown/plugins/link.ts#L39\n\n### Describe the solution you'd like\n\nAt a minimum, ignoreDeadLinks callback option should be extended to return ALL links seen during parsing. VP admin can then write their own logic to do link checking.\r\n\r\nExample:\r\n\r\n```\r\nignoreDeadLinks: [\r\n (url) => {\r\n if (external_URL) {\r\n // Do link checking, i.e. with 'link-check' npm package\r\n } elseif (localhost_URL) {\r\n // Handle localhost checking.\r\n }\r\n }\r\n],\r\n``` \r\n\r\nEven better would be a way to continue to allow VP to handle localhost link checking and provide an option to handle external links separately.\r\n\r\nEven even better might be that external link checking is simply built-in to VP, as an option. (E.g., Sphinx has this ability.). Simple example:\r\n\r\n```\r\nimport 'linkCheck' from 'link-check'\r\n\r\n// ...\r\n\r\nlinkCheck(url_to_check, function (err, result) {\r\n if (err) {\r\n throw new Error('Invalid Link: ' + err)\r\n }\r\n});\r\n```\n\n### Describe alternatives you've considered\n\n_No response_\n\n### Additional context\n\nMore than willing to provide an MR to accomplish this, but since there are so many possibilities on how to allow/enable this I would rather wait for developer input to direct towards the best solution.\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.",[2915,2916],{"name":2882,"color":2883},{"name":2868,"color":2869},4009,"Enabling External Link Validity Checking","2025-03-02T18:09:01Z","https://github.com/vuejs/vitepress/issues/4009",0.7442239,{"description":2923,"labels":2924,"number":2925,"owner":2871,"repository":2872,"state":2926,"title":2927,"updated_at":2928,"url":2929,"score":2930},"### Describe the bug\n\nVitePress ignores the `vite.clearScreen: false` option - running `vitepress build` will clear the screen regardless.\r\n\r\nThis is causing issues in our turbo build monorepo - when building several packages at once, VitePress's clear screen clears the log output for packages that were built before it.\n\n### Reproduction\n\nhttps://stackblitz.com/edit/vite-dtu41vnr?file=package.json\r\n\r\n1. Install dependencies\r\n2. Run `npx vitepress build docs`\r\n3. See that screen is cleared, despite vite.clearScreen:false in docs/.vitepress/config.ts\n\n### Expected behavior\n\nScreen should not be cleared if vite.clearScreen:false is set\n\n### System Info\n\n```Text\nSystem:\r\n OS: macOS 15.2\r\n CPU: (10) arm64 Apple M1 Pro\r\n Memory: 78.41 MB / 32.00 GB\r\n Shell: 5.9 - /bin/zsh\r\n Binaries:\r\n Node: 22.12.0 - ~/.local/state/fnm_multishells/64248_1736184870871/bin/node\r\n Yarn: 1.22.19 - ~/.local/state/fnm_multishells/64248_1736184870871/bin/yarn\r\n npm: 10.9.0 - ~/.local/state/fnm_multishells/64248_1736184870871/bin/npm\r\n Browsers:\r\n Chrome: 131.0.6778.205\r\n Safari: 18.2\r\n npmPackages:\r\n vitepress: 1.5.0 => 1.5.0\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.",[],4468,"closed","`vite.clearScreen: false` option is ignorred","2025-01-14T04:42:24Z","https://github.com/vuejs/vitepress/issues/4468",0.65738666,{"description":2932,"labels":2933,"number":2937,"owner":2871,"repository":2872,"state":2926,"title":2938,"updated_at":2939,"url":2940,"score":2941},"### Describe the bug\r\n\r\nThe original md document:\r\n\r\n```\r\n hello \u003Cpicture>\r\n \u003Cimg src=\"https://github.com/markdown-it/markdown-it/assets/73653404/63aa836d-2541-40bb-a4be-aaf02495426d\"/>\r\n \u003C/picture>\r\n```\r\n\r\nAfter executing md.render it will be:\r\n```\r\n \u003Cp>hello \u003Cpicture>\u003C/p>\r\n \u003Cimg src=\"https://github.com/markdown-it/markdown-it/assets/73653404/63aa836d-2541-40bb-a4be-aaf02495426d\"/>\r\n \u003C/picture>\r\n```\r\n\r\n### Reproduction\r\n\r\nyou can try this markdown content:\r\n```\r\n hello \u003Cpicture>\r\n \u003Cimg src=\"https://github.com/markdown-it/markdown-it/assets/73653404/63aa836d-2541-40bb-a4be-aaf02495426d\"/>\r\n \u003C/picture>\r\n```\r\n### Expected behavior\r\n\r\nI hope after executing md.render it should be:\r\n```\r\n \u003Cp>hello\u003C/p>\u003Cpicture>\r\n \u003Cimg src=\"https://github.com/markdown-it/markdown-it/assets/73653404/63aa836d-2541-40bb-a4be-aaf02495426d\"/>\r\n \u003C/picture>\r\n```\r\n\r\n### System Info\r\n\r\n\r\n\u003Cimg width=\"1045\" alt=\"image\" src=\"https://github.com/markdown-it/markdown-it/assets/73653404/63aa836d-2541-40bb-a4be-aaf02495426d\">\r\n\r\n\r\n\r\n### Additional context\r\n\r\nThis seems to be caused by using some mdit plugin, because I tried it [here](https://markdown-it.github.io/#md3=%7B%22source%22%3A%22%20%20%20hello%20%3Cpicture%3E%5Cn%20%20%20%20%20%3Csource%20type%3D%5C%22image%2Favif%5C%22%20srcset%3D%5C%22https%3A%2F%2Fpicbed-1306720359.cos.ap-guangzhou.myqcloud.com%2Fupic%2F2024-02-07-17-37-OUE54Z.webp%3FimageMogr2%2Fformat%2Favif%5C%22%3E%5Cn%20%20%20%20%20%3Cimg%20src%3D%5C%22https%3A%2F%2Fpicbed-1306720359.cos.ap-guangzhou.myqcloud.com%2Fupic%2F2024-02-07-17-37-OUE54Z.webp%5C%22%20alt%3D%5C%22https%3A%2F%2Fpicbed-1306720359.cos.ap-guangzhou.myqcloud.com%2Fupic%2F2024-02-07-17-37-OUE54Z.webp%5C%22%20loading%3D%5C%22lazy%5C%22%2F%3E%5Cn%20%20%20%3C%2Fpicture%3E%22%2C%22defaults%22%3A%7B%22html%22%3Atrue%2C%22xhtmlOut%22%3Afalse%2C%22breaks%22%3Afalse%2C%22langPrefix%22%3A%22language-%22%2C%22linkify%22%3Atrue%2C%22typographer%22%3Atrue%2C%22_highlight%22%3Atrue%2C%22_strict%22%3Afalse%2C%22_view%22%3A%22src%22%7D%7D) and it converted correctly\r\n\r\n### Validations\r\n\r\n- [X] Check if you're on the [latest VitePress version](https://github.com/vuejs/vitepress/releases/latest).\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.",[2934],{"name":2935,"color":2936},"need more info","bdbefc",3632,"inline html transform error","2024-04-28T12:27:40Z","https://github.com/vuejs/vitepress/issues/3632",0.68143636,{"description":2943,"labels":2944,"number":2946,"owner":2871,"repository":2872,"state":2926,"title":2947,"updated_at":2948,"url":2949,"score":2950},"### Is your feature request related to a problem? Please describe.\n\nGitHub introduced a syntax to have alerts: https://github.com/orgs/community/discussions/16925\r\n\r\nBasically, it's:\r\n\r\n```\r\n> [!NOTE] \r\n> Highlights information that users should take into account, even when skimming.\r\n\r\n> [!TIP]\r\n> Optional information to help a user be more successful.\r\n\r\n> [!IMPORTANT] \r\n> Crucial information necessary for users to succeed.\r\n\r\n> [!WARNING] \r\n> Critical content demanding immediate user attention due to potential risks.\r\n\r\n> [!CAUTION]\r\n> Negative potential consequences of an action.\r\n```\r\n\r\n> [!NOTE] \r\n> Highlights information that users should take into account, even when skimming.\r\n\r\n> [!TIP]\r\n> Optional information to help a user be more successful.\r\n\r\n> [!IMPORTANT] \r\n> Crucial information necessary for users to succeed.\r\n\r\n> [!WARNING] \r\n> Critical content demanding immediate user attention due to potential risks.\r\n\r\n> [!CAUTION]\r\n> Negative potential consequences of an action.\n\n### Describe the solution you'd like\n\nI think it would be nice for VitePress to support that built-in. So markdown files authored that way can have a closer experience when reading on GitHub.\r\n\r\nI wrote a markdown-it plugin for that: https://github.com/antfu/markdown-it-github-alerts that VitePress might be able to use directly. (and also a short intro and preview on my site: https://antfu.me/posts/github-alerts)\r\n\r\nI guess we don't need to align exactly the same as GitHub's styling. We could just render our existing alerts.\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.",[2945],{"name":2868,"color":2869},3278,"Support GitHub-style Alert?","2024-01-29T00:04:26Z","https://github.com/vuejs/vitepress/issues/3278",0.6819401,{"description":2952,"labels":2953,"number":2956,"owner":2871,"repository":2872,"state":2926,"title":2957,"updated_at":2958,"url":2959,"score":2960},"### Describe the bug\n\nI am using a markdown-it plugin to add classes to `\u003Ctable>` tags. This was broken by #3932.\r\n\r\nIf you look at: https://github.com/vuejs/vitepress/pull/3932/files#diff-332834eb76757b8e31926e411cef34f7207564d0bf5fd00a185b41d97b3403bf\r\n```\r\n md.renderer.rules.table_open = function (tokens, idx, options, env, self) {\r\n return '\u003Ctable tabindex=\"0\">\\n'\r\n }\r\n```\r\n\r\nThis breaks the chaining of any other modifications to the table_open rule. My understanding is that you should use the methods on token to modify the token and then chain to the existing rule. This post has a decent description: https://publishing-project.rivendellweb.net/customizing-markdown-it/#adding-classes-to-list-and-list-items\r\n\r\nIt looks like the overriding of `math_blocks` further down in the file _does_ chain the original renderer.\n\n### Reproduction\n\nIn `config.mts`\r\n\r\n```\r\nimport markdownItClass from '@toycode/markdown-it-class'\r\n...\r\nexport default defineConfig({\r\n...\r\n markdown: {\r\n config: (md) => {\r\n md.use(markdownItClass, {table: ['table', 'table-striped']})\r\n },\r\n },\r\n})\r\n```\r\n\n\n### Expected behavior\n\nvitepress markdown.it plugin doesn't break other markdown.it plugin\n\n### System Info\n\n```Text\nSystem:\r\n OS: Windows 11 10.0.22631\r\n CPU: (16) x64 Intel(R) Core(TM) i9-10885H CPU @ 2.40GHz\r\n Memory: 9.01 GB / 31.75 GB\r\n Binaries:\r\n Node: 20.16.0 - C:\\Program Files\\nodejs\\node.EXE\r\n npm: 10.8.1 - C:\\Program Files\\nodejs\\npm.CMD\r\n pnpm: 9.5.0 - C:\\Program Files\\nodejs\\pnpm.CMD\r\n Browsers:\r\n Edge: Chromium (127.0.2651.74)\r\n Internet Explorer: 11.0.22621.3527\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.",[2954,2955],{"name":2894,"color":2895},{"name":2868,"color":2869},4239,"Regression: #3932 breaks chaining of table_open markdown.it rules ","2025-03-16T04:43:43Z","https://github.com/vuejs/vitepress/issues/4239",0.70629036,{"description":2962,"labels":2963,"number":2967,"owner":2871,"repository":2872,"state":2926,"title":2968,"updated_at":2969,"url":2970,"score":2971},"### Describe the bug\r\n\r\nYou can check Reproduction Url test.\r\n\r\nEverything works fine when I start the vite project(`apps/playground`) using `pnpm dev:playground`. It crashed when I started vitepress project(`apps/document`) using `pnpm dev:document`.\r\n\r\nMy monorepo project uses `node condition` to link the source code. You can check the `dev` field in `package.json` or `condition: [\"dev\"]` in `vite.config.ts` or `condition: [\"dev\"]` in `config.ts`.\r\n\r\n### Reproduction\r\n\r\nhttps://github.com/i7eo/monorepo-vitepress-bug-report\r\n\r\n### Expected behavior\r\n\r\nStart normally like a vite project(`apps/playground`)\r\n\r\n### System Info\r\n\r\n```Text\r\nSystem:\r\n OS: macOS 14.4.1\r\n CPU: (10) arm64 Apple M1 Max\r\n Memory: 3.61 GB / 64.00 GB\r\n Shell: 5.9 - /bin/zsh\r\n Binaries:\r\n Node: 20.12.2 - ~/.nvm/versions/node/v20.12.2/bin/node\r\n npm: 10.5.0 - ~/.nvm/versions/node/v20.12.2/bin/npm\r\n pnpm: 9.1.0 - ~/.nvm/versions/node/v20.12.2/bin/pnpm\r\n Watchman: 2024.04.08.00 - /opt/homebrew/bin/watchman\r\n Browsers:\r\n Chrome: 124.0.6367.201\r\n Safari: 17.4.1\r\n Safari Technology Preview: 17.4\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] Check if you're on the [latest VitePress version](https://github.com/vuejs/vitepress/releases/latest).\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.",[2964],{"name":2965,"color":2966},"bug: pending triage","e99695",3888,"Vitepress project in monorepo reports `Failed to resolve import \"xxx\"`","2024-05-22T04:41:52Z","https://github.com/vuejs/vitepress/issues/3888",0.7107262,["Reactive",2973],{},["Set"],["ShallowReactive",2976],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fr8cGVAuHW6VdGH7sTe_t3J0cU0wMjie-mia7FRw5siI":-1},"/vuejs/vitepress/3589"]