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

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

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

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


当前回答

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

其他回答

可能不是你想要的,但既然你提到了Node.js:我找不到一个好工具在提交到GitHub之前在我的本地驱动器上预览GitHub调味Markdown文档,所以今天我创建了一个基于Node.js的文档:https://github.com/ypocat/gfms

因此,如果您的问题仍然是实际的,也许您可以在您的Wiki中重用其中的showdown.js。如果不是这样,也许其他和我面临同样问题的人会发现(就像我一样)这个问题和这个答案。

我用Python写了一个小的CLI,并添加了GFM支持。它叫做Grip (Github Readme即时预览)。

安装方法:

$ pip install grip

要使用它,简单地说:

$ grip

然后访问localhost:5000查看自述文件。Md文件在那个位置。

你也可以指定你自己的文件:

$ grip CHANGES.md

并更改端口:

$ grip 8080

当然,特别渲染github - flavour Markdown,可选的存储库上下文:

$ grip --gfm --context=username/repo issue.md

显著的特点:

渲染页面显示完全像在GitHub Fenced块 Python API 在2.0中添加的链接文件(谢谢vladwing!)之间导航 导出到2.0中添加的单个文件(谢谢,iliggio! 新增:从stdin读取并导出到stdout

来看看。

阅读自述文件。md文件在终端我使用:

pandoc README.md | lynx -stdin

Pandoc以HTML格式输出,Lynx将其呈现在您的终端中。

它工作得很好:它充满了我的终端,快捷方式如下所示,我可以滚动浏览,链接也起作用了! 虽然只有一种字体大小,但颜色+缩进+对齐方式弥补了这一点。

安装:

Apt: sudo Apt -get install pandoc lynx Nix: Nix -shell -p pandoc lynx

我找到了一个网站,可以帮你做到这一点:http://tmpvar.com/markdown.html。粘贴你的Markdown,它会为你显示它。它似乎工作得很好!

然而,它似乎不能处理代码的语法高亮显示选项;也就是说,~~~ruby特性不起作用。它只打印‘ruby’。

在这条评论的基础上,我写了一个一行程序,使用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”。