是否有可能生成一个自动目录使用Github调味Markdown?


当前回答

如果你用Vim编辑Markdown文件,你可以试试这个插件Vim - Markdown -toc。

使用方法很简单,只需将光标移动到您想要追加目录表的位置并运行:GenTocGFM,完成!

截图:

特点:

为Markdown文件生成toc。(支持GitHub调味Markdown和Redcarpet) 更新现有的toc。 保存时自动更新toc。

其他回答

使用coryfklein/doctoc, thlorenz/doctoc的一个分支,它不会在每个目录中添加“由doctoc生成”。

npm install -g coryfklein/doctoc

下面是我今天为此编写的shell脚本。可能需要根据你的需要进行调整,但这应该是一个很好的起点。

cat README.md \
    | sed -e '/```/ r pf' -e '/```/,/```/d' \
    | grep "^#" \
    | tail -n +2 \
    | tr -d '`' \
    | sed 's/# \([a-zA-Z0-9`. -]\+\)/- [\1](#\L\1)/' \
    | awk -F'(' '{for(i=2;i<=NF;i++)if(i==2)gsub(" ","-",$i);}1' OFS='(' \
    | sed 's/^####/      /' \
    | sed 's/^###/    /' \
    | sed 's/^##/  /' \
    | sed 's/^#//'

如果有人知道更好的方法来做这些最终的#替换,请添加评论。我尝试了各种各样的方法,但都不满意,所以我就硬着硬着。

Gitdown是Github的markdown预处理器。

使用Gitdown你可以:

生成目录 查找失效的url和片段标识符 包括变量 包含文件 获取文件大小 生成徽章 打印日期 打印关于存储库本身的信息

giitdown简化了与维护GitHub存储库文档页面相关的常见任务。

使用它很简单:

var Gitdown = require('gitdown');

Gitdown
    // Gitdown flavored markdown.
    .read('.gitdown/README.md')
    // GitHub compatible markdown.
    .write('README.md');

您可以将其作为一个单独的脚本,也可以将其作为构建脚本例程的一部分(例如Gulp)。

如果你用Vim编辑Markdown文件,你可以试试这个插件Vim - Markdown -toc。

使用方法很简单,只需将光标移动到您想要追加目录表的位置并运行:GenTocGFM,完成!

截图:

特点:

为Markdown文件生成toc。(支持GitHub调味Markdown和Redcarpet) 更新现有的toc。 保存时自动更新toc。

GitHub Pages(基本上是Jekyll的包装器)似乎使用了kramdown,它实现了所有Maruku,因此通过atoc属性支持自动生成的目录:

* auto-gen TOC:
{:toc}

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

这将使用文档中的头文件生成一组嵌套的无序列表。

注意:这应该适用于GitHub页面,而不是评论或wiki页面中使用的GitHub调味Markdown (GFM)。我想这个问题没有解决办法。