从一开始我就打算用 Markdown 来撰写我的随笔,然后利用工具转换为 Html 格式显示到博客上。这么做的原因是,可以用我比较喜欢的文本编辑器来写作,同时不用花费过多精力在格式细节上。至于用什么解析器来转换呢?我很希望可以用 GitHub 的解析器,因为它针对编程相关的文档有一些特别的优化,最简单的例子是,在某些编程语言中,经常使用带有多个下划线的变量名,比如 this_is_a_variable,如果用标准的解析器,这连续的下划线就会被作为格式代码解析而得不到理想的结果。另外 GitHub 的解析器也支持利用三个『`』方式标识代码,比4个空格的方式方便多了。
可以利用 GitHub 的 Markdown 解析器吗?怎么用?
共产主义社会必然会先在互联网上实现。
我浏览 GitHub 上它自己的 repositories,发现了它的一个项目markup, “We use this library on GitHub when rendering your README or any other rich text file.”,就是它了。
这个项目本身是 Ruby 项目,好在我多少也研究过一点 Ruby。git clone 下来,在 bin 目录里有个可以直接运行的脚本 “github-markup” 后面带个需要转换的文件名就行了,相当简单。根据 README,这个项目根据需要转换的原始格式,依赖于其它几个 Ruby 库,比如要解析 markdown,就需要redcarpet,没问题,运行”gem install redcarpet”安装之。写个 markdown 文档测试一下,发现结果并不是我想要的,那些特有的特性并没有实现,这是怎么回事?
(开源,开源,我爱你)
那就看看代码呗,在markdown.rb 代码文件里有这么一段:
1 | MARKDOWN_GEMS = { |
由此看来,它其实支持很多 markdown 解析库,README 里只提到了redcarpet,而看起来我们真正需要的是第一个:”github/markdown”,那么哪里才能找到呢?Here it is! 现在,只需要运行 “gem install github-markdown”,然后再运行那个 “github-markup filename”,就可以得到期望的结果了。
看起来还是很麻烦,有没有更简单的方法?
其实 GitHub 提供的 API 就支持 markdown 转换:http://developer.github.com/v3/markdown/
如果直接利用 API 更容易些,那就用呗~~