我如何在GitHub wiki中做到这一点?使用Markdown或任何其他可用的方式?
在Markdown速查表的目录中很好地展示了这一点。
##### Table of Contents
[Headers](#headers)
[Emphasis](#emphasis)
...snip...
<a name="headers"/>
## Headers
如果你将鼠标悬停在 GitHub Markdown 文件中的标题上,你会看到它左边有一个小样本链接,你也可以使用该链接。该链接的格式为 <project URL#<header name>
。其中的 <header name>
必须全部小写。
__TOC__
。明显的自动生成逻辑已经存在。但是这个功能似乎在他们的 Markdown 编辑风格中没有暴露出来。非常遗憾。让我们开始提交功能请求,也许他们会开启它。 - Andrew Janke#Headers
而不是 #headers
。我以为这是你答案中的笔误。也许你可以在你的回答中加入这个信息。 - t3chb0t如果您使用 Visual Studio Code,有一个名为 Markdown All in One 的易于使用的扩展程序可以在瞬间为任何 .md 文件创建目录。
只需打开命令面板 (Ctrl-Shift-P
) -> Markdown: Create Table of Contents
作为额外提示,您可能希望通过使用以下方法将“保存时自动更新目录”设置为OFF
"markdown.extension.toc.updateOnSave": false,
在您的 Visual Studio 设置中(Command Palette -> Preferences: Open Settings (JSON))。
由于github无法直接使用TOC
,但我们有其他替代方案。
你可以通过在线工具自动生成TOC:
或者通过本地工具实现:
2021年8月更新:
在README中的ToC之后(请参见下面的2021年3月),您现在有:
Wikis的目录
对于Wikis,我们现在根据Markdown标题自动生成目录。
如此处所示:
你使用Wiki吗?
我们刚刚将侧边栏添加了一个自动目录以帮助导航
现在(2021年3月)您可以查看GitHub CEO Nat Friedman 刚刚宣布的消息
GitHub现在会根据标头自动为您的http://README.md文件创建目录。
经过深思熟虑,我们将其作为查看器的功能而不是编辑器的问题:没有特殊的markdown要插入。
因此...它不会修改您的Markdown(README.md
或其他.md
文件)以插入或更新您的文本:它仅提供了一个菜单,允许快速访问基于markdown标题的文本部分。
提供一种(半自动化)解决方案是Eugene Kalinin的github-markdown-toc
。该工具基本上通过您的README.md
文件,并筛选出#
标题,以创建目录。
将您的README.md
文件提供给脚本(如Eugene的README.md
中所述)
cat README.md | bash github-markdown-toc
剪切并粘贴生成的目录,并将其放置在README.md
文件的顶部
请注意,此bash
实现仅适用于Linux(据我所知)。
另外,还有一个Go语言的实现,可能更麻烦。
https://github.com/jonschlinkert/markdown-toc
git clone your-repo.wiki.git
(将 .wiki
添加到 .git
之前克隆Wiki)npm i -g markdown-toc
(全局安装markdown-toc)<!-- toc -->
(大小写敏感)markdown-toc -i my-wiki-markdown.md
(-i
在原地进行编辑)更新:我认为https://github.com/thlorenz/doctoc现在更受欢迎。
目前使用Markdown语法(.md
)不可能做到这一点。有人正在非官方地讨论在呈现的Markdown文件中自动生成目录TOC,例如README.md
,其中列出了一些想法。
但是还有一些其他解决方法,例如:
Use AsciiDoc
instead as per suggestion from this comment. For example:
:toc: macro
:toc-title:
:toclevels: 99
# Title
toc::[]
## A
### A2
## B
### B2
Check the example at littlebits/react-popover
(README.adoc
).
Online Table Of Content Generator (raychenon/play-table-of-contents)
== First ==
== Second ==
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
输出:
README.md
的目录。请参见我的答案。 - VonC