我想知道是否有一个命令行实用程序来获取GitHub flavored Markdown文件并将其呈现为HTML .
我'm using a GitHub wiki to create website content. I'已经克隆了我的服务器上的存储库,然后将其处理为常规HTML . 它's important to me that what appears on GitHub is exactly how it should look for my website. I' d也非常喜欢使用带有 ~~~
的隔离块,所以我宁愿不使用标准的Markdown语法 .
我已经看了一下JavaScript实时预览,认为我可以将它挂钩到Node.js,但他们说它已被弃用 . 我查看了redcarpet存储库,但看起来它没有命令行界面 .
然而,我推出了自己的解决方案,因为这里没有解决方案明显优于其他解决方案,我会在没有选定答案的情况下留下问题 .
24 回答
我用Python编写了一个小CLI,并添加了GFM支持 . 它被称为Grip (Github Readme Instant Preview) .
安装它:
要使用它,只需:
然后访问
localhost:5000
以查看该位置的readme.md
文件 .您还可以指定自己的文件:
并改变端口:
当然,具体来说,可以使用存储库上下文来呈现GitHub-Flavored Markdown:
显着特点:
渲染页面与GitHub上的内容完全相同
围栏块
Python API
在2.0中添加的链接文件之间导航(谢谢,vladwing!)
导出到2.0中添加的单个文件(谢谢,iliggio!)
New: 从
stdin
读取并导出到3.0中添加的stdout
希望这能帮到这里的人 . Check it out .
我没有找到一个快速简单的GitHub风格Markdown方法,但我找到了一个更通用的版本 - Pandoc . 它可以转换为多种格式,包括Markdown,Rest,HTML等 .
我还开发了一个
Makefile
来将所有.md文件转换为.html(在很大程度上是Writing, Markdown and Pandoc的示例):也许这可能有所帮助:
没有文档存在,但我从gollum文档中得到了它 . 看看rubydoc.info,看起来你可以使用:
在您的Ruby代码中 . 您可以轻松地将其包装在脚本中,以将其转换为命令行实用程序:
用
./render.rb path/to/my/markdown/file.md
执行它 . 请注意,如果没有消毒,这对于 生产环境 使用是不安全的 .它不处理GitHub扩展,但总比没有好 . 我相信你可以扩展模块来处理GitHub的添加 .
可能不是你想要的,但既然你提到的Node.js:我无法找到一个很好的工具将它们提交到GitHub上之前预览我的本地驱动器上GitHub风格Markdown的文档,所以今天我创建了一个基于Node.js的:https://github.com/ypocat/gfms
因此,如果您的问题仍然存在,也许您可以重复使用它的showdown.js . 如果没有,也许其他遇到同样问题的人会发现(就像我一样)这个问题及其答案 .
GitHub你可以使用a Markdown API .
要读取终端中的README.md文件,我使用:
Pandoc以HTML格式输出,Lynx在您的终端中呈现 .
它工作得很好:它填充我的终端,快捷方式显示在下面,我可以滚动, and the links work! 虽然只有一种字体大小,但颜色缩进对齐弥补了这一点 .
Installation:
使用marked . 它支持GitHub Flavored Markdown,可以用作Node.js模块和命令行 .
一个例子是:
这主要是@ barry-staes使用Pandoc的答案的后续内容 . 如果你在Mac上,Homebrew也有它:
Pandoc通过
markdown_github
名称支持GFM作为输入格式 .Output to file
Open in Lynx
Open in the default browser on OS X
TextMate Integration
您可以随时将当前选择或当前文档传递给上述之一,因为大多数编辑器都允许您这样做 . 您还可以轻松配置环境,以便
pandoc
替换Markdown软件包使用的默认Markdown处理器 .首先,创建一个包含以下内容的shell脚本(我将其称为
ghmarkdown
):然后,您可以将
TM_MARKDOWN
变量(在Preferences→Variables中)设置为/path/to/ghmarkdown
,它将替换默认的Markdown处理器 .我创建了一个类似于Atom 's Preview functionality, but as a standalone application. Not sure if this is what you'的工具,但它可能会有所帮助 . - https://github.com/yoshuawuyts/vmd
pandoc
与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 .
使用Redcarpet的Ruby脚本将是"command line utility",如果你有本地Ruby的话
我的最终解决方案是使用Python Markdown . 我滚动my own extension修复了栅栏块 .
有一个非常好的和简单的用于浏览GFM Markdown文档的工具:
GFMS - Github Flavored Markdown Server
它简单轻便(无需配置)HTTP服务器可以在包含markdown文件的任何目录中启动以浏览它们 .
特征:
完整的GFM Markdown支持
源代码语法高亮显示
浏览文件和目录
好看的输出(和可配置的CSS样式表)
导出为PDF
GitHub已经(自)开发了一个很好的模块化文本编辑器,名为Atom(基于Chromium,并使用Node.js模块作为包) .
默认预安装包Markdown Preview允许您使用Ctrl Shift M在单独的选项卡中显示预览 .
我没有't tested its full syntax, but since it'来自GitHub,我'd be highly surprised if the preview'的语法与他们的不同(使用
~~~
工作的围栏块) .现在,虽然这不是技术上基于命令行的,它使用的Node.js并输出到DOM基于渲染器,这可能会帮助任何人试图呈现一个基于Node.js的功能的Web服务器GitHub的基于语法的HTML,或者只是修改了她/他的README.md离线 .
改进@ barry-stae的解决方案 . 将此片段粘贴到〜/ .bashrc中
然后我们可以从命令行快速查看该文件 . 也适用于SSH / Telnet会话 .
延迟添加,但showdownjs有一个CLI工具,可用于将MD解析为HTML .
为此目的,我设法使用单行Ruby脚本(虽然它必须放在一个单独的文件中) . 首先,在您将推送文档的每台客户端计算机上运行一次这些命令:
接下来,在客户端映像中安装此脚本,并将其命名为
render-readme-for-javadoc.rb
:最后,像这样调用它:
ETA:这对于StackOverflow风格的Markdown没有帮助,这似乎在这个答案上失败了 .
我找到了一个可以为你做这个的网站:http://tmpvar.com/markdown.html . 粘贴在Markdown中,它会为您显示 . 它似乎工作得很好!
但是,它似乎没有处理代码的语法高亮选项;也就是说,
~~~ruby
功能没有't work. It just prints ' ruby' .改进@ barry-stae和@Sandeep为常规elink用户提供的答案,你可以将以下内容添加到.bashrc:
不要忘记安装pandoc(和elinks) .
基于Jim Lim's answer,我安装了GitHub Markdown gem . 这包括一个名为gfm的脚本,它在命令行上获取文件名并将等效的HTML写入标准输出 . 我稍微修改了一下将文件保存到磁盘然后用launchy打开标准浏览器:
'quick-and-dirty'方法是使用
wget
实用程序下载Wiki HTML页面,而不是克隆它 . 例如,这是我从GitHub下载Hystrix wiki的方式(我正在使用Ubuntu Linux):第一个调用将下载wiki入口页面及其所有依赖项 . 第二个将调用其上的所有子页面 . 您可以通过打开
Netflix/Hystrix/wiki.1.html
来立即浏览维基 .请注意,两次调用_601139都是必要的 . 如果您只是运行第二个,那么您将错过正确显示页面所需的一些依赖项 .
我使用Pandoc和
--from=gfm
选项这样:我最近做了你想要的,因为我需要从Markdown文件生成文档,而GitHub风格非常好 . 试试吧 . 它是用Node.js编写的 .
gfm