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);
    }
}

输出结果:

相关推荐
SeaDhdhdhdhdh3 小时前
MCP Server 搭建与使用指南
java·ai·agent·mcp
李姆斯3 小时前
为啥Agent在coding表现这么好,但是在别的领域就是差的不少?
前端·agent·ai编程
YH55269843 小时前
GPT‑5.6 Sol 原本支持 1M 上下文,Codex 现已放开此前限制,如何看待这次调整?
java·jvm·人工智能·gpt·算法·chatgpt
AI_小站4 小时前
刚面完百度的 Agent 开发岗,我才发现:世界就是个巨大的草台班子
java·开发语言·人工智能·spring·百度·langchain
许彰午5 小时前
03-三种开发模式
java·架构
涟漪海洋5 小时前
创建最新的JDK25镜像,非root环境启动
java
Rain的Java大神之路5 小时前
短信接口被狂刷怎么处理
java·运维·后端·web安全·面试·架构·xss
鱼与宇5 小时前
前端Web(html+css+js+vue3)
前端
2602_959960926 小时前
谢飞机面试大厂:Spring Boot、JVM、Redis、Kafka、微服务与音视频搜索场景求生实录
java·jvm·spring boot·redis·面试题
Zane1994126 小时前
CAS 与原子类:Java 如何实现无锁编程
java·开发语言