Administrator
发布于 2024-06-13 / 112 阅读
0
0

flexmark——markdown转换工具使用

flexmark——markdown转换工具使用

github地址

https://github.com/vsch/flexmark-java

gitee地址

https://gitee.com/mirrors/flexmark-java

1、md to html

代码

String md = "# 标题一\n" +
                "## 标题二\n" +
                "### 标题三\n" +
                "#### 标题四\n" +
                "##### 标题五\n" +
                "> 这是引用文字\n" +
                "- 无序列表\n" +
                "- 无序列表\n" +
                "- 无序列表\n" +
                "> 代码块\n" +
                "```json\n" +
                "{\n" +
                "\t\"test\":\"value\"\n" +
                "}\n" +
                "```\n" +
                "\n" +
                "> 表格\n" +
                "\n" +
                "| 1    | 2    | 3    |\n" +
                "| ---- | ---- | ---- |\n" +
                "| a    | b    | c    |";
//文件转换
//数据解析选项
DataHolder OPTIONS = new MutableDataSet()
    .set(Parser.EXTENSIONS, Arrays.asList(
        DefinitionExtension.create(),
        EmojiExtension.create(),
        FootnoteExtension.create(),
        StrikethroughSubscriptExtension.create(),
        InsExtension.create(),
        SuperscriptExtension.create(),
        TablesExtension.create(),
        TocExtension.create(),
        SimTocExtension.create(),
        WikiLinkExtension.create()
    ));
//解析器
Parser parser = Parser.builder(OPTIONS).build();
//解析markdown格式文本
Document document = parser.parse(md);
//HTML文档渲染器
HtmlRenderer renderer = HtmlRenderer.builder(OPTIONS).build();
String HTMLStr = renderer.render(document);
System.out.println(HTMLStr);

输出

image-20220906184200957

2、md to docx

代码

String md = "# 标题一\n" +
                "## 标题二\n" +
                "### 标题三\n" +
                "#### 标题四\n" +
                "##### 标题五\n" +
                "> 这是引用文字\n" +
                "- 无序列表\n" +
                "- 无序列表\n" +
                "- 无序列表\n" +
                "> 代码块\n" +
                "```json\n" +
                "{\n" +
                "\t\"test\":\"value\"\n" +
                "}\n" +
                "```\n" +
                "\n" +
                "> 表格\n" +
                "\n" +
                "| 1    | 2    | 3    |\n" +
                "| ---- | ---- | ---- |\n" +
                "| a    | b    | c    |";
//文件转换
//数据解析选项
DataHolder OPTIONS = new MutableDataSet()
    .set(Parser.EXTENSIONS, Arrays.asList(
        DefinitionExtension.create(),
        EmojiExtension.create(),
        FootnoteExtension.create(),
        StrikethroughSubscriptExtension.create(),
        InsExtension.create(),
        SuperscriptExtension.create(),
        TablesExtension.create(),
        TocExtension.create(),
        SimTocExtension.create(),
        WikiLinkExtension.create()
    ));
//解析器
Parser parser = Parser.builder(OPTIONS).build();
//解析markdown格式文本
Document document = parser.parse(md);
//docx文档渲染器
DocxRenderer renderer = DocxRenderer.builder(OPTIONS).build();
//docx文档默认模板(空白)
WordprocessingMLPackage template = DocxRenderer.getDefaultTemplate();
//渲染解析后的markdown文本至模板
renderer.render(document,template);
File file = new File("D://test.docx");
try {
    //将经过渲染的docx文档保存至指定文件
    template.save(file, Docx4J.FLAG_SAVE_ZIP_FILE);
} catch (Docx4JException e) {
    e.printStackTrace();
}

文件内容

image-20220906184242696


评论