是否有可能生成一个自动目录使用Github调味Markdown?


当前回答

对于Github的Texteditor Atom,请查看这个很棒的插件(或Atom术语中的“包”),它可以从解析的markdown文件生成“标题的TOC(目录)”文件:

降价目录

一旦安装为Atom-package,您可以使用快捷键ctrl-alt-c在当前光标位置插入基于markdown-doc-structure的TOC…

截图:

原子Keybindings

markdown-toc为您提供以下默认键绑定来控制Atom中的插件:

ctrl-alt-c =>在光标位置创建TOC ctrl-alt-u =>更新TOC ctrl-alt-r =>删除TOC

插件特性(来自项目的README)

通过锚标记自动链接,例如# A 1→# A -1 深度控制[1-6]使用depthFrom:1和depthTo:6 使用withLinks使能或禁用链接 使用updateOnSave保存时刷新列表 使用有序列表(1. ..., 2. ...) orderedList:0

其他回答

对于Github的Texteditor Atom,请查看这个很棒的插件(或Atom术语中的“包”),它可以从解析的markdown文件生成“标题的TOC(目录)”文件:

降价目录

一旦安装为Atom-package,您可以使用快捷键ctrl-alt-c在当前光标位置插入基于markdown-doc-structure的TOC…

截图:

原子Keybindings

markdown-toc为您提供以下默认键绑定来控制Atom中的插件:

ctrl-alt-c =>在光标位置创建TOC ctrl-alt-u =>更新TOC ctrl-alt-r =>删除TOC

插件特性(来自项目的README)

通过锚标记自动链接,例如# A 1→# A -1 深度控制[1-6]使用depthFrom:1和depthTo:6 使用withLinks使能或禁用链接 使用updateOnSave保存时刷新列表 使用有序列表(1. ..., 2. ...) orderedList:0

目前还不可能使用markdown语法(参见GitHub上正在进行的讨论),但是你可以使用一些外部工具,例如:

在线内容表生成器(raychenon/play-table-of-contents) arthurhammer/ GitHub -toc -浏览器扩展,添加一个目录到GitHub回购表


或者使用AsciiDoc代替(例如README.adoc)。

:toc: macro
:toc-title:
:toclevels: 99
# Title

## A

### A2

## B

### B2

正如这条评论所建议的。点击这里查看演示。

现在有一个GitHub行动完成这一点:

https://github.com/marketplace/actions/toc-generator

指定TOC的位置(选项) 例如README.md

<!-- START doctoc -->
<!-- END doctoc -->

设置工作流程 例如.github /工作流/ toc.yml

on: push
name: TOC Generator
jobs:
  generateTOC:
    name: TOC Generator
    runs-on: ubuntu-latest
    steps:
      - uses: technote-space/toc-generator@v2

下面是我今天为此编写的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/^#//'

如果有人知道更好的方法来做这些最终的#替换,请添加评论。我尝试了各种各样的方法,但都不满意,所以我就硬着硬着。

我的同事@schmiedc和我已经创建了一个GreaseMonkey脚本,它在h1按钮的左侧安装了一个新的TOC按钮,它使用优秀的markdown-js库来添加/刷新目录。

与doctoc等解决方案相比,它的优势在于集成到GitHub的wiki编辑器中,不需要用户使用命令行(并要求用户安装node.js等工具)。在Chrome中,它通过拖拽到扩展页面来工作,在Firefox中,你需要安装GreaseMonkey扩展。

它将与普通markdown工作(即它不能正确处理代码块,因为这是一个GitHub扩展markdown)。贡献的欢迎。