是否有可能生成一个自动目录使用Github调味Markdown?
当前回答
使用coryfklein/doctoc, thlorenz/doctoc的一个分支,它不会在每个目录中添加“由doctoc生成”。
npm install -g coryfklein/doctoc
其他回答
GitHub Pages(基本上是Jekyll的包装器)似乎使用了kramdown,它实现了所有Maruku,因此通过atoc属性支持自动生成的目录:
* auto-gen TOC:
{:toc}
第一行只是开始一个无序列表,实际上被丢弃了。
这将使用文档中的头文件生成一组嵌套的无序列表。
注意:这应该适用于GitHub页面,而不是评论或wiki页面中使用的GitHub调味Markdown (GFM)。我想这个问题没有解决办法。
使用coryfklein/doctoc, thlorenz/doctoc的一个分支,它不会在每个目录中添加“由doctoc生成”。
npm install -g coryfklein/doctoc
这并不是对这个问题的直接回答,因为很多人都提供了变通方法。我认为到目前为止,Github还没有正式支持生成TOC。如果你想让GitHub在他们的GFM预览页面上自动呈现一个目录,请参加关于官方功能请求问题的讨论。
可以从README中使用http://documentup.com/自动生成一个网页。md文件。它不是创建TOC,但对于许多人来说,它可能解决了想要创建TOC的原因。
Documentup的另一个替代方案是Flatdoc: http://ricostacruz.com/flatdoc/
下面是我今天为此编写的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/^#//'
如果有人知道更好的方法来做这些最终的#替换,请添加评论。我尝试了各种各样的方法,但都不满意,所以我就硬着硬着。
推荐文章
- 防止在GitHub上推送到master ?
- 我如何在github上引用特定问题的评论?
- 我如何才能看到我在Github上看到的所有问题?
- R -降价避免包装加载消息
- 在GitHub上链接到其他Wiki页面?
- 你如何跟踪你对GitHub问题的评论?
- 我如何在GitHub中为其他人的代码做出贡献?
- GitHub项目和里程碑之间的区别/关系是什么?
- gitignore是什么?
- 在MarkDown中包含SVG(托管在GitHub上)
- 新Github项目发布通知?
- 如何在本地删除分支?
- GitHub.com的存储库大小限制
- 使用Git管理变更日志的一些好方法是什么?
- Github权限被拒绝:ssh添加代理没有身份