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);
输出
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();
}
文件内容