本篇文章主要介绍使用java类库将html转为markdown
java语言html转为markdown
remark
使用方法
- 添加pom依赖
<dependency> <groupId>com.kotcrab.remark</groupId> <artifactId>remark</artifactId> <version>1.2.0</version> </dependency>
-
java代码示例
@Test public void html2Md() { Remark remark = new Remark(); String html = "<p><b>测试</b><ul><li>列表1</li><li>列表2</li></ul><p><img src=\"https://file.cfanz.cn/uploads/png/2022/05/15/13/5Z2GY589I0.png\" alt=\"abc\"></p><a rel="nofollow" href=\"www.baidu.com\">百度</a></p>"; String markdown = remark.convertFragment(html); System.out.println(markdown); }
结果
**测试** * 列表1 * 列表2
百度
### 缺点
1. 图片无法转换成直接可以使用的
2. 超链接无法正确提取
3. 很久没有维护了
4. 高等数学的括号无法正常转换
## flexmark
### 使用方法
1. pom.xml
<dependency>
<groupId>com.vladsch.flexmark</groupId>
<artifactId>flexmark-all</artifactId>
<version>0.64.0</version>
<scope>test</scope>
</dependency>
测试用了`flexmark-all`,可以根据功能选择自己需要的
2. java示例
@Test
public void html2Md01() {
String html = "<p><b>测试</b><ul><li>列表1</li><li>列表2</li></ul><p><img src=\"https://file.cfanz.cn/uploads/png/2022/05/15/13/5Z2GY589I0.png\" alt=\"abc\"></p><a rel="nofollow" href=\"www.baidu.com\">百度</a></p>";
FlexmarkHtmlConverter converter = FlexmarkHtmlConverter.builder().build();
System.out.println(converter.convert(html));
}
输出
测试
- 列表1
- 列表2
百度
<br />
### 存在的问题
1. 高等数学公式无法转换
### 优点
1. 更新时间相对较新
2. 准确率相对较高
## 参考
[flexmark示例](https://gitee.com/code_share_1001/flexmark-java/tree/master/flexmark-java-samples)
[数学公式转换](https://www.jianshu.com/p/383e8149136c)
> 学习交流:513650703