其他分享
首页 > 其他分享> > HyperDown:SegmentFault Markdown 解析器全面开源

HyperDown:SegmentFault Markdown 解析器全面开源

作者:互联网

282211e040da4028f17214864713f9eb.jpeg

前言

其实关于 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


当前支持语法


另外推荐

此处另外推荐一款 integ 开发的编辑器:Bach's Editor,“一个有爱的编辑器”,配合刚刚完成的 HyperDown.js 使用,完美!

图片


标签:解析器,npm,Markdown,Parser,SegmentFault,js,HyperDown
来源: https://blog.51cto.com/u_15127653/2806856