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

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

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

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


当前回答

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

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

其他回答

也许这可能会有所帮助:

gem install github-markdown

没有文档,但我从咕噜的文档里找到的。查看rubydoc.info,看起来你可以使用:

require 'github/markdown'  
puts GitHub::Markdown.render_gfm('your markdown string')

在你的Ruby代码中。你可以在脚本中轻松地将其包装成命令行实用程序:

#!/usr/bin/env ruby

# render.rb
require 'github/markdown'

puts GitHub::Markdown.render_gfm File.read(ARGV[0])

使用./render执行它。rb路径/ /我/减价/ file.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”。

另一个选择是AllMark -降价服务器。 Docker映像可用于准备就绪的设置。

$ 奥尔马克发球 .

注意:它递归扫描目录服务网站从markdown文件。因此,为了更快地处理单个文件,请将其移动到单独的目录。

我还没有找到一个快速和简单的方法,github风味Markdown,但我已经找到了一个稍微更通用的版本- Pandoc。它可以从/转换为多种格式,包括Markdown, Rest, HTML和其他格式。

我还开发了一个Makefile来将所有。md文件转换为。html(在很大程度上是Writing, Markdown和Pandoc的例子):

# 'Makefile'
MARKDOWN = pandoc --from gfm --to html --standalone
all: $(patsubst %.md,%.html,$(wildcard *.md)) Makefile

clean:
    rm -f $(patsubst %.md,%.html,$(wildcard *.md))
    rm -f *.bak *~

%.html: %.md
    $(MARKDOWN) $< --output $@

我使用Pandoc选项——from=gfm为GitHub调味Markdown如下:

$ pandoc my_file.md   --from=gfm -t html -o my_file.html