37

有没有一种简单的方法可以使用 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 */
}
4

4 回答 4

9

有一个很棒的 JS 库,叫做Turndown,你可以在这里在线试用。它适用于接受答案错误的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

PS。它有 MIT 许可证

于 2020-05-30T16:30:38.307 回答
3

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

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

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

于 2008-10-07T12:50:26.273 回答
2

如果您正在使用 WMD 编辑器并想在服务器端获取降价代码,只需在加载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
    };
于 2009-04-12T00:36:20.340 回答
0

有一个名为pandoc的 Haskell 库,可以在大多数标记格式之间进行转换。
虽然它不是 Java 库,但可以通过 Java 中的 CLI 使用它

您可以从此处获取并安装最新版本。在此处阅读入门指南

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

此工具也可用于 GitHub Actions 工作流程

于 2021-12-03T09:33:49.417 回答