在使用Markdown编辑器时,编辑出来的富文本不能够直接对html页面直接使用,需要改变一下:
首先需要加一下pom依赖:
<!--markdown处理转html -->
<dependency>
<groupId>com.atlassian.commonmark</groupId>
<artifactId>commonmark</artifactId>
<version>0.10.0</version>
</dependency>
<!-- markdown表格处理 -->
<dependency>
<groupId>com.atlassian.commonmark</groupId>
<artifactId>commonmark-ext-gfm-tables</artifactId>
<version>0.10.0</version>
</dependency>
增加一个转换的工具类:
import org.commonmark.node.Node;
import org.commonmark.parser.Parser;
import org.commonmark.renderer.html.HtmlRenderer;
import com.hxz.entity.Article;
public class CommonmarkUtil {
public Article transferMarkDownToHtml (Article article){
Parser parser = Parser.builder().build();
Node document = parser.parse(article.getContent());
HtmlRenderer renderer = HtmlRenderer.builder().build();
String htmlContent = renderer.render(document);
article.setContent(htmlContent);
return article;
}
}
serviceImpl类实现方法(有缓存方法)
/**
* 文章详情
*/
@Cacheable(value="findArticleById",key="'detail_'+#id")
public Map<String, Article> getById(String id) {
Map<String, Article> map = new LinkedHashMap<String, Article>();
Article article = new Article();
CommonmarkUtil util = new CommonmarkUtil();
article = articleMapper.findOne(id);
article = util.transferMarkDownToHtml(article);
map.put("article", article);
return map;
}
诸位亲看:
解析出来的带有如此参数:需要加一下css样式和js我这里直接用的:
选择下载就好!
https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript
大功告成