ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

HyperDown:SegmentFault Markdown 解析器全面开源

2021-05-24 14:02:05  阅读:328  来源: 互联网

标签:解析器 npm Markdown Parser SegmentFault js HyperDown


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


当前支持语法

  • 标题

  • 列表(可递归)

  • 引用(可递归)

  • 缩进风格的代码块

  • GitHub 风格的代码块

  • 各种行内文字加粗,斜体等效果

  • 链接,图片

  • 自动链接

  • 段内折行

  • 脚标

  • 分隔符

  • 表格


另外推荐

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

图片


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有