【问题标题】:Is there javascript to convert HTML to markdown? [closed]是否有 javascript 将 HTML 转换为 markdown? [关闭]
【发布时间】:2019-01-02 18:30:07
【问题描述】:

有 showdown.js 将 markdown 转换为 HTML,PHP Markdown 将 markdown 转换为 HTML。我的问题是,是否有 javascript 库可以将 HTML 转换为 markdown?

【问题讨论】:

  • 如果我错了,请纠正我,但我认为这些库中的任何一个都不会将 HTML 转换为降价。一般来说,我认为这是不可能的,因为 markdown->HTML 转换是有损的(也就是说,数据在转换中丢失,需要再次转换回来)。
  • 为什么你认为 markdown->HTML 是有损的?我认为 HTML->markdown 是有损的,因为每个 markdown 语法都有其 HTML 等价物,反之则不然。
  • @Nick:另外,一些 HTML 标签有不止一个 markdown 等价物,例如

    可以是 ## 或 ----。但我正在寻找的是可以将 HTML 转换为“标准”降价的东西,即去除额外的回报和不受支持的 HTML 标记,对所有标题和其他标题使用 ----。

  • 完整和准确的恢复不是 OP 的一部分。除非 OP 指定,否则 HTML 的降价损失是无关紧要的。无论如何,在呈现 HTML 时,空格会丢失,当然,除非它位于 pre 标记中。
  • 显然,经过多次研究,它并不存在。我应该做一个“DIY答案”:)

标签: javascript html markdown


【解决方案1】:

我已经开始了一个项目来做这个:

https://github.com/domchristie/turndown

它仍处于早期阶段,因此尚未经过大量测试,但这是一个开始。

欢迎反馈/贡献。

【讨论】:

  • 很酷的项目,非常感谢分享。
  • 在我看过的所有 html-to-markdown 转换器中,这个最适合我的需要。其余的将链接移至底部,如注释。
  • 我的 A$$ 没有建设性!这太棒了!
  • 可爱的东西!如果它最终也支持 GitHub Flavored Markdown 那就太好了。
  • @fer 随意尝试:github.com/domchristie/to-markdown/tree/gfm 我不能说它什么时候会被合并,但做一些测试肯定会有所帮助:)
【解决方案2】:

我还与 github 上的一个项目进行了合作。目前,仅在浏览器中进行测试。

html2markdown

我在网络上做了很多测试。添加了大量的单元测试。仍然不完美,但效果很好。欢迎提供反馈,我很乐意收到拉取请求或修复您发现的任何缺陷。

【讨论】:

  • 这和 Dom Christie 的回答一样
  • Paul,虽然这些项目具有相同的目标,但它们是单独的实现。这不是同一个答案。能够同时查看和比较它们对我很有帮助。
【解决方案3】:

理论上,您可以将其转换回来。您必须编写自己的 DOM 遍历代码并将 HTML 转换回 Markdown。

通常,Markdown 被认为是人类可读/可写信息的来源,这些信息被转换为 HTML 以进行进一步的标记和样式设置。

HTML 可以比 Markdown 复杂得多,并且可以无限嵌套和分割成标签。这就是为什么编写一个能够可靠地将 HTML 转换回 Markdown 的通用转换器如此值得怀疑的原因。试想一下,所有的空白和段落都会再见,可能会给人眼造成可怕的混乱。

我的建议是:除非您自己生成原始 HTML 并且知道它的组成,否则不要将其转换回 Markdown。始终保留 Markdown 版本,并在需要时转换为 HTML。

【讨论】:

  • 您想要转换 HTML 的一种情况 -> Markdown 是在所见即所得的编辑器中。它们中的大多数以 HTML 或 XHTML 格式提供文本。最好将其转换为 MarkDown 进行存储。
【解决方案4】:

虽然不是降价转换器,wiky 在将 HTML 转换为 wiki 标记(反之亦然)方面做得不错。
这是用 JS 编写的,只需一行即可完成转换。这在将从所见即所得编辑器获得的 HTML 转换为 wiki 标记方面做得不错,然后可以将其传递到后端进行进一步处理。
好吧,在并非所有 HTML 标记都可以转换之前进行了注释,因此您可能必须在保存之前去除或转义这些 HTML 标记。

【讨论】:

    猜你喜欢
    • 2012-08-07
    • 2011-04-01
    • 2012-12-30
    • 1970-01-01
    • 2010-12-13
    • 2019-05-28
    • 2011-07-17
    • 2017-05-11
    • 1970-01-01
    相关资源
    最近更新 更多