Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

通过Python脚本实现 给 Github 的 markdown文件(如 README.md)自动生成 目录TOC

License

Notifications You must be signed in to change notification settings

zhouie/github-md-toc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

6 Commits

Repository files navigation

ps: 在发现了 sublime 的插件 Markdown TOC 之后 , 世界都清晰起来了

看完上面这句话,其实可以忽略下面了 ...ORZ

github-md-toc

GitHub没有提供 [TOC] 类似的功能来为 Markdown 文件(如README.md)自动生成目录(TOC),这一点很遗憾; 这尤其在一些较长的 Markdown 文件中就显得更伤人了,因此造一些辅助工具必不可少。

查阅了很多资料,大致整理分享了一下,可以去下面的Reference查看,有兴趣的可以多看看

总结一下,基础的TOC生成并不难,但其中有很多小细节处理起来有些麻烦:

  • 标题中的特殊字符,如&#.(),甚至空格等的处理是不同的,举例来说,.当做 不存在 来处理(换言之,将其删去),&当做 不存在 来处理;
  • 标题中的所有大写字母应当全部转成小写字母处理。

Usage

支持 python 2.\*python 3.\*,所以python2python3之间的切换随你的意都行

python github-md-toc.py </path/to/your/file.md> [<tab_length>]

相信可以看懂上面几个选项的含义,如 [<tab_length>]指的是TAB键代表的空格数

直接点击run.bat 即可执行脚本,毕竟其中的内容同上面的shell指令是一致的,用文本编辑器打开就知道了

上面动图中用的都是python35(即python3),但若是出现下面这样的问题,建议尝试切回 python2 去试试,如果还是不行,欢迎在 issues 提问交流

$ python35 github-md-toc.py ./test_dir/EXAMPLE.md 2
Traceback (most recent call last):
 File "github-md-toc.py", line 11, in <module>
 lines = f.readlines()
UnicodeDecodeError: 'gbk' codec can't decode byte 0x89 in position 226: illegal multibyte sequence

Description

需要说明的是,目前还只是对大小写、.()空格以及# 正确处理了,所以呢,之后应该还会陆续更新(ps:但其实也没接着更新的必要了,因为一般情况下,我们写个标题都是纯中文或纯英文,哪怕有些特殊符号,也只是()空格之类的,还在可控范围之内)

毕竟我这里也只是为了自己在使用上的方便便捷,如果有想弄个完整便捷操作版的朋友,可以参看我保留收藏的 这几个脚本文件以及相对应的GitHub Repo

License

MIT license

Reference

About

通过Python脚本实现 给 Github 的 markdown文件(如 README.md)自动生成 目录TOC

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /