tale
tale copied to clipboard
TaleUtils 类中 mdToHtml 存在性能问题
具体分析可以看我的博客: https://www.zhangaoo.com/article/index-page-slow-load
简单的解决办法就是加缓存,同时需要维护缓存,最简单粗暴的方法就是编辑和删除文章时清理全部缓存:
public static String mdToHtml(String markdown) {
if (StringKit.isBlank(markdown)) {
return "";
}
String cacheContent = cache.get(String.valueOf(markdown.hashCode()));
if(cacheContent != null){
return cacheContent;
}
List<Extension> extensions = Arrays.asList(TablesExtension.create());
Parser parser = Parser.builder().extensions(extensions).build();
Node document = parser.parse(markdown);
HtmlRenderer renderer = HtmlRenderer.builder()
.attributeProviderFactory(context -> new LinkAttributeProvider())
.extensions(extensions).build();
String content = renderer.render(document);
content = Commons.emoji(content);
// 支持网易云音乐输出
if (TaleConst.BCONF.getBoolean(ENV_SUPPORT_163_MUSIC, true) && content.contains(MP3_PREFIX)) {
content = content.replaceAll(MUSIC_REG_PATTERN, MUSIC_IFRAME);
}
// 支持gist代码输出
if (TaleConst.BCONF.getBoolean(ENV_SUPPORT_GIST, true) && content.contains(GIST_PREFIX_URL)) {
content = content.replaceAll(GIST_REG_PATTERN, GIST_REPLATE_PATTERN);
}
cache.set(String.valueOf(markdown.hashCode()),content,-1);
return content;
}
稍后我可以提个PR