vscode侧边栏outline不显示需同时开启explorer.experimental.showoutline、关闭outline.automaticcollapse,并确保文件语言模式为markdown;标题需标准#语法且无空格或html注释;中文标题锚点不匹配应将markdown all in one的slugifymode设为vscode;mpe导出html带侧边栏须在front-matter中启用html_config.offline: true。

侧边栏 Outline 面板根本没出现?先确认这三项
VSCode 默认压根不显示侧边栏大纲,不是插件问题,而是三个开关全关着。必须同时满足:
-
explorer.experimental.showOutline设为true(新版里叫 “Explorer > Show Outline”,在设置里搜就行) -
outline.automaticCollapse设为false,否则大纲只显示一行“…” - 当前文件右下角状态栏语言模式必须是
markdown,不是plaintext或auto detected—— 点一下手动切过去
缺一不可。哪怕只漏掉 showOutline,侧边栏连 “OUTLINE” 标签都不会有。
标题写了但大纲里不显示?检查语法和上下文
VSCode 大纲只认标准 # 开头的标题行,且极其挑剔:
- 标题行不能前后带空格,
## 二级标题(末尾空格)或## 二级标题(开头空格)都不识别 - 不支持 HTML 注释干扰,
## 标题 <!-- ignore -->会被跳过 - Front Matter 区域(
---包裹的 YAML)里的内容不参与大纲提取 - 文件必须已保存(有
.md后缀 + 实际内容),未保存的空白文件不会触发解析
验证方式:按 Ctrl+Shift+P → 输入 Developer: Toggle Developer Tools → Console 里执行 vscode.workspace.textDocuments.find(d => d.fileName.endsWith('.md'))?.languageId,返回值得是 "markdown"。
中文标题在预览里点不动?改插件 slugify 模式
Markdown All in One 插件生成的目录链接(如 [使用说明](#使用说明))和 VSCode 内置预览的锚点不匹配,是因为两者对中文标题的转义规则不同:
- VSCode 预览用的是 URL 编码(
#%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E) - 插件默认用
github模式(#%E4%B8%AD%E6%96%87或剔除标点),导致点击无效
解决方法:打开插件设置,搜 markdown.extension.toc.slugifyMode,把它从 github 改成 vscode。改完后旧目录不会自动更新,得手动删掉再运行一次 Markdown: Create Table of Contents。
导出 HTML 后侧边栏消失?MPE 插件要配 offline: true
用 Markdown Preview Enhanced 导出 HTML 时,侧边栏依赖的 JS/CSS 资源默认是远程加载的。离线打开就白屏——这不是 bug,是设计如此。
必须在文档顶部加 front-matter,并启用资源嵌入:
---<br>html:<br> toc: true<br> html_config:<br> offline: true<br> embed_local_images: true<br> embed_svg: true<br>---
offline: true 是关键,它会把所有运行侧边栏所需的脚本、样式打包进 HTML 文件,生成真正独立可运行的单文件。不加这一项,导出的 HTML 就只是纯内容,没有导航逻辑。
另外注意:这个配置只对 MPE 插件生效,VSCode 自带预览不读取 front-matter,也不支持导出带侧边栏的 HTML。











