为 Markdown 文档生成 Table of Contents 的 Vim 插件

2016-09-16 09:16:27 +08:00
 mzlogin

使用 Vim 编辑一个较长的 Markdown 文档时,如果想要手动维护 Table of Contents 是一件痛苦的事情,而且不同的 Markdown 解析引擎给标题生成的锚点链接并不一样,使用一款插件来替我们做这件事情会更方便。

插件 GitHub 链接:https://github.com/mzlogin/vim-markdown-toc

开发这个插件的时候感受倒是没有多深刻,近期维护我的一个开源文档项目 awesome-adb(文档长度近 2000 行,各级标题超过 80 个)时才实实在在地体会到这样一个功能对使用 Vim 编辑 Markdown 文档的用户还是挺实用的,节省了很多时间。

插件效果截图:

有此需求的童鞋可以 Star 收藏和试用起来,欢迎反馈和建议。

3759 次点击
所在节点    Vim
25 条回复
mzlogin
2016-09-21 23:43:37 +08:00
@sfwn 请问是用于哪里的 Markdown 文档呢?目前支持 GFM 和 Redcarpet 两种解析引擎,如果您说的是属于这两种的,可以提供一个生成的锚点链接不对的标题吗?我看看能不能修复。
sfwn
2016-09-22 10:03:00 +08:00
@mzlogin
Base64: aHR0cHM6Ly9naXRodWIuY29tL3Nmd24vYm9vdC1rb3RsaW4vYmxvYi9tYXN0ZXIvUkVBRE1FLm1k
这个网址里面是正常的
Base64: aHR0cHM6Ly9naXRodWIuY29tL3Nmd24vcHJhY3RpY2UvYmxvYi9tYXN0ZXIvUkVBRE1FLm1k
第二个网址里 因为我的标题里有特殊字符 '`',导致就无法跳转了,还有我的每个标题后面都加了两个空格,忘了是什么风格了,楼主你看下是不是有影响,要不要考虑自动去掉末尾的空格
mzlogin
2016-09-22 11:23:48 +08:00
@sfwn

第二个网址里是因为标题末尾的空格的原因,'`' 符号插件里是处理过的。有的 Markdown 解析引擎会要求换行使用空行或者在行尾加两个空格,但标题一般是没有要求的,不过行尾的空格我的插件里兼容处理一下会更好,我稍后更新一下。

感谢反馈哈!
mzlogin
2016-09-22 12:55:31 +08:00
@sfwn

我已经修复了标题末尾空格的问题,现在插件应该可以兼容你的第二个网址的文档里的情况了,你更新插件一下试试~

如果你乐意,麻烦反馈一下结论,多谢啦!
sfwn
2016-09-22 14:57:39 +08:00
@mzlogin
更新了你的插件,然后重新生成了一下,确实可以啦~ bingo

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/306546

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX