\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.72266567,{"description":2896,"labels":2897,"number":2899,"owner":2871,"repository":2872,"state":2873,"title":2900,"updated_at":2901,"url":2902,"score":2903},"### Is your feature request related to a problem? Please describe.\n\nhttps://vitepress.dev/zh/guide/markdown#markdown-file-inclusion\r\n\r\nThe above link suggests: support markdown full text inline or selective inline by line number.\r\n\r\nIf the line numbers are inline, this can cause unexpected problems if the embedded markdown file changes in the future (line numbers change)\n\n### Describe the solution you'd like\n\ninline by header (H1, H2, H3, etc.)\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.",[2898],{"name":2868,"color":2869},3827,"Inline markdown files do not support inlining by header","2024-06-09T06:01:04Z","https://github.com/vuejs/vitepress/issues/3827",0.7292055,{"description":2905,"labels":2906,"number":2907,"owner":2871,"repository":2872,"state":2908,"title":2909,"updated_at":2910,"url":2911,"score":2912},"### Is your feature request related to a problem? Please describe.\n\nI'm using Vue components that generate headers dynamically, and (of course) the headers I create in Vue components don't appear in the outline.\n\n### Describe the solution you'd like\n\nI'd like to be able to add headers to `page.headers` in my component.\n\n### Describe alternatives you've considered\n\nI tried manipulating `page.headers` in my component from `useData()`, but the headers are read-only at that point.\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.",[],1145,"closed","Dynamic Outline","2023-01-21T14:26:54Z","https://github.com/vuejs/vitepress/issues/1145",0.6727358,{"description":2914,"labels":2915,"number":2919,"owner":2871,"repository":2872,"state":2908,"title":2920,"updated_at":2921,"url":2922,"score":2923},"### Describe the bug\n\nIf you use Vue-style interpolation in a markdown title (# in markdown), the aside curtain \"On this page\" will show the Vue syntax and not the final text. It will also not take into account the fact that multiple secondary title exists from a loop.\n\n### Reproduction\n\nIf you have a markdown file like this with a vfor loop and a interpolation of text for the heading:\r\n\r\n```md\r\n# My great page\r\n## {{element.subtitle}}\r\n```\r\n\r\nThe output will show `{{element.subtitle}}` as text in the aside curtain \"On this page\".\r\n\r\n\n\n### Expected behavior\n\nThe output in the aside curtain \"On this page\" should be the string returned by Vue-style interpolation and take into account the multiple instance of the loop.\r\n\r\n\n\n### System Info\n\n```shell\nSystem:\r\n OS: Windows 10 10.0.19044\r\n CPU: (16) x64 11th Gen Intel(R) Core(TM) i7-11850H @ 2.50GHz\r\n Memory: 18.71 GB / 31.73 GB\r\n Binaries:\r\n Node: 18.2.0 - C:\\Program Files\\nodejs\\node.EXE\r\n npm: 8.9.0 - C:\\Program Files\\nodejs\\npm.CMD\r\n Browsers:\r\n Edge: Spartan (44.19041.1266.0), Chromium (102.0.1245.39)\r\n Internet Explorer: 11.0.19041.1566\r\n npmPackages:\r\n vitepress: ^1.0.0-alpha.1 => 1.0.0-alpha.1\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.",[2916],{"name":2917,"color":2918},"theme","0754FB",785,"Show dynamic headers in aside outline","2023-01-21T14:26:39Z","https://github.com/vuejs/vitepress/issues/785",0.6890783,{"description":2925,"labels":2926,"number":2927,"owner":2871,"repository":2872,"state":2908,"title":2928,"updated_at":2929,"url":2930,"score":2931},"### Is your feature request related to a problem? Please describe.\r\n\r\nI'd like to be able to show more headings on the \"On this page\" menu, as it is not very useful now.\r\n\r\n\r\n\r\n### Describe the solution you'd like\r\n\r\ndisplay headings as a tree, similar to this:\r\n\r\n\r\n\r\n### Describe alternatives you've considered\r\n\r\ncustom css, seems like it would be more useful as a feature though..\r\n\r\n### Additional context\r\n\r\ni looked in vitepress docs and couldn't find this as an option\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.",[],3158,"feature request: allow \"On this page\" menu to show more than h2 headings, like a tree","2023-11-07T00:04:23Z","https://github.com/vuejs/vitepress/issues/3158",0.7129253,{"description":2933,"labels":2934,"number":2936,"owner":2871,"repository":2872,"state":2908,"title":2937,"updated_at":2938,"url":2939,"score":2940},"### Is your feature request related to a problem? Please describe.\n\nFor now, the outline config in frontmatter is not documented, however, the code is in the codebase. Just add `outline: 'deep'` to the page frontmatter and the outline can show 2 levels at most. So I think:\r\n\r\n1. configuration of page outline of frontmatter should be documented.\r\n2. The outline now only has one available type `'deep'`, but I think we should expose a more configurable config, such as `['h1', 'h2']` and an another `deep` type which equals to `['h1', 'h2', 'h3', 'h4', 'h5', 'h6']` for short.\r\n3. I found that `page.headers` is resolved from https://github.com/vuejs/vitepress/blob/22006e8d6e3ed45841979d684eb6a4ef999bd707/src/node/markdown/plugins/headings.ts#L6-L23 I think we can set the default value of `headingPlugin` to `['h1', 'h2', 'h3', 'h4', 'h5', 'h6']` which means markdown-it will parse all headings in node side. And the outline configuration will only control which headings to render in the outline.\n\n### Describe the solution you'd like\n\nThe configuration of the outline will be like\r\n\r\n```ts\r\nType: ('h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6')[] | 'deep'\r\nDefault: ['h2', 'h3']\r\n```\r\n\r\nalso, we need to fix the code which only can handle `[2, 3]` level for now.\n\n### Describe alternatives you've considered\n\nI believe parsing all headings will not cause a performance issue because markdown-it will try to iterate over all blocks (only a guess).\n\n### Additional context\n\nI would like to implement this feature.\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.",[2935],{"name":2917,"color":2918},954,"expose a configurable outline config in frontmatter","2023-01-21T14:26:40Z","https://github.com/vuejs/vitepress/issues/954",0.71359986,{"description":2942,"labels":2943,"number":2945,"owner":2871,"repository":2872,"state":2908,"title":2946,"updated_at":2947,"url":2948,"score":2949},"### Describe the bug\r\n\r\nPage outline will display any headings that has an `id` property. However, activelink only works if a heading has an `\u003Ca>` (anchor) child element.\r\n\r\nIn addition, the offset match fails if the heading is nested in a positioned (i.e. `position: relative`) parent element.\r\n\r\n\r\n### Reproduction\r\n\r\n#### [stackblitz playground](https://stackblitz.com/edit/github-zbjrsg-tsuanj)\r\n\r\n```markdown\r\n# All of the following headings are shown in outline, and can be clicked to jump.\r\n\r\n## (A) I am skipped, thanks to (C)\r\n\r\n\u003Ch2 id=\"B\">(B) I cannot be highlighted due to lack of anchor\u003C/h2>\r\n\r\n\u003Cdiv style=\"position: relative\">\r\n\r\n## (C) ActiveLink thinks my offset is 0.\r\n\r\n\u003C/div>\r\n\r\n## The last heading always works when scrolled to bottom.\r\n\r\n```\r\n\r\n### Expected behavior\r\n\r\nEach of the heading above should get highlighted correctly.\r\n\r\n### System Info\r\n\r\n```Text\r\nNot relevant\r\n```\r\n\r\n\r\n### Additional context\r\n\r\n#### I've provided a fix here: #3368 \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.",[2944],{"name":2917,"color":2918},3378,"[default theme] activeAnchor inconsistent with outline when embedding html elements","2024-01-11T00:04:46Z","https://github.com/vuejs/vitepress/issues/3378",0.7230827,{"description":2951,"labels":2952,"number":2956,"owner":2871,"repository":2872,"state":2908,"title":2957,"updated_at":2958,"url":2959,"score":2960},"### Is your feature request related to a problem? Please describe.\n\nImagine the use case:\r\n\r\nThere are some settings on the left side (just like `vuejs.org`'s API style switch), but I want it to show/hide some `h2` or `h3`, or say, those heading elements which will be in the aside.\r\n\r\nBy wrapping entire `h2` or `h3` parts by a `\u003Cdiv>` and using classes on the root element to control their visibility based on the value of settings. However, currently, the aside content won't update in this case.\r\n\r\n---\r\n\r\nIf you don't want this to be part of the default theme, please inform me and close this issue, Thanks.\n\n### Describe the solution you'd like\n\nI'm here to gather whether you want this to be a feature in the default theme, as I already implemented it by overriding internal files (that's a bit frustrating honestly) and it's working well for me, so I can raise the MR if you would like to accept this feature as part of the default theme.\r\n\r\nMy implementation in high-level:\r\n1. In those aside components (i.e. `VPDocAsideOutline.vue`, `VPDocOutlineDropdown.vue` and `VPLocalNav.vue`\r\n2. Using `IntersectionObserver` to observe the visibility against root (`\u003Chtml>`)\r\n3. Once change is detected, regenerate the headers and cleanup + apply step 2 again.\r\n\r\nPlease feel free to advise if you have a better approach.\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.",[2953],{"name":2954,"color":2955},"need more info","bdbefc",2686,"✨Feature: Re-generate aside content when visbility of anchor headings change","2023-08-11T00:04:06Z","https://github.com/vuejs/vitepress/issues/2686",0.7232441,["Reactive",2962],{},["Set"],["ShallowReactive",2965],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fbCn6HaKUWwtRKYATZHNSEZj7m9LzewWTdBhGzPQF_XM":-1},"/vuejs/vitepress/3103"]