是否可以使用Github Flavored Markdown生成自动目录?
Tho*_*enz 140
我创建了两个选项来为github-flavored-markdown生成一个toc:
npm install -g doctoc
doctoc .
将目录添加到当前和所有子目录中的所有markdown文件.
如果您想先在线试用,请转到doctoc网站,粘贴降价页面的链接,它会生成一个内容表,您可以在降价文件的顶部插入.
正如Matthew Flaschen在下面的评论中指出的那样,对于其维基页面,GitHub以前没有生成doctoc
依赖的锚点.
更新:但是,他们解决了这个问题.
Reb*_*ott 23
GitHub Pages(基本上是Jekyll的包装器)似乎使用kramdown,它实现了Maruku的所有功能,因此通过属性支持自动生成的目录toc
:
* auto-gen TOC:
{:toc}
Run Code Online (Sandbox Code Playgroud)
第一行只是开始一个无序列表,实际上被扔掉了.
这会导致使用文档中的标题嵌套的无序列表集.
注意:这应该适用于GitHub页面,而不是评论或维基页面中使用的GitHub Flavored Markdown(GFM).AFAIK不存在解决方案.
它不是自动的,但它使用Notepad ++正则表达式:
首先替换所有第二个(删除所有没有标题的行)
^##(#?)(#?)(.*?)$(.|\r|\n)*?(?=^##|\z)
-\1\2 [\3](#\3)\n
Run Code Online (Sandbox Code Playgroud)
然后(将标题III转换为空格)
-##
-
Run Code Online (Sandbox Code Playgroud)
然后(将标题II转换为空格)
-#
-
Run Code Online (Sandbox Code Playgroud)
然后(删除链接标题开头和结尾的未使用的字符)
\[ *((?:(?![ .:#!\?;]*\])[^#])*)[ #:!\?;]*\]
[\1]
Run Code Online (Sandbox Code Playgroud)
然后(转换最后一个tokens小写和破折号而不是空格)
\]([^ \r\n]*) ([^\r\n ]*)
]\L\1-\2
Run Code Online (Sandbox Code Playgroud)
删除未使用的最终磅数和初始破折号:
(?:()[-:;!\?#]+$|(\]#)-)
\1\2
Run Code Online (Sandbox Code Playgroud)
删除链接中无用的字符:
(\].*?)(?:\(|\))
\1
Run Code Online (Sandbox Code Playgroud)
最后在最终链接周围添加括号:
\](?!\()(.*?)$
\]\(\1\)
Run Code Online (Sandbox Code Playgroud)
瞧!如果你重复足够的时间,你甚至可以将它放在一个全局宏中.
如果使用Vim编辑Markdown文件,可以尝试使用此插件vim-markdown-toc.
用法很简单,只需将光标移动到要附加目录的位置并运行:GenTocGFM
,完成!
截图:
特征:
为Markdown文件生成toc.(支持GitHub Flavored Markdown和Redcarpet)
更新现有的toc.
保存时自动更新toc.
Github Flavored Markdown使用RedCarpet作为他们的Markdown引擎.来自RedCarpet回购:
:with_toc_data - 将HTML锚点添加到输出HTML中的每个标头,以允许链接到每个部分.
看起来你需要在渲染器级别设置这个标志,这在Github上是不可能的.但是,对Github Pages 的最新更新,似乎为标题打开了自动锚定,创建了可链接的标题.不完全是你想要的,但它可能会帮助你更轻松地为你的文档创建一个TOC(尽管是手动).
使用 Visual Studio Code 时获得 mardown 文件目录的一种非常方便的方法是扩展Markdown-TOC。
它可以将目录添加到现有的 Markdown 文件中,甚至可以在保存时使目录保持最新。
归档时间: |
|
查看次数: |
57136 次 |
最近记录: |