MarkdownToEditorjs 是一个 基于 Java 的 Markdown 转 Editor.js JSON 转换器。
它可以将 Markdown 文本解析为结构化的 Editor.js 块,方便在 Editor.js 编辑器中使用。
- 转换 标题、段落、列表、表格、代码块、引用、图片、链接 等常见 Markdown 块。
- 支持 无序列表、有序列表、任务列表。
- 支持 嵌套结构,如列表嵌套列表、引用嵌套引用。
- 保留 加粗、斜体、删除线、行内代码、标记等格式。
- 自动为 Editor.js 样式添加 CSS 类(如行内代码和高亮标记)。
public static void main(String[] args){
EditorjsEngine engine = new EditorjsEngine();
String markdown = """
# 一级标题
这是一个包含 **加粗**、*斜体*、~~删除线~~ 和 `行内代码` 的段落。
- 列表项 1
- 列表项 2
- 嵌套列表项 2.1
> 这是一个引用块。
System.out.println("Hello, Editor.js!");
""";
String editorJson = engine.parseToEditor(markdown);
System.out.println(editorJson);
}
输出结果为一组 Editor.js 块的 JSON 数组,每个块对应 Markdown 中的一个元素。
- 标题(H1-H6)
- 段落
- 加粗、斜体、删除线、行内代码
- 无序列表、有序列表、任务列表
- 表格
- 代码块
- 引用块
- 图片
- 链接
- 行内 HTML
- 水平分隔线
在项目中添加 flexmark 和 Jackson 依赖:
<dependency>
<groupId>com.vladsch.flexmark</groupId>
<artifactId>flexmark-all</artifactId>
<version>0.64.8</version>
</dependency>
<dependency>
<groupId>com.vladsch.flexmark</groupId>
<artifactId>flexmark-ext-tables</artifactId>
<version>0.64.8</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.32</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.15.2</version>
</dependency>