我認(rèn)為在這里列出 JavaScript 解決方案及其縮?。ㄎ磯嚎s)的大小和優(yōu)點/缺點是值得的??s小代碼的壓縮大小約為未壓縮大小的 50%。歸結(jié)為:
所有這些都使用 MIT 許可證,大多數(shù)都在 npm 上。
markdown-it:104KB。 自 CommonMark 遷移以來為 StackExchange 提供支持。遵循 CommonMark 規(guī)范,現(xiàn)在或多或少是黃金標(biāo)準(zhǔn);支持語法擴展;默認(rèn)情況下產(chǎn)生安全輸出。快速地;與攤牌一樣強大,但規(guī)模非常大。具有大量功能(例如同步滾動)。也是 http://dillinger.io/ 的基礎(chǔ)。
攤牌:28KB。具有全面的 CommonMark 支持,并且是以前的黃金標(biāo)準(zhǔn);明顯小于 Markdown-It 但速度較慢。它是向下翻頁的基礎(chǔ)。
向下翻頁:8KB。 在 CommonMark 遷移之前為 StackExchange 提供支持。它非常強大,但缺少表格、定義列表、腳注等。除了 8KB 轉(zhuǎn)換器腳本之外,它還提供編輯器和清理器腳本。
縮減:1.3KB。完全公開,我寫的。比任何其他輕量級轉(zhuǎn)換器更廣泛的功能范圍;處理大多數(shù)但不是全部的 CommonMark 規(guī)范。不推薦用于用戶編輯,但對于在網(wǎng)絡(luò)應(yīng)用程序中呈現(xiàn)信息非常有用。沒有內(nèi)聯(lián) HTML。
標(biāo)記:19KB。綜合的;針對單元測試套件進行測試;支持自定義詞法分析器規(guī)則。
micromarkdown:5KB。支持很多功能,但缺少一些常見的功能,例如使用 *
的無序列表,以及一些嚴(yán)格來說不屬于規(guī)范一部分的常見功能,例如受隔離的代碼塊。許多錯誤,在大多數(shù)較長的文檔上引發(fā)異常。我認(rèn)為它是實驗性的。
nano-markdown:1.9KB。功能范圍僅限于大多數(shù)文檔使用的內(nèi)容;比 micromarkdown 更強大,但并不完美;使用自己的非常基本的單元測試。相當(dāng)穩(wěn)健,但在許多邊緣情況下會出現(xiàn)問題。
mmd.js:800 字節(jié)。努力制作盡可能最小且仍然可用的解析器的結(jié)果。支持一小部分;需要為其量身定制文檔。
markdown-js:54KB(無法下載縮小版;可能會縮小版)至~20KB)??雌饋砗苋?,包括測試,但我不是很熟悉。
meltdown:41KB(縮小后無法下載;可能縮小至約 15KB )。 jQuery 插件; Markdown Extra(表格、定義列表、腳注)。
unified.js:各不相同,5-100KB。一個基于插件的系統(tǒng),用于在 html、markdown 和散文之間進行轉(zhuǎn)換。根據(jù)您需要的插件(拼寫檢查、語法突出顯示、輸入清理),文件大小會有所不同??赡芨嗟厥褂梅?wù)器端而不是客戶端。
對于 Markdown -> HTML,有 Showdown
StackOverflow本身使用Markdown語言進行問答;您是否嘗試過看看它是如何工作的?
嗯,它似乎正在使用PageDown,它可以在 MIT 許可證下使用 p>
問題有沒有好的Markdown Javascript庫或控件?及其答案也可能有幫助:-)
當(dāng)然,完整的編輯器并不完全是您所要求的;但他們必須使用某種函數(shù)將 Markdown 代碼轉(zhuǎn)換為 HTML ;并且,根據(jù)這些編輯器的許可證,您也許可以重復(fù)使用該功能...
實際上,如果您仔細(xì)查看 Showdown,在其代碼源(文件 showdown.js) 中,您會發(fā)現(xiàn)這部分注釋:
// // Showdown usage: // // var text = "Markdown *rocks*."; // // var converter = new Showdown.converter(); // var html = converter.makeHtml(text); // // alert(html); // // Note: move the sample code to the bottom of this // file before uncommenting it. //
它不是 jQuery 語法,但應(yīng)該很容易集成到您的應(yīng)用程序中;-)
關(guān)于紡織,似乎很難找到有用的東西:-(
另一方面,HTML -> Markdown,我想事情可能會有點困難......
我要做的是將 Markdown 和 HTML 都存儲在我的應(yīng)用程序數(shù)據(jù)存儲(數(shù)據(jù)庫?)中,并使用一個進行編輯,另一個進行渲染...會占用更多空間,但似乎比“解密”風(fēng)險要小“HTML...