有没有一个命令行实用程序来呈现GitHub风味的Markdown?

我想知道是否有一个命令行实用程序来获取GitHub风格的Markdown文件并将其呈现为HTML。

我正在使用GitHub wiki来创build网站内容。 我克隆了我的服务器上的存储库,然后将它处理成普通的HTML。 GitHub上显示的是我应该如何查找我的网站对我来说很重要。 我也很喜欢用~~~使用隔离块,所以我宁愿不使用标准的Markdown语法。

我已经看了一下JavaScript的实时预览思考我可以挂钩到Node.js,但他们说这是不赞成使用。 我已经看过了redcarpet版本库,但是看起来并没有命令行界面。

我推出了自己的解决scheme,但是,由于这里没有解决scheme明显比其他解决scheme更好,所以我会留下一个没有选定答案的问题。

我在Python中编写了一个小型CLI,并添加了GFM支持。 它被称为Grip(Github自述即时预览) 。

安装它:

 $ pip install grip 

要使用它,只需:

 $ grip 

然后访问localhost:5000以查看该位置处的readme.md文件。

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

 $ grip CHANGES.md 

并改变端口:

 $ grip 8080 

当然,特别是渲染GitHub-Flavored Markdown,可选地使用库上下文:

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

显着特点:

  • 将页面渲染成与GitHub完全一样
  • 围栏的块
  • Python API
  • 在2.0中添加的链接文件之间导航(谢谢, vladwing !)
  • 导出到2.0中添加的单个文件(谢谢, iliggio !)
  • 新增function:stdin读取并导出到3.0中添加的 stdout

希望这有助于这里的人。 检查出来 。

我还没有findGitHub-flavored Markdown的快捷方法,但我发现了一个稍微更通用的版本 – Pandoc 。 它转换成多种格式,包括Markdown,Rest,HTML和其他格式。

我也开发了一个Makefile来将所有的.md文件转换成.html文件(大部分文字,Markdown和Pandoc )。

 # 'Makefile' MARKDOWN = pandoc --from markdown_github --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 $@ 

也许这可能有帮助:

 gem install github-markdown 

没有文档存在,但我从gollum文档中获得。 看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 path/to/my/markdown/file.md 。 请注意,这对于没有消毒的生产是不安全的。

 sudo pip install markdown python -m markdown readme.md > readme.html 

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

可能不是你想要的,但是因为你提到了Node.js:我没有find一个好的工具来预览我的本地驱动器上的GitHub Flavored Markdown文档,然后将它们提交给GitHub,所以今天我创build了一个基于Node.js的: https ://github.com/ypocat/gfms

所以如果你的问题仍然存在,也许你可以重新使用它的showdown.js。 如果不是,那么面对同样问题的其他人可能会发现(就像我这样做)这个问题和这个答案。

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

一个例子是:

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

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

要阅读terminal中的README.md文件,我使用:

 pandoc README.md | lynx -stdin 

Pandoc以HTML格式输出,Lynx在terminal中呈现。

它工作得很好:它填充我的terminal,快捷键显示在下面,我可以滚动, 链接工作! 虽然只有一个字体大小,但颜色+缩进+alignment弥补了这一点。

安装:

 sudo apt-get install pandoc lynx 

我创build了一个类似Atom的预览function的工具,但作为一个独立的应用程序。 不知道这是你在找什么,但它可能是有帮助的。 – https://github.com/yoshuawuyts/vmd

VMD

这主要是@ barry-staes使用Pandoc的答案。 Homebrew也有它,如果你在Mac上:

 brew install pandoc 

Pandoc通过markdown_github名称支持GFM作为input格式。

输出到文件

 cat foo.md | pandoc -f markdown_github > foo.html 

在山猫开放

 cat foo.md | pandoc -f markdown_github | lynx -stdin # To open in Lynx 

在OS X的默认浏览器中打开

 cat foo.md | pandoc -f markdown_github > foo.html && open foo.html # To open in the default browser on OS X` 

TextMate集成

您可以随时将当前select或当前文档传送到上面的其中一个,因为大多数编辑器允许您这样做。 您还可以轻松configuration环境,以便使用pandocreplaceMarkdown捆绑软件使用的默认Markdown处理器。

首先,创build一个包含以下内容的shell脚本(我将称之为ghmarkdown ):

 #!/bin/bash # Note included, optional --email-obfuscation arg pandoc -f markdown_github --email-obfuscation=references 

然后,您可以将TM_MARKDOWNvariables(在首选项→variables中)设置为/path/to/ghmarkdown ,并将replace默认的Markdown处理器。

browser pandoc适合我。

用法: cat README.md | pandoc -f markdown_github | browser cat README.md | pandoc -f markdown_github | browser

安装(假设您正在使用Mac OSX):

  • $ brew install pandoc

  • $ brew install browser

或者在Debian / Ubuntu上: apt-get install pandoc browser

另请参阅https://softwareengineering.stackexchange.com/a/128721/24257


如果您对我们[Github]渲染Markdown文件的方式感兴趣,您可能需要查看Redcarpet ,我们的Ruby接口到Sundown库。

如果你有本地的Ruby,那么使用Redcarpet的 Ruby脚本将会是“命令行工具”

我最终的解决scheme是使用Python Markdown 。 我推出了自己的 扩展 ,修复了篱笆块。

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

GFMS – Github Flavored Markdown Server

它简单轻便(无需configuration)HTTP服务器,您可以在任何包含降价文件的目录中启动以浏览它们。

特征:

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

GitHub已经(自)开发了一个很好的模块化文本编辑器Atom (基于Chromium并使用Node.js模块进行包装)。

使用默认的预安装包Markdown Preview ,您可以使用Ctrl + Shift + M在单独的选项卡中显示预览。

我没有testing它的完整语法,但是因为它来自于GitHub,所以如果预览的语法与他们的不同(使用~~~工作的防护块),我会感到非常惊讶。

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

改进@ barry-stae的解决scheme。 将这段代码粘贴到〜/ .bashrc中

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

然后我们可以从命令行快速查看文件。 也很好地通过SSH / Telnet会话。

 mdviewer README.md 

我发现一个网站,将为您做这个: http : //tmpvar.com/markdown.html 。 粘贴到你的Markdown,它会显示给你。 它似乎工作得很好!

但是,它似乎不处理代码的语法高亮选项; 也就是~~~rubyfunction不起作用。 它只是打印“ruby”。

后来添加,但showdownjs有一个CLI工具,您可以用来parsingMD到HTML。

改进@ barry-stae和@Sandeep为elinks的常规用户提供的答案,你可以在.bashrc中添加以下内容:

 function mdviewer() { pandoc $* | elinks --force-html } 

别忘了安装pandoc(和elinks)。

根据Jim Lim的回答 ,我安装了GitHub Markdowngem。 其中包括一个名为gfm的脚本,它在命令行上input一个文件名,并将相应的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) 

一个“快速和肮脏的”方法是使用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来浏览wiki。

请注意,这两个调用wget是必要的。 如果你只是运行第二个,那么你会错过一些依赖,以正确显示页面。

我设法使用了一个单行的Ruby脚本(尽pipe它必须在一个单独的文件中)。 首先,在每台客户端机器上运行这些命令一次,您gem install github-markup gem install commonmarker文档: gem install github-markup gem install commonmarker接下来,将此脚本安装到客户端映像中,并将其命名为render-readme-for-javadoc.rb

“`需要'github /标记'

把GitHub :: Markup.render_s(GitHub :: Markups :: MARKUP_MARKDOWN,File.read('README.md'))“`

最后,像这样调用它:

ruby ./render-readme-for-javadoc.rb >> project/src/main/javadoc/overview.html

ETA:这不会帮助你与StackOverflow风味降价,这似乎是失败的答案。

我最近做了你想要的,因为我需要从Markdown文件生成文档,GitHub风格是相当不错的。 尝试一下。 它是用Node.js写的

GFM