Gem github-flavored-markdown 怎样安装使用?

jiyinyiyong · 2012年01月29日 · 最后由 jiyinyiyong 回复于 2014年06月09日 · 11313 次阅读

发现这个比 md 的功能好,就想看看 http://github.github.com/github-flavored-markdown/preview.html https://github.com/github/github-flavored-markdown 但是官网上没教程,我以为要运行 code.rb , 但是有这个问题 https://github.com/github/github-flavored-markdown/pull/36 这东西怎么用啊?

GFM 实际上是 showdown.js 的一个分支,而 showdown.js 是一个 javascript 写的 markdown 渲染库,它并不是一个 ruby 项目。GFM 中的那个 code.rb 文件是用来给已经渲染好的 html 代码加上一些额外功能。

如果你要在自己的网页中用 GFM,那么 你所需要用的是 script 文件夹下面的那个 showdown.js(已经被 Github 加过料的)。像使用正常的 js 文件般在 html 中引用,然后就可以写脚本将页面上的 Markdown 文本渲染成 html 了。

示例:

var text = "som texts. **bold**";
var converter = new Showdown.converter();
var html = converter.makeHtml(text);

#1 楼 @xqunix 原来是这样啊,谢谢,懂了终于... 都能 exports 到 nodejs 去了,果然还找到了同名的模块

#3 楼 @qhwa 11 年 1 月的消息,这么说早成了 也是模块啦.. 有没有现成的工具的呢?

#4 楼 @jiyinyiyong gem install redcarpet 然后就有 redcarpet 这个命令了

$ redcarpet --help
Usage: redcarpet [<file>...]
Convert one or more Markdown files to HTML and write to standard output. With
no <file> or when <file> is '-', read Markdown source text from standard input.

当然也可以在 ruby 程序里面玩这个 gem

#5 楼 @qhwa 可这个转化结果不是标准Markdown吗?

#6 楼 @jiyinyiyong 是的,默认配置时运行,输出和普通 Markdown 标准解析输出是一样的,需要配置一下,具体看项目 readme

命令行可以用选项启用这些配置,例如:

tmp.md 的内容是

# hello world

tables:

| table head |    |    |
|------------|----|----|
| Hello      | A  | B  |
| World      | C  | D  |

运行 cat tmp.md | redcarpet --parse-tables,结果是:

<h1>hello world</h1>

<p>tables:</p>

<table><thead>
<tr>
<th>table head</th>
<th></th>
<th></th>
</tr>
</thead><tbody>
<tr>
<td>Hello</td>
<td>A</td>
<td>B</td>
</tr>
<tr>
<td>World</td>
<td>C</td>
<td>D</td>
</tr>
</tbody></table>

运行 cat tmp.md | redcarpet,结果是:

<h1>hello world</h1>

<p>tables:</p>

<p>| table head |    |    |
|------------|----|----|
| Hello      | A  | B  |
| World      | C  | D  |</p>

#7 楼 @qhwa 就是说有参数可以选择了呢 看 README 里面的参数不多啊,看 gfm 说明里有增加几个功能 像裸链接自动生成链接,还有换行不被合并.. 还有 ``` 开头的代码块 前者找到选项了,代码块也可用了,但是换行上边没提啊.. 对了,, 我用了 showdown 那个脚本去转化了,行尾可以了,但是空行还是怪怪的.. redcarpet 跟 gfm 是不是同一的吧?

#8 楼 @jiyinyiyong GFM 是一种格式标准,redcarpet 是一个支持 GFM 的工具 redcarpet 命令行我基本不用,所以你说的问题我没有遇到过,不妨把 markdown 源码贴出来看看?

showdown 的?https://github.com/github/github-flavored-markdown/blob/gh-pages/scripts/showdown.js 然后描述 gfm 处理换行是这样的 http://coapp.org/reference/garrett-flavored-markdown.html#p 我引用 showdown.js 脚本编译的换行是对的,但空行 (\n\n) 不见了,上面也没提空行 可能我不留神把细节复杂化了,markdown 本身空行在来区分代码块中用到的.. 反正我要的功能不多的,干脆自己写脚本先用着了

#10 楼 @jiyinyiyong 貌似找到了这个,完美支持 gfm,其中最核心的是那个marked.js

#11 楼 @assyer 这都多久之前的帖乐乐,, 不过赞一个.. 虽然我用 Atom 自带那个

需要 登录 后方可回复, 如果你还没有账号请 注册新账号