HyperDown:SegmentFault Markdown 解析器全面开源
作者:互联网
前言
其实关于 HyperDown,joyqi 很早就已经有过介绍了:
Markdown 已经面世许多年了,国内外许多大大小小的网站都在用它,但是它的解析器却依然混乱不堪。SegmentFault 是中国较大规模使用 Markdown 语法的网站,我们一直在使用一些开源类库,包括但不限于
PHP Markdown
CommonMark for PHP
Parsedown
他们都有或多或少的毛病,有的性能较差,有的代码比较业余,更多的情况是由于 Markdown 本身解析比较复杂,因此我们几乎无法去维护另外一个人写的代码。基于这个原因,我为 SegmentFault 专门编写了这么一个 Markdown 解析器。
于是,在一个月前,joyqi 撸出了 HyperDown 的后端解析库。经过了一个月,integ 也终于撸完了其前端 JS 版本 HyperDown.js。一个月的不断完善,现在已经几乎完美地支持全部语法,和包括行内 HTML 元素、链接解析(jsfiddle/gist/runjs/优酷视频)、数学公式等高级扩展。
项目地址可以看:
https://github.com/SegmentFault/HyperDown
https://github.com/SegmentFault/HyperDown.js
这次完整地介绍下 HyperDown 的使用。
HyperDown 使用方法
HyperDown 与常规的解析类库没有任何区别
$parser = new HyperDown\Parser;
$html = $parser->makeHtml($text);
HyperDown.js 翻译为 ES6 版本,见 src/Parser.js,使用:
npm install hyperdown
开发者使用方法
[Node.js] dist/Parser.js(用 babel 编译成 ES5 的版本)用 babel 编译:
$ babel src/Parser.js -o dist/Parser.js
[浏览器] hyperdown.js(webpack 打包后的版本)用 webpack 打包:
npm build
或者:
npm watch
单元测试
npm test
当前支持语法
标题
列表(可递归)
引用(可递归)
缩进风格的代码块
GitHub 风格的代码块
各种行内文字加粗,斜体等效果
链接,图片
自动链接
段内折行
脚标
分隔符
表格
另外推荐
此处另外推荐一款 integ 开发的编辑器:Bach's Editor,“一个有爱的编辑器”,配合刚刚完成的 HyperDown.js 使用,完美!
标签:解析器,npm,Markdown,Parser,SegmentFault,js,HyperDown 来源: https://blog.51cto.com/u_15127653/2806856