是否有可能生成一个自动目录使用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
我的同事@schmiedc和我已经创建了一个GreaseMonkey脚本,它在h1按钮的左侧安装了一个新的TOC按钮,它使用优秀的markdown-js库来添加/刷新目录。
与doctoc等解决方案相比,它的优势在于集成到GitHub的wiki编辑器中,不需要用户使用命令行(并要求用户安装node.js等工具)。在Chrome中,它通过拖拽到扩展页面来工作,在Firefox中,你需要安装GreaseMonkey扩展。
它将与普通markdown工作(即它不能正确处理代码块,因为这是一个GitHub扩展markdown)。贡献的欢迎。
下面是我今天为此编写的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/^#//'
如果有人知道更好的方法来做这些最终的#替换,请添加评论。我尝试了各种各样的方法,但都不满意,所以我就硬着硬着。
我创建了两个选项来生成一个toc的github风味markdown:
DocToc命令行工具(源代码)需要node.js
Installation:NPM install -g doctoc
Usage:doctoc。向当前目录和所有子目录中的所有markdown文件添加目录。
DocToc WebApp
如果你想先在网上试试,去doctoc网站, 粘贴标记页面的链接,它将生成一个表 可以插入标记文件顶部的内容。
Github维基和锚
正如Matthew Flaschen在下面的评论中指出的那样,对于其维基页面,GitHub之前并没有生成doctoc所依赖的锚。
更新:但是,他们修复了这个问题。
在使用Visual Studio Code时,实现mardown文件目录的一个非常方便的方法是扩展名Markdown-TOC。
它可以向现有的markdown文件添加toc,甚至在保存时保持toc的最新状态。
推荐文章
- 在Markdown Jekyll中使用图像说明
- 如何修改GitHub拉请求?
- 如何在Github和本地删除最后n次提交?
- 如何将文件附加到GitHub问题?
- Slack Markdown链接没有解决
- 如何添加谷歌分析跟踪ID到GitHub页面
- 差异语法突出显示在Github Markdown
- 我如何创建一个文本框的笔记在markdown?
- /dist目录在开源项目中的意义是什么?
- 我如何从现有回购的分支创建一个新的GitHub回购?
- 在git中压缩提交是什么意思?
- 如何在GitHub上找到存储库项目的创建日期?
- 如何设置一个git项目使用外部回购子模块?
- 在Markdown中创建一个没有标题的表
- 强制LF eol在git的回购和工作副本