坐标地址:
<dependency><groupId>com.vladsch.flexmark</groupId><artifactId>flexmark-all</artifactId><version>0.60.0</version>
</dependency>
工具类代码:
import com.vladsch.flexmark.ext.tables.TablesExtension;
import com.vladsch.flexmark.ext.toc.TocExtension;
import com.vladsch.flexmark.html.HtmlRenderer;
import com.vladsch.flexmark.parser.Parser;
import com.vladsch.flexmark.util.ast.Document;
import com.vladsch.flexmark.util.data.MutableDataSet;
import com.vladsch.flexmark.util.misc.Extension;import java.util.Arrays;public class MarkdownUtil {private static MutableDataSet options = new MutableDataSet();private static Parser parser;private static HtmlRenderer renderer;static {options.set(Parser.EXTENSIONS, Arrays.<Extension>asList(TocExtension.create(), TablesExtension.create()));parser = Parser.builder(options).build();renderer = HtmlRenderer.builder(options).build();}public static String markdownToHtml(String md) {Document document = parser.parse(md);return renderer.render(document);}}
工具类测试:
public class Main {public static void main(String[] args) {String markdownContent = "# 一级标题\n" +"## 二级标题\n" +"### 三级标题\n" +"#### 四级标题\n" +"##### 五级标题\n" +"###### 六级标题\n" +"## 段落\n" +"这是一段普通的段落。\n" +"## 列表\n" +"### 无序列表\n" +"- 项目1\n" +"- 项目2\n" +"- 项目3\n" +"### 有序列表\n" +"1. 项目1\n" +"2. 项目2\n" +"3. 项目3\n" +"## 链接\n" +"[百度](https://www.baidu.com)\n" +"## 图片\n" +"\n" +"## 表格\n" +"| 表头1 | 表头2 | 表头3 |\n" +"|-------|-------|-------|\n" +"| 单元格1 | 单元格2 | 单元格3 |\n" +"| 单元格4 | 单元格5 | 单元格6 |";String html = MarkdownUtil.markdownToHtml(markdownContent);System.out.println(html);}
}
输出结果:
