HyperDown:一個結構清晰,易於維護,現代的 Markdown 解析器
為何要寫這樣一個解析器
Markdown 已經面世許多年了,國內外許多大大小小的網站都在用它,但是它的解析器卻依然混亂不堪。SegmentFault 是中國較大規模使用 Markdown 語法的網站,我們一直在使用一些開源類庫,包括但不限於
php-markdown
CommonMark for PHP
Parsedown
他們都有或多或少的毛病,有的性能較差,有的代碼比較業餘,更多的情況是由於 Markdown 本身解析比較複雜,因此我們幾乎無法去維護另外一個人寫的代碼。基於這個原因,我為 SegmentFault 專門編寫了這麼一個 Markdown 解析器。
PHP 版 Hyperdown
使用方法
與常規的解析類庫沒有任何區別
$parser = new HyperDownParser;n$html = $parser->makeHtml($text);n
當前支持的語法
標題
列表(可遞歸)
引用(可遞歸)
縮進風格的代碼塊
Github風格的代碼塊
各種行內文字加粗,斜體等效果
鏈接,圖片
自動鏈接
段內折行
腳標
分隔符
表格
即將支持的語法
即將支持的語法
圖片和鏈接支持互相套用
瀏覽器中使用請參閱 HyperDown.jsHyperDown.js
接下來介紹的是 js 版本 HyperDown (使用 CoffeeScript 實現)
使用方法
nodejs 中使用
安裝
npm install hyperdownn
使用
HyperDown = require(hyperdown);nnvar parser = new HyperDown,n html = parser.makeHtml(markdownText);n
瀏覽器中使用
直接引用 Parser.js 即可
<script src="yourpath/hyperdown/Parser.js"></script>n<script>nvar parser = new HyperDown,n html = parser.makeHtml(markdownText); n</script>n
單元測試
npm testn
推薦閱讀:
※一鍵!將 Word 轉換為 Markdown
※Markdown 入門
※認識與入門 Markdown
※學會優雅實用的 Markdown 寫作,從這篇文章開始吧 | 有用功
※為什麼markdown編輯器Mou這麼受歡迎?
TAG:Markdown | SegmentFault |