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

评论区

热门分享

扫码入社