汉诺塔真是学递归的经典例子啊~这里再来一个 Ruby 版本的。
1 | @step_nbr = 0 |
汉诺塔真是学递归的经典例子啊~这里再来一个 Ruby 版本的。
1 | @step_nbr = 0 |
从一开始我就打算用 Markdown 来撰写我的随笔,然后利用工具转换为 Html 格式显示到博客上。这么做的原因是,可以用我比较喜欢的文本编辑器来写作,同时不用花费过多精力在格式细节上。至于用什么解析器来转换呢?我很希望可以用 GitHub 的解析器,因为它针对编程相关的文档有一些特别的优化,最简单的例子是,在某些编程语言中,经常使用带有多个下划线的变量名,比如 this_is_a_variable,如果用标准的解析器,这连续的下划线就会被作为格式代码解析而得不到理想的结果。另外 GitHub 的解析器也支持利用三个『`』方式标识代码,比4个空格的方式方便多了。
共产主义社会必然会先在互联网上实现。
我浏览 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 更容易些,那就用呗~~