Javascript 將 Markdown/Textile 轉換為 HTML(理想情況下,返回 Markdown/Textile)
P粉295616170
P粉295616170 2023-08-24 20:46:39
0
2
501

有幾個很好的用於Markdown / Textile 的Javascript 編輯器(例如:http://attacklab.net/showdown/,我現在正在使用的),但我需要的是一個Javascript 函數,用於在Markdown / Textile -> HTML 之間轉換字串。

最好的方法是什麼? (理想情況下,它應該是 jQuery 友善的—例如,$("#editor").markdown_to_html()

編輯:另一個說法是,我正在尋找Rails 的textilize()markdown() ; 的Javascript 實作> 文字助理

P粉295616170
P粉295616170

全部回覆 (2)
P粉403821740

我認為在這裡列出 JavaScript 解決方案及其縮小(未壓縮)的大小和優點/缺點是值得的。縮小程式碼的壓縮大小約為未壓縮大小的 50%。歸結為:

  • 如果您需要全面的支援並且需要用戶,請使用markdown-it(104KB)編輯或任意文檔,但不太關心大小/頻寬。
  • 如果您需要相當高的品質和表格支持,請使用我自己的drawdown(1.3KB),但想要輕量級,除了轉換之外不需要任何功能,或者解決每個邊緣情況。
  • 如果您需要安全性或可擴充性等獨特功能,請使用其他功能之一。

所有這些都使用 MIT 許可證,大多數都在 npm 上。

  • markdown-it:104KB。自 CommonMark 遷移以來為 StackExchange 提供支援。遵循 CommonMark 規範,現在或多或少是黃金標準;支援語法擴展;預設產生安全輸出。快速地;與攤牌一樣強大,但規模非常大。具有大量功能(例如同步滾動)。也是http://dillinger.io/的基礎。

  • 攤牌:28KB。具有全面的 CommonMark 支持,並且是以前的黃金標準;明顯小於 Markdown-It 但速度較慢。它是向下翻頁的基礎。

  • 向下翻頁:8KB。在 CommonMark 遷移之前為 StackExchange 提供支援。它非常強大,但缺少表格、定義清單、腳註等。除了 8KB 轉換器腳本之外,它還提供編輯器和清理器腳本。

  • 縮減:1.3KB。完全公開,我寫的。比任何其他輕量級轉換器更廣泛的功能範圍;處理大多數但不是全部的 CommonMark 規格。不建議用於使用者編輯,但對於在網頁應用程式中呈現資訊非常有用。沒有內嵌 HTML。

  • 標記:19KB。綜合的;針對單元測試套件進行測試;支援自訂詞法分析器規則。

  • micromarkdown:5KB。支援很多功能,但缺少一些常見的功能,例如使用*的無序列表,以及一些嚴格來說不屬於規範一部分的常見功能,例如受隔離的程式碼區塊。許多錯誤,在大多數較長的文檔上引發異常。我認為它是實驗性的。

  • nano-markdown:1.9KB。功能範圍僅限於大多數文件使用的內容;比 micromarkdown 更強大,但並不完美;使用自己的非常基本的單元測試。相當穩健,但在許多邊緣情況下會出現問題。

  • mmd.js:800 位元組。努力製作盡可能最小且仍然可用的解析器的結果。支援一小部分;需要為其量身定製文件。

  • markdown-js:54KB(無法下載縮小版;可能縮小版)至~20KB)。看起來很全面,包括測試,但我不是很熟悉。

  • meltdown:41KB(縮小後無法下載;可能縮小至約 15KB )。 jQuery 外掛; Markdown Extra(表格、定義清單、註腳)。

  • unified.js:各不相同,5-100KB。一個基於插件的系統,用於在 html、markdown 和散文之間進行轉換。根據您需要的插件(拼字檢查、語法反白、輸入清理),檔案大小會有所不同。可能更多地使用伺服器端而不是客戶端。

    P粉592085423

    對於 Markdown -> HTML,有Showdown

    #

    StackOverflow本身使用Markdown語言進行問答;您是否嘗試過看看它是如何運作的?

    嗯,它似乎正在使用PageDown,它可以在 MIT 授權下使用 p>

    問題有沒有好的Markdown Javascript函式庫或控制項?及其答案也可能有幫助:-)


    當然,完整的編輯器並不完全是您所要求的;但他們必須使用某種函數將Markdown 程式碼轉換為HTML ;並且,根據這些編輯器的許可證,您也許可以重複使用該功能...

    實際上,如果您仔細查看 Showdown,在其程式碼來源(檔案 showdown.js)中,您會發現這部分註解:

    // // 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 語法,但應該很容易整合到您的應用程式中;-)


    關於紡織,似乎很難找到有用的東西:-(


    另一方面,HTML -> Markdown,我想事情可能會有點困難...

    我要做的是將Markdown 和HTML 都儲存在我的應用程式資料儲存(資料庫?)中,並使用一個進行編輯,另一個進行渲染...會佔用更多空間,但似乎比“解密」風險要小「HTML...

      最新下載
      更多>
      網站特效
      網站源碼
      網站素材
      前端模板
      關於我們 免責聲明 Sitemap
      PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!