Java类库解析markdown文本
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