github中的自动TOC

是否有可能使用Github Flavored Markdown生成自动目录表?


我创建了两个选项来生成github-flavored-markdown的toc:

DocToc命令行工具(源)需要node.js

安装:

npm install -g doctoc

用法:

doctoc . 将目录添加到当前和所有子目录中的所有降价文件。

DocToc WebApp

如果您想先在线试用它,请转到doctoc网站,粘贴降价页面的链接,它会生成一个可以插入到降价文件顶部的内容表格。

Github Wiki和锚点

正如Matthew Flaschen在下面的评论中指出的,对于其wiki页面,GitHub以前没有生成doctoc依赖的锚。

更新:但是,他们解决了这个问题。


GitHub页面(基本上是Jekyll的一个包装)似乎使用kramdown,它实现了Maruku的所有功能,因此通过toc属性支持自动生成的目录:

* auto-gen TOC:
{:toc}

第一行只是开始一个无序列表,实际上被扔掉了。

这会导致嵌套的无序列表集合使用文档中的标题。

注意:这应该适用于GitHub页面,而不是GitHub Flavored Markdown(GFM),如注释或维基页面中所用。 AFAIK一个解决方案不存在的。


它不是自动的,但它使用Notepad ++正则表达式:

首先全部替换(删除所有没有标题的行)

^##(#?)(#?)(.*?)$(.|r|n)*?(?=^##|z)
-12 [3](#3)n

然后(将标题III转换为空格)

-##
        -

然后(将标题II转换为空格)

-#
    -

然后(在链接标题的开始和结尾处删除未使用的字符)

[ *((?:(?![ .:#!?;]*])[^#])*)[ #:!?;]*]
[1]

然后(将最后的令牌转换为小写字母而不是空格)

]([^ rn]*) ([^rn ]*)
]L1-2

删除未使用的最终磅数和最初的破折号:

(?:()[-:;!?#]+$|(]#)-)
12

删除链接中无用的字符:

(].*?)(?:(|))
1

最后在最终的链接上添加括号:

](?!()(.*?)$
](1)

瞧! 如果重复足够的时间,您甚至可以将其放入全局宏。

链接地址: http://www.djcxy.com/p/20235.html

上一篇: Automatic TOC in github

下一篇: What does %~dp0 mean, and how does it work?