Heim  >  Fragen und Antworten  >  Hauptteil

Javascript konvertiert Markdown/Textile in HTML (im Idealfall Markdown/Textile zurückgeben)

<p>Es gibt mehrere gute Javascript-<strong>Editoren</strong> für Markdown/Textile (z. B. http://attacklab.net/showdown/, den ich jetzt verwende), aber was ich brauche, ist eine Javascript-Funktion zum Konvertieren von Zeichenfolgen zwischen Markdown / Textile -> HTML. </p> <p>Was ist der beste Ansatz? (Idealerweise sollte es jQuery-freundlich sein – z. B. <code>$("#editor").markdown_to_html()</code>)</p> <p><strong>Bearbeiten: </strong>Anders gesagt, ich suche nach Rails's <code>textilize()</code> /code> ; Javascript-Implementierung>
P粉295616170P粉295616170422 Tage vor557

Antworte allen(2)Ich werde antworten

  • P粉403821740

    P粉4038217402023-08-25 17:37:48

    我认为在这里列出 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 和散文之间进行转换。根据您需要的插件(拼写检查、语法突出显示、输入清理),文件大小会有所不同。可能更多地使用服务器端而不是客户端。

    Antwort
    0
  • P粉592085423

    P粉5920854232023-08-25 09:13:59

    对于 Markdown -> HTML,有 Showdown

    StackOverflow本身使用Markdown语言进行问答;您是否尝试过看看它是如何工作的?

    嗯,它似乎正在使用PageDown,它可以在 MIT 许可证下使用

    问题有没有好的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...

    Antwort
    0
  • StornierenAntwort