拓冰建站拓冰建站
首页 / 资讯中心 / 正文

如何为不同平台生成正确锚点?vim-markdown-toc 详解 GFM/GitLab/Redcarpet/Marked 四种目录风格

如何为不同平台生成正确锚点vim-markdown-toc 详解 GFM/GitLab/Redcarpet/Marked 四种目录风格【免费下载链接】vim-markdown-tocA vim 7.4 plugin to generate table of contents for Markdown files.项目地址: https://gitcode.com/gh_mirrors/vi/vim-markdown-tocvim-markdown-toc 是一款面向 Vim 7.4 的Markdown 目录TOC自动生成插件把光标放到想插入目录的位置输入一条命令它就能收集标题、按目标平台的锚点规则生成可点击的目录链接并在保存文件时自动更新——从此告别目录点不动的尴尬。为什么同一份目录换平台就失效Markdown 目录的本质是一堆[标题](#锚点)形式的链接而锚点由谁渲染就按谁的规则计算。同一个标题在不同平台可能生成完全不同的锚点在 GitHub 上是#hello-world在 GitLab 上连续空格会被压缩在 JekyllRedcarpet里标点符号和 HTML 转义又有另一套逻辑锚点对不上点击目录就会原地不动或跳到错误位置。vim-markdown-toc 的核心价值就是你只需声明目标平台锚点计算它全部代劳。四种目录风格怎么选一张表看懂风格适用场景生成命令GFMGitHub 仓库 README、GitBook:GenTocGFMGitLabGitLab 仓库与 Wiki:GenTocGitLabRedcarpetJekyll 等使用 Redcarpet 解析器的站点:GenTocRedcarpetMarkedmarkdown-preview.vim 预览场景:GenTocMarked 将光标放在要插入目录的行执行对应命令即可。默认只收集光标之后的标题如需包含光标之前的标题可设置选项g:vmt_include_headings_before。GFM 锚点规则最常见的一套GFMGitHub Flavored Markdown规则是大多数人最需要的标题全部转小写去除特殊符号但保留中日韩文字、西里尔字母、阿拉伯字母及带重音的拉丁字母空格替换为-每个空格一个同名标题自动追加-1、-2模拟 GitHub 的去重行为用真实用例感受一下取自 test/GFM.md标题生成的 GFM 锚点## chapter two#chapter-------two## 第三章#第三章中文保留感叹号被移除两个## Same Level Same Name#same-level-same-name和#same-level-same-name-1GitLab 风格与 GFM 的三个小差别GitLab 解析器的规则与 GFM 很像但注意这三点连续空格压缩为单个-## Hello Markdown→hello-markdown下划线保留但首尾的下划线会被去掉_Hello_World_→hello_world平假名、片假名和谚文不被保留Redcarpet 风格Jekyll 用户的专属Redcarpet 规则先做HTML 实体转义、、再把一长串标点统一替换成-最后压缩多余连字符并去掉首尾连字符### (Hello()World)→hello-world# 你好世界→amp-你好-amp-世界-amp 与 GFM 不同Redcarpet 规则不会给重名标题追加序号因此 Jekyll 站点中尽量让标题保持唯一。Marked 风格最宽容的一条路Marked 规则最简单粗暴只把连续空格换成-其余原样保留仅整体小写## Hello World→hello-world反引号都保留## 你好→你好甚至标题里的完整链接语法text也会被原样带进锚点它专为 markdown-preview.vim 的预览锚点行为设计其他平台请勿误用。围栏机制保存时自动更新目录的秘密执行:GenTocGFM后目录会被一对围栏注释包住!-- vim-markdown-toc GFM --…!-- vim-markdown-toc --围栏里记录了所用风格。之后每次保存插件自动找到围栏、按原风格重新生成目录标题怎么改都不会坏。相关技巧:UpdateToc手动刷新:RemoveToc删除目录:TocGoto在目录行上直接跳到对应标题围栏里不写风格时用g:vmt_fence_hidden_markdown_style指定默认值不想要围栏设置g:vmt_dont_insert_fence 1代价是失去保存时自动更新常见问题解答❓中文标题安全吗安全。GFM 与 GitLab 规则均保留 CJK 字符## 第三章会生成#第三章这样的锚点。❓只想生成纯文字目录、不要链接设置g:vmt_link 0输出只有缩进的标题列表。❓能控制收录的标题级别吗能。g:vmt_min_level默认 1和g:vmt_max_level默认 6可以只收录二到三级标题等区间。❓命令没反应运行:set ft确认文件类型是markdown插件只在这类后缀.md、.markdown、.mkd等下工作。相关文件导航插件全部逻辑仅一个文件ftplugin/markdown.vimGFM 锚点全量用例test/GFM.mdMarked 锚点全量用例test/Marked.md四种风格的锚点单元测试test/test.vim完整文档与安装说明README.md小结先判断文档最终在哪个平台渲染GitHub / GitLab / Jekyll / 本地预览再选对应的:GenTocXXX命令配合围栏自动更新就能为任何 Markdown 文件生成一份点击必中的目录。【免费下载链接】vim-markdown-tocA vim 7.4 plugin to generate table of contents for Markdown files.项目地址: https://gitcode.com/gh_mirrors/vi/vim-markdown-toc创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门