我想知道是否有一个命令行实用程序可以将GitHub风味Markdown文件并将其呈现为HTML。

我正在使用GitHub维基创建网站内容。我已经在服务器上克隆了存储库,然后想把它处理成常规HTML。对我来说,重要的是,在GitHub上出现的内容正是我的网站应该如何寻找的。我也非常喜欢使用带~~~的围栏块,所以我宁愿不使用标准Markdown语法。

我已经看了一下JavaScript的实时预览,我想我可以把它挂钩到Node.js,但他们说它已经被弃用了。我已经查看了红地毯存储库,但它看起来不像有命令行界面。

我选择了自己的解决方案,但是,由于这里没有一个解决方案明显比其他解决方案更好,所以我将不选择答案。


当前回答

GitHub有一个Markdown API,你可以使用。

其他回答

一种“快速和肮脏”的方法是使用wget实用程序下载wiki HTML页面,而不是克隆它。例如,这是我从GitHub下载Hystrix wiki的方式(我使用的是Ubuntu Linux):

 $ wget -e robots=off -nH -E -H -k -K -p https://github.com/Netflix/Hystrix/wiki
 $ wget -e robots=off -nH -E -H -k -K -I "Netflix/Hystrix/wiki" -r -l 1 https://github.com/Netflix/Hystrix/wiki

第一个调用将下载wiki条目页面及其所有依赖项。第二个将调用它的所有子页面。您现在可以通过打开Netflix/Hystrix/wiki.1.html浏览维基。

注意,对wget的两次调用都是必需的。如果您只运行第二个,那么您将错过正确显示页面所需的一些依赖项。

pip3 install --user markdown
python3 -m markdown readme.md > readme.html

它不能处理GitHub扩展,但总比没有强。我相信您可以扩展模块来处理GitHub的添加。

使用标记。它支持GitHub调味Markdown,可以作为Node.js模块和从命令行使用。

一个例子是:

$ marked -o hello.html
hello world
^D
$ cat hello.html
<p>hello world</p>

改进@barry- state的解决方案。将这段代码插入~/.bashrc中

function mdviewer(){
  pandoc $* | lynx -stdin
}

然后,我们可以从命令行快速查看该文件。也可以很好地工作在SSH/Telnet会话。

mdviewer README.md

在这条评论的基础上,我写了一个一行程序,使用curl和jq来访问Github Markdown API。

将这个bash函数粘贴到命令行或到~/.bash_profile中:

mdsee(){ 
    HTMLFILE="$(mktemp -u).html"
    cat "$1" | \
      jq --slurp --raw-input '{"text": "\(.)", "mode": "markdown"}' | \
      curl -s --data @- https://api.github.com/markdown > "$HTMLFILE"
    echo $HTMLFILE
    open "$HTMLFILE"
}

然后查看呈现的HTML在浏览器中运行:

mdsee readme.md

如果你需要一个纯终端解决方案,用lynx“$HTMLFILE”替换打开的“$HTMLFILE”。