朋也社区之前使用的方法是,在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个。。