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

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

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

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


当前回答

有一个非常好的和简单的工具来浏览GFM Markdown文档:

GFMS - Github调味Markdown服务器

它是简单和轻量级的(不需要配置)HTTP服务器,您可以在任何包含标记文件的目录中启动以浏览它们。

特点:

全GFM Markdown支持 源代码语法突出显示 浏览文件和目录 漂亮的输出(以及可配置的CSS样式表) 导出为PDF

其他回答

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

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

有一个非常好的和简单的工具来浏览GFM Markdown文档:

GFMS - Github调味Markdown服务器

它是简单和轻量级的(不需要配置)HTTP服务器,您可以在任何包含标记文件的目录中启动以浏览它们。

特点:

全GFM Markdown支持 源代码语法突出显示 浏览文件和目录 漂亮的输出(以及可配置的CSS样式表) 导出为PDF

根据Jim Lim的回答,我安装了GitHub Markdown gem。这包括一个名为gfm的脚本,它接受命令行上的文件名,并将等效的HTML写入标准输出。我稍微修改了一下,把文件保存到磁盘上,然后用launchy打开标准浏览器:

#!/usr/bin/env ruby

HELP = <<-help
  Usage: gfm [--readme | --plaintext] [<file>]
  Convert a GitHub-Flavored Markdown file to HTML and write to standard output.
  With no <file> or when <file> is '-', read Markdown source text from standard input.
  With `--readme`, the files are parsed like README.md files in GitHub.com. By default,
  the files are parsed with all the GFM extensions.
help

if ARGV.include?('--help')
  puts HELP
  exit 0
end

root = File.expand_path('../../', __FILE__)
$:.unshift File.expand_path('lib', root)

require 'github/markdown'
require 'tempfile'
require 'launchy'

mode = :gfm
mode = :markdown if ARGV.delete('--readme')
mode = :plaintext if ARGV.delete('--plaintext')

outputFilePath = File.join(Dir.tmpdir, File.basename(ARGF.path))  + ".html"

File.open(outputFilePath, "w") do |outputFile |
    outputFile.write(GitHub::Markdown.to_html(ARGF.read, mode))
end

outputFileUri = 'file:///' + outputFilePath

Launchy.open(outputFileUri)

我创建了一个类似于Atom预览功能的工具,但是作为一个独立的应用程序。不确定这是否是你要找的,但它可能会有帮助。——https://github.com/yoshuawuyts/vmd

GitHub(从那时起)开发了一个很好的模块化文本编辑器Atom(基于Chromium,并使用Node.js模块作为包)。

一个默认的预安装包Markdown预览让您显示您的预览在一个单独的选项卡使用Ctrl + Shift + M。

我还没有测试它的完整语法,但由于它来自GitHub,如果预览的语法与他们的不同(使用~~~工作的栅栏块),我会非常惊讶。

现在,虽然它在技术上不是基于命令行,但它使用Node.js并输出到基于dom的渲染器,这可能会帮助任何试图在基于Node.js的web服务器上渲染基于GitHub语法的HTML的人,或者只是编辑她/他的README。md离线。