如何在GitHub Wiki中创建某种目录?


Answers:


111

Markdown备忘单的目录很好地展示了它。

##### Table of Contents  
[Headers](#headers)  
[Emphasis](#emphasis)  
...snip...    
<a name="headers"/>
## Headers

如果将鼠标悬停在GitHub Markdown文件中的Header上,则会在其左侧看到一个简单的小链接,您也可以使用该链接。该链接的格式为<project URL#<header name>。在<header name>必须全部小写。


36
当然有像MediaWiki的_ _ TOC _ _一样自动生成它的方法吗?
LB-- 2014年

17
@ LB--:如果您编辑GitHub Wiki页面并将“编辑样式”下拉列表更改为“ MediaWiki”,则可以直接使用MediaWiki __TOC__。显然,潜在的自动生成逻辑在那里。但是该功能似乎并未以其Markdown编辑风格公开。十分不幸。让我们所有人开始发送功能请求,也许他们会打开它。
Andrew Janke 2015年

3
我对那里的“潜在的自动生成逻辑” rec之以鼻。看起来不同的“编辑样式”通过不同的渲染器。不过,将其包含在MD版本中还是很不错的,因为它非常流行,而且添加起来也不难。
Andrew Janke

5
@AndrewJanke我研究了更多内容,似乎MarkDown格式不支持自动生成目录,他们为此感到自豪。
LB-- 2015年

6
创建链接有一个陷阱。他们必须是小写的。我不知道这些,并且想知道为什么我的TOC无法正常工作。我用#Headers代替#headers。我认为这是您输入中的错字。也许您可以在此信息中添加答案。
t3chb0t 2015年

20

Eugene Kalinin's是一种可能的(半自动)解决方案github-markdown-toc。该工具实质上是处理您的README.md文件,然后将其#标题弄乱以创建TOC。

  1. 下载脚本https://github.com/ekalinin/github-markdown-toc
  2. 将您README.md的脚本供稿(如Eugene所述README.md

    猫README.md | bash github-markdown-toc

  3. 剪切并粘贴生成的目录,并将其放置在README.md文件顶部

请注意,此bash实现仅在Linux上有效(据我所知)。

附带说明一下,有一个golang 实现,可能更麻烦上班了。




12

目前,无法使用markdown语法(.md)进行此操作。目前正在进行有关在渲染的markdown文件上自动生成目录TOC的非正式讨论,README.md其中列出了一些想法。

但是,还有一些其他解决方法,例如:


1
是的,在很大程度上,我已转换为asciidoc,用于ToC并链接至标头。厌倦了等待Markdown赶上来。
西罗Santilli郝海东冠状病六四事件法轮功

8

如果您无法坚持使用Markdown,则可以执行以下操作:

  • GitHub / wiki上:将Markdown切换到MediaWiki。使用__TOC__语法。参见示例
  • GitHub / repo上:将Markdown切换为AsciiDoc。使用:toc:语法。参见演示

但是,使用GitHub / repo中的Markdown文件,您可以像Wikipedia一样在GitHub Pages上获取它

  • 化身被激活时,它产生的GitHub页使用Kramdown默认
  • Kramdown附带了Table Of Content。使用{:toc}语法。请参阅说明

5

Visual Studio程式码

如果您碰巧使用了Visual Studio Code,则有一个名为Markdown All in One的易于使用的扩展名,可以立即将任何.md文件的目录设为TOC。

在此处输入图片说明

只需打开命令面板(Ctrl-Shift-P)->Markdown: Create Table of Contents

原始md 自动插入目录后

自动更新会弄乱您编辑的目录吗?

另外,您可能希望通过使用关闭“保存时自动TOC更新”

  "markdown.extension.toc.updateOnSave": false,

在Visual Studio设置中(命令面板->首选项:打开设置(JSON))。



2

由于github有它自己的方式,可以在处理Markdown之后在html版本的h1,h2,h3等标题中生成id =“ ..”属性。 id =“ slug”),不要重新发明轮子并使用对流程进行反向工程的库很方便。

我为该任务找到了一个很好的库,称为markdown-toc

对我来说,这似乎是最好的解决方案,因为我一直在计算机上安装节点。

只需执行npx markdown-toc -i file.md即可

看来,它是用于此任务的更流行的工具之一-至少在node.js生态系统中。

ls
cat <<EOF >> test.md | tee 
## Table of Contents

<!-- toc -->
- old toc 1
- old toc 2
- old toc 3
<!-- tocstop -->

## abc
This is a b c.

## xyz
This is x y z.
EOF
ls
cat test.md
npx markdown-toc -i test.md
cat test.md

输出:

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.