之前的博客系统的列表页会有在markdown编辑器中的特殊字符,比如标题的字符#之类的,在列表页进行展示的时候,我们需要将这些字符进行筛选.
对这些字符进行筛选,我们可以通过排设计正则表达式进行筛选,也可以使用组件的方式进行筛选.下面我来总结一下,使用组件的方式进行筛选. 这里使用的组件是flexmark-all.我们的做法是:使用flexmark-all框架中的HtmlRenderer将Markdown文本解析为HTML,然后使用Jsoup库从HTML中提取纯文本内容
目录
1. 引入flexmark-all组件的环境依赖
2. 创建工具类RemoveMarkerdownTags
3. 在返回给前端的路由中进行添加筛选
1. 引入flexmark-all组件的环境依赖
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.1.0</version>
</dependency>
2. 创建工具类RemoveMarkerdownTags
package com.example.demo.common;
import com.vladsch.flexmark.html.HtmlRenderer;
import com.vladsch.flexmark.parser.Parser;
/**
* Created with IntelliJ IDEA.
* Description:移除markdown格式的特殊字符,使用flexmark-java库进行去除
* User: YAO
* Date: 2023-07-24
* Time: 8:43
*/
public class RemoveMarkdownTags {
// 1. 在pom.xml中引入依赖
// 2.构造方法实现传入markdown字符串,对其进行解析
public static String removeMarkdownTags(String markdown) {
Parser parser = Parser.builder().build();
HtmlRenderer renderer = HtmlRenderer.builder().build();
// 将markdown文本解析成html
String html = renderer.render(parser.parse(markdown));
// 使用jsoup库从html中获取纯文本内容
String plainText = org.jsoup.Jsoup.parse(html).text();
return plainText;
}
}
3. 在返回给前端的路由中进行添加筛选
主要存在改动的是个人主页请求的mylist 以及 主页请求的分页 listbypage
可以看出,显示的内容中特殊的字符已经被筛选了.