Java类库解析markdown文本
朋也社区之前使用的方法是,在java代码里调用js,然后通过调用js里的方法来解析markdown的,但性能太渣,然后在github上找了找,发现 pegdown 挺好,就折腾了下,完全可以实现朋也社区需要的功能.
引入依赖
<dependency>
<groupId>org.pegdown</groupId>
<artifactId>pegdown</artifactId>
<version>1.6.0</version>
</dependency>
解析类配置
private final static PegDownProcessor md = new PegDownProcessor(Extensions.ALL_WITH_OPTIONALS);
public static String pegDown(String content) {
return md.markdownToHtml(content);
}
最后调用
public String marked(String content) {
//处理@
List<String> users = StrUtil.fetchUsers(content);
for (String user : users) {
content = content.replace("@" + user, "[@" + user + "](/user/" + user + ")");
}
//markdown 转 html 并返回
return Jsoup.clean(MarkdownUtil.pegDown(content), Whitelist.relaxed());
}
担心markdown会遭到xss攻击?
Jsoup.clean()
即可解决!
唯一缺陷是,jar包有6-7个。。
源码详见:http://bbs.tomoya.cn/about 原文链接:http://bbs.tomoya.cn/t/30
本文由 创作,采用 知识共享署名4.0 国际许可协议进行许可。本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为: 2020/07/15 06:41