Java8适配的markdown转换html工具(FlexMark)

坐标地址:

复制代码
<dependency>
    <groupId>com.vladsch.flexmark</groupId>
    <artifactId>flexmark-all</artifactId>
    <version>0.60.0</version>
</dependency>

工具类代码:

java 复制代码
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);
    }

}

工具类测试:

java 复制代码
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" +
                "![图片描述](https://www.baidu.com/img/bd_logo1.png)\n" +
                "## 表格\n" +
                "| 表头1 | 表头2 | 表头3 |\n" +
                "|-------|-------|-------|\n" +
                "| 单元格1 | 单元格2 | 单元格3 |\n" +
                "| 单元格4 | 单元格5 | 单元格6 |";
        String html = MarkdownUtil.markdownToHtml(markdownContent);
        System.out.println(html);
    }
}

输出结果:

相关推荐
星空1 小时前
金蝶苍穹build.gradle配置
java·build.gradle
泯泷2 小时前
那段文字是谁删的?Yjs 14 正式版之前,一套删除归属方案的实现与边界
前端·javascript·算法
步行cgn4 小时前
Spring 基于 XML 的自动装配:byName 详解
java·后端·spring
野槐4 小时前
前端项目优化(有了我,会发生...)
前端
大帅点兵5 小时前
Apache Ant 1.9.9 完整讲解
java
LuTshoes5 小时前
spring ai 实战 手搓 PlaneExecuteAgent
java·人工智能·spring·ai
这料鬼有毒5 小时前
二刷hot100-73.矩阵置零
java
caoerzhong5 小时前
JeeWMS 开源仓库管理系统二次开发与接口对接实战:Java WMS 如何与 ERP、MES 和自动化设备打通
java·开源
aa小小5 小时前
【无标题】
前端
长谷深风1115 小时前
评测AI Agent:三种裁判各司其职
java·大数据·开发语言·人工智能·ai agent