zoukankan      html  css  js  c++  java
  • 如何生成 markdown 文档的内容索引

    目前很多文档都是用 markdown 格式编写,并且以代码的形式托管在 GitLab 上,
    同时,使用 gh-md-toc
    来生成文档目录。

    但是,gh-md-toc 会直接将结果打印到 stout,而我们想要直接将其添加到文档头部,
    而不是从 stdout 再复制粘贴,然后还要格式化空行。

    显然,我们需要将这段文字添加到文件的头部,并且删除第一行空行,在最后一行添加一行空行
    这样肯定不便捷,对不?

    先看一条命令:

    $ gh-md-toc file.md | (tail -n +2 && echo "" && cat file.md) | sponge file.md

    你会惊讶的发现,这条命令就完成了所有事,为 file.md 生成了 table of
    contents,并且自动添加在了 file.md 的头部,并且完美的处理了空行。

    这里使用了一个好工具 sponge,(centos7 可以通过 sudo yum install moreutils -y 下载安装)想想为什么不能直接重定向到 file.md 呢?

    但是,追求极致的程序员不会止步,因为上面的命令中 file.md 这个待处理的文件出现了
    3 次,所以也挺烦人的,对吧,即使使用命令替换也来得不如一次直接。

    即:添加一个函数,重定义 gh-md-toc,添加下面的函数定义到你的 shell rc,例如:

    • bash,~/.bashrc
    • zsh,~/.zshrc
    function gh-md-toc() {
      if [ -z "$1" ]; then
          echo "gh-md-toc <markdown file>"
          return 1
      fi
      /home/xxx/Github/github-markdown-toc/gh-md-toc $1 | (tail -n +2 && echo "" && cat $1) | sponge $1
    }

    将上面的 /home/xxx/Github/github-markdown-toc/gh-md-toc 替换成 gh-md-doc
    在你的系统上的路径。

    注意:如果你把 gh-md-doc 放在了 $PATH 中,必须用绝对路径调用,否则就无限递归了 :-)

    最后,source shell rc 配置文件,生效

    $ source ~/.bashrc
    OR
    $ source ~/.zshrc

    现在,要为某个 markdown 文件添加 table of contents 只需要执行:

    $ gh-md-toc file.md

    接下来看个例子:

    这里写图片描述

    具体可见:DC/OS 安装部署

  • 相关阅读:
    ps-- 制作磨砂背景
    ps -- 证件照
    抠图--薄,透
    60后发送短信的方法
    小项目 -- 验证码.js
    小项目
    小项目 -- phone.js
    基于GDAL提取地物,并生成png,最后加载到网页上(二)
    根据范围获取影像瓦片,并生成GeoTIFF 文件《一》
    Ubuntu 10.4 +NVIDIA GTX 1070 显卡驱动更新
  • 原文地址:https://www.cnblogs.com/qianggezhishen/p/7349327.html
Copyright © 2011-2022 走看看