用上CommonMark.NET,.NET平台終於有了好用的markdown引擎


缺少好用的markdown引擎之前一直是.NET平台上的一個痛點。因為這個痛點,我們被迫痛苦地使用了pandoc——不是pandoc做的不好,而是pandoc是由Haskell開發的,只能在Windows Server 2008上編譯,而且編譯出來的dll只能在Windows Server 2012上使用,並且只能在IIS 32位應用程序池下使用,甚至有時會引起CPU 100%造成服務器宕機。

昨天,我們在github上發現了今年新上市的一款.net markdown引擎 —— CommonMark.NET(當前在github上有188顆星)。它是CommonMark規范的一個.NET實現,所以叫CommonMark.NET。CommonMark是什么呢?它是一個markdown標准。之前我們經常抱怨markdown最大的問題是缺少標准,而現在已經有了標准。我們只知道抱怨問題,而有人卻已經在解決問題,這就是差距啊。

發現CommonMark.NET之后,我們進行了一番測試,測試下來效果不錯,能滿足我們的應用需求,除了一個問題 —— 不支持表格。這不是CommonMark.NET的問題,而是CommonMark規范本身不支持markdown表格標記,支持表格的markdown標記是由GitHub Flavored Markdown定義的,但沒能成為markdown標准。(針對不支持表格的問題,CommonMark.NET的開發者也進行了專門的說明,詳見 Tables)。

經過評估,我們最終決定選用CommonMark.NET作為博客程序的markdown主引擎,昨天晚上已經發布上線。如果您遇到markdown生成html的轉換問題,麻煩您發郵件至contact@cnblogs.com向我們反饋。

對於不支持表格的問題,我們正在嘗試折衷的解決方法。如果在markdown文本中檢測到markdown表格標記,就換一個markdown引擎進行轉換。

使用CommonMark.NET非常簡單,nuget安裝CommonMark.NET包包:

PM> Install-Package CommonMark.NET

然后在代碼中調用CommonMark.CommonMarkConverter.Convert()方法進行轉換:

body = CommonMark.CommonMarkConverter.Convert(body);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM