生成完美中文编码目录列表[TOC]的终极解决方案 - 用 VSCode 写 Markdown 文档经验总结系列

本文介绍了在VSCode中编写Markdown文档时,如何解决中文编码目录列表(TOC)的问题。重点讨论了MPE插件、Markdown TOC插件和Auto Markdown TOC插件的使用,包括TOC语法、正则表达式处理锚点ID,以实现中文目录的完美跳转。此外,还分享了不同网站中TOC的用法差异及其兼容性问题。
摘要由CSDN通过智能技术生成

生成完美中文编码目录列表[TOC]的终极解决方案 - 用 VSCode 写 Markdown 文档经验总结系列

1 前言

在之前写的《用 VSCode 打造宇宙最强 Markdown 编辑器》系列几篇博文已经讲解了用 VSCcode + Markdown 插件编写文档的基础技能,对于文章的目录列表 TOC,最初试验时发现 MPE 插件已内置了类似 Markdown TOC 插件的 TOC 生成功能,创建目录列表就是小菜一碟。不过在写了几篇中文贴之后突然发现,Markdown文档的 TOC 对中文字符编码的目录列表的支持问题多多,网上查到的所有方法都存在问题。只好自力更生,整理了一个可以说目前为止最完美的中文目录列表生成方法,和我整理的 TOC 功能汇总资料,一并分享给大家。

2 用 TOC 语法生成目录列表

2.1 用 TOC 语法自动生成目录

VSCode 中用 MPE 编写 Markdown,支持通过 [TOC] 语法将目录插入到文档的任何位置,同时还会在侧边栏显示相同目录,便于预览时选择跳转。需要注意的是:这种方式创建的 TOC 目录只会在预览中显示,或在浏览器或生成 PDF 等文档浏览,不会修改你的 markdown 文件。并且可以点击预览窗口中的侧边栏目录列表图标,打开侧边栏目录。如下图。

2020-10-29_TOC03

需要特别注意:必须是以 MPE 插件的 Markdown 预览功能,而不是打开 VSCode 自有的 Markdown 预览窗口。 VSCode 自有的 Markdown 预览不支持目录列表的显示。

2.2 各网站的用法差异和效果

  1. 博客园网站编辑界面上,要求 [TOC] 必须独占一行。和 VSCode 的 MPE 插件功能类似,如下图:
    2020-10-29_TOC04

  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
在 Vue 中使用 Markdown 渲染文档时,如果文档内容比较长,我们需要为用户提供侧边栏目录导航,方便用户快速定位到所需部分。下面是一个简单的方法来实现自动生成 Markdown 文档的侧边栏目录。 首先,我们需要安装 `markdown-it` 和 `markdown-it-toc`: ```bash npm install markdown-it markdown-it-toc --save ``` 然后,在 Vue 组件中引入并使用它们: ```javascript <template> <div> <!-- 目录导航 --> <div v-html="toc"></div> <!-- Markdown 内容 --> <div v-html="html"></div> </div> </template> <script> import MarkdownIt from 'markdown-it' import MarkdownItToc from 'markdown-it-toc' export default { data() { return { markdown: '# 一级标题\n\n## 二级标题\n\n### 三级标题', toc: '', // 目录导航 html: '', // 渲染后的 HTML } }, mounted() { // 解析 Markdown 文档 const md = new MarkdownIt() md.use(MarkdownItToc, { tocFirstLevel: 1 }) const result = md.render(this.markdown) // 生成目录导航 this.toc = md.toc // 渲染 Markdown 内容 this.html = result }, } </script> ``` 在上面的代码中,我们使用了 `markdown-it-toc` 插件来自动生成目录导航,并将导航内容存储在 `toc` 变量中。然后,我们使用 `v-html` 指令将导航和 Markdown 文档内容渲染到页面上。 注意,`markdown-it-toc` 插件需要在解析 Markdown 文档之前使用 `md.use(MarkdownItToc)` 方法来注册。在注册时,我们可以设置 `tocFirstLevel` 属性来指定目录导航的起始层级,默认为 `1`。 最后,我们需要使用 CSS 样式来美化目录导航和 Markdown 内容,以便更好地展示给用户。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值