【问题标题】:HTML to Markdown with Java使用 Java 将 HTML 转换为 Markdown
【发布时间】:2010-09-08 17:49:09
【问题描述】:

有没有一种简单的方法可以用 JAVA 将 HTML 转换为 markdown?

我目前正在使用 Java MarkdownJ 库将 markdown 转换为 html。

import com.petebevin.markdown.MarkdownProcessor;
...
public static String getHTML(String markdown) {
    MarkdownProcessor markdown_processor = new MarkdownProcessor();
    return markdown_processor.markdown(markdown);
}

public static String getMarkdown(String html) {
/* TODO Ask stackoverflow */
}

【问题讨论】:

    标签: java markdown


    【解决方案1】:

    有一个很棒的 JS 库,叫做Turndown,你可以在网上试试here。它适用于接受答案错误的html。

    我需要它用于 Java(作为问题),所以我移植了它。 Java 库称为CopyDown,它具有与 Turndown 相同的测试套件,并且我已经通过实际示例进行了尝试,接受的答案是抛出错误。

    使用 gradle 安装:

    dependencies {
            compile 'io.github.furstenheim:copy_down:1.0'
    }
    

    然后使用它:

    CopyDown converter = new CopyDown();
    String myHtml = "<h1>Some title</h1><div>Some html<p>Another paragraph</p></div>";
    String markdown = converter.convert(myHtml);
    System.out.println(markdown);
    > Some title\n==========\n\nSome html\n\nAnother paragraph\n
    

    附言。它有 MIT 许可证

    【讨论】:

      【解决方案2】:

      我正在研究同一个问题,并尝试了几种不同的技术。

      上面的答案可以工作。您可以使用jTidy library 进行初始清理工作并将HTML 转换为XHTML。您使用上面链接的XSLT stylesheet

      不幸的是,在 Java 中没有提供一站式功能的库。您可以尝试将 Python 脚本 html2text 与 Jython 一起使用,但我还没有尝试过!

      【讨论】:

        【解决方案3】:

        如果您正在使用 WMD 编辑器并想在服务器端获取 markdown 代码,只需在加载 wmd.js 脚本之前使用这些选项:

        wmd_options = {
                // format sent to the server.  can also be "HTML"
                output: "Markdown",
        
                // line wrapping length for lists, blockquotes, etc.
                lineLength: 40,
        
                // toolbar buttons.  Undo and redo get appended automatically.
                buttons: "bold italic | link blockquote code image | ol ul heading hr",
        
                // option to automatically add WMD to the first textarea found.
                autostart: true
            };
        

        【讨论】:

          【解决方案4】:

          有一个名为 pandoc 的 Haskell 库可以在大多数标记格式之间进行转换。
          虽然不是Java库,但可以是used through its CLI in Java

          你可以得到和install the latest version from here。阅读getting started guides here

          var command = "pandoc --to=markdown_strict --output=result.md input.html";
          var pandoc = new ProcessBuilder()
                  .command(command.split(" "))
                  .directory(new File(".")) // Working directory
                  .start();
          pandoc.waitFor();
          // The output result.md will be created in the working directory
          

          这个工具也可以是used in GitHub Actions workflows

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-04-07
            • 2021-05-23
            • 2017-05-11
            • 2018-04-13
            • 2011-10-28
            相关资源
            最近更新 更多