如何在GitHub wiki中创建某种内容表?

时间:2013-08-15 00:18:49

标签: github wiki

如果你看这里:http://en.wikipedia.org/wiki/Stack_Overflow

您会注意到有一些“内容”部分,如果您点击其中一个链接,它会将您发送到页面上的特定部分。

我如何在GitHub wiki中执行此操作?使用Markdown或他们使用的任何东西?

12 个答案:

答案 0 :(得分:68)

Markdown Cheatsheet的目录中很好地证明了这一点。

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

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

答案 1 :(得分:11)

一种可能的(半自动化)解决方案是Eugene Kalinin的github-markdown-toc。此工具主要通过您的README.md文件和snarfs #的标题来创建TOC。

  1. 下载脚本https://github.com/ekalinin/github-markdown-toc
  2. README.md提供给脚本(如Eugene&#39; s README.md中所述)

    cat README.md | bash github-markdown-toc

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

  4. 请注意,此bash实现仅适用于Linux(据我所知)。

    作为旁注,有一个golang implementation,可能更容易上班。

答案 2 :(得分:11)

您现在可以(2021 年 3 月)查看 GitHub Nat Friedman 的 CEO just announced

<块引用>

GitHub 现在会根据您的标题自动为您的 http://README.md 文件创建目录。

经过深思熟虑,我们将此作为查看器的功能,而不是编辑器的关注点:没有要插入的特殊 Markdown。

所以...它不会修改您的 Markdown(README.md 或其他 .md 文件)以插入或更新您的文本:它只提供一个菜单,允许快速访问基于在降价标题上。
这可能是,也可能不是,您所追求的。

toc in markdown README

答案 3 :(得分:10)

https://github.com/jonschlinkert/markdown-toc

  • git clone your-repo.wiki.git(在.wiki之前添加.git以克隆维基
  • npm i -g markdown-toc
  • 在wiki的markdown中插入<!-- toc -->(区分大小写)
  • markdown-toc -i my-wiki-markdown.md-i将对其进行编辑)
  • 利润

更新:我想也许https://github.com/thlorenz/doctoc现在更受欢迎。

答案 4 :(得分:8)

目前,not possible使用降价语法(.md)来做到这一点。正如README.md这样的渲染降价文件正在进行非官方的discussion about automatically generating table of contents TOC,其中列出了一些想法。

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

答案 5 :(得分:7)

Visual Studio代码

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

enter image description here

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

Original md After automatic TOC insertion

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

作为另一个提示,您可能希望通过使用关闭“保存时自动TOC更新”

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

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

答案 6 :(得分:4)

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

  
      
  • GitHub / wiki 上:将 Markdown 切换为MediaWiki。使用__TOC__语法。见sample
  •   
  • on GitHub / repo :将 Markdown 切换为AsciiDoc。使用:toc:语法。见demo
  •   

但是,使用 GitHub / repo 中的 Markdown 文件,您可以GitHub Pages上的Wikipedia获取该文件,如Kramdown

  

答案 7 :(得分:2)

您可以选择编辑模式“MediaWiki”,它将为标题生成toc,例如

== First ==

== Second ==

答案 8 :(得分:1)

由于github无法直接使用TOC,但是我们还有其他选择。

您可以通过在线工具

自动生成目录

Generate TOC Table of Contents from GitHub Markdown or Wiki Online

enter image description here

或通过本地工具

github-markdown-toc

答案 9 :(得分:0)

对我来说,最简单的解决方案(虽然我始终安装了node.js服务器,并且由于npm具有npx),所以可以执行npx markdown-toc。似乎它是此任务最受欢迎的解决方案之一:

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

输出:

enter image description here

答案 10 :(得分:0)

在 Perl 之上实现的另一个与 TOC 降价相关的工具(它始终与 Linux/Git-for-Windows 和 Cygwin 一起提供,并且不依赖于额外的包)

https://github.com/ildar-shaimordanov/git-markdown-toc

我想我的工具与其他人在上面提到的 ekalinin/git-markdown-toc 类似或几乎类似。我从未比较过 tham,因为他的工具是作为 Go-Lang 实现的,而我的系统中并不存在。我的脚本的主要目标是提供在本地创建 TOC 的良好解决方案——没有与任何外部主机等的任何连接,只读取本地文件(默认情况下为 README.md)并创建 TOC 并将其嵌入到文件。

答案 11 :(得分:0)

示例:

[Go to Delete](#delete_lines)

#delete_lines

code here, will be pointed here

见:https://guides.github.com/features/mastering-markdown/

并且,要制作嵌套轮廓:

* 1\. [Go to Delete](#delete_lines)
    * 1.1\. item
    * 1.2\. item
        * 1.2\. item
* 2\. item 

见:https://meta.stackexchange.com/questions/85474/how-to-write-nested-numbered-lists

有关更多信息和复杂链接:

https://stackoverflow.com/questions/6695439/how-to-link-to-a-named-anchor-in-multimarkdown#:~:text=In%20standard%20Markdown%2C%20place%20an,%5Blink%20text%5D(%23abcd)%20