个人博客系统 -- 博客列表页删除Markdown字符

news2024/9/20 14:42:15

        之前的博客系统的列表页会有在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 

 

可以看出,显示的内容中特殊的字符已经被筛选了. 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/802775.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Codeforces Round 886 (Div. 4)F题解

文章目录 [We Were Both Children](https://codeforces.com/contest/1850/problem/F)问题建模问题分析1.分析到达的点与跳跃距离的关系2.方法1倍数法累计每个点所能达到的青蛙数代码 方法2试除法累计每个点能到达的青蛙数代码 We Were Both Children 问题建模 给定n个青蛙每次…

Mac平台首选原生轻量级的嵌入式数据库引擎:Native SQLite Manager for Mac

亲爱的读者&#xff0c;如果你是一位在Mac平台上使用SQLite数据库的开发者或数据分析师&#xff0c;那么本文将为你介绍一款非常实用的工具——原生SQLite管理器。 SQLite是一种轻量级的嵌入式数据库引擎&#xff0c;被广泛应用于各种应用程序和系统中。它具有高效、可靠和易于…

ThirdAI 的私有和可个性化神经数据库:增强检索增强生成(第 3/3 部分)

这是我们关于使用检索增强生成构建 AI 代理的系列的最后一章 &#xff08;3/3&#xff09;。在第 1/3 部分中&#xff0c;我们讨论了断开连接的嵌入和基于矢量的检索管道的局限性。在第 2/3 部分中&#xff0c;我们介绍了神经数据库&#xff0c;它消除了存储和操作繁重且昂贵的…

GitHub上怎么寻找项目?

前言 下面由我精心整理的关于github项目资源搜索的一些方法&#xff0c;这些方法可以帮助你更快更精确的搜寻到你需要的符合你要求的项目。 写文章不易&#xff0c;如果这一篇问文章对你有帮助&#xff0c;求点赞求收藏~ 好&#xff0c;下面我们直接进入正题——> 首先我…

接口测试必备的,2种常⽤的JSON解析⽅法

JSON简介 一、JSON是什么&#xff1f; JSON: JavaScript Object Notation JS对象简谱&#xff0c;是一种轻量级的数据交换模式。 二、JSON语法&#xff1a; 对象中通过键值对 (key: value)的形式来表示对象的属性 注意&#xff1a;value即可以表示属性变量&#xff0c;又可…

【数据结构(C++版)】哈希表(散列表)

目录 1. 散列表的概念 2. 散列函数的构造方法 2.1 直接定址法 2.2 除留余数法 2.3 数字分析法 2.4 平方取中法 3. 处理冲突的方法 3.1 开放定址法 3.1.1 线性探测法 3.1.2 平方探测法 3.1.3 双散列法 3.1.4 伪随机序列法 3.2 拉链法&#xff08;链接法&#xff09…

数据结构---并查集

目录标题 为什么会有并查集并查集的原理模拟实现并查集准备工作构造函数FindRootUnionSetCount 并查集实战题目一&#xff1a;省份数量题目解析题目二&#xff1a;等式方程的可满足性题目解析 为什么会有并查集 这里可以使用生活中的一个例子来带着大家理解并查集&#xff0c;…

机器学习03-数据理解(小白快速理解分析Pima Indians数据集)

机器学习数据理解是指对数据集进行详细的分析和探索&#xff0c;以了解数据的结构、特征、分布和质量。数据理解是进行机器学习项目的重要第一步&#xff0c;它有助于我们对数据的基本属性有全面的了解&#xff0c;并为后续的数据预处理、特征工程和模型选择提供指导。 数据理解…

从Arweave开始:4EVERLAND存储签入挑战开始

嗨&#xff0c;4evers&#xff0c; 今天&#xff0c;我们热烈欢迎您参加 Galxe 上的 4EVERLAND “Arweave 入门”活动。这是一项长期的重头活动&#xff0c;所有参与的用户都有机会获得相应的奖励。 Arweave 是一种革命性的去中心化存储协议&#xff0c;为寻求安全可靠的有价…

基于飞桨paddle的极简方案构建手写数字识别模型测试代码

基于飞桨paddle的极简方案构建手写数字识别模型测试代码 原始测试图片为255X252的图片 因为是极简方案采用的是线性回归模型&#xff0c;所以预测结果数字不一致 本次预测的数字是 [[3]] 测试结果&#xff1a; PS E:\project\python> & D:/Python39/python.exe e:/pro…

第五章 数组

定义 数组是一组相同类型元素的集合&#xff0c;但我们需要创建多个相同类型的变量时&#xff0c;只需要创建一个类型的数组&#xff0c;就相当于同时创建很多相同类型的变量。 一维数组 数组如何创建 从定义来入手看一下数组的创建&#xff1a; type_t arr_name[const_n];…

《向量数据库指南》——FAISS和Chroma:两种流行的向量数据库的比较

目录 FAISS Chroma 比较 向量数据库是一种可以存储和检索高维向量数据的数据库,高维向量数据是一种可以表示任何类型数据的A.I原生方式,比如文本、图像、音频等。向量数据库可以用于实现各种基于相似度搜索和聚类的A.I应用,比如语义搜索、推荐系统、图像识别等。在本文中…

Spring Boot——Spring Boot自动配置原理

系列文章目录 Spring Boot启动原理 Spring Boot自动配置原理 系列文章目录前言一、Spring Boot自动配置原理剖析二、自动配置生效三、总结&#xff1a; 前言 一直在使用Spring Boot特别好奇的是为什么Spring Boot比Spring在项目构建和开发过程中要方便很多&#xff0c;无需编…

二叉树的层序遍历(两种方法:迭代+递归)

题目&#xff1a; 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;[[3],[9,20],[15,7]] 解题思路&#xff1a;迭代法…

【设计模式——学习笔记】23种设计模式——组合模式Composite(原理讲解+应用场景介绍+案例介绍+Java代码实现)

案例引入 学校院系展示 编写程序展示一个学校院系结构: 需求是这样&#xff0c;要在一个页面中展示出学校的院系组成&#xff0c;一个学校有多个学院&#xff0c;一个学院有多个系 【传统方式】 将学院看做是学校的子类&#xff0c;系是学院的子类&#xff0c;小的组织继承大…

位1的个数,编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1‘ 的个数(也被称为汉明重量)。

题记&#xff1a; 编写一个函数&#xff0c;输入是一个无符号整数&#xff08;以二进制串的形式&#xff09;&#xff0c;返回其二进制表达式中数字位数为 ‘1’ 的个数&#xff08;也被称为汉明重量&#xff09;。 提示&#xff1a; 请注意&#xff0c;在某些语言&#xff…

MySQL使用xtrabackup备份和恢复教程

1、xtrabackup说明 xtrabackup是percona开源的mysql物理备份工具。 xtrabackup 8.0支持mysql 8.0版本的备份和恢复。 xtrabackup 2.4支持mysql 5.7及以下版本的备份和恢复。 这里我以xtrabackup 8.0为例讲解备份和恢复的具体操作方法。 xtrabackup 2.4版本的使用上和8.0版本相…

PX4从放弃到精通(二十九):传感器冗余机制

文章目录 前言一、parametersUpdate二、imuPoll三、 put四、 confidence五、 get_best 前言 PX4 1.13.2 一个人可以走的更快&#xff0c;一群人才能走的更远&#xff0c;可加文章底部微信名片 代码的位置如下 PX4冗余机制主要通过传感读数错误计数和传感器的优先级进行选优 …

解决[Vue Router warn]: No match found for location with path “/day“问题

首先是升级vue-router4.0后会警告[Vue Router warn]: No match found for location with path "/day" 找了许久解决方案如下&#xff1a; 一、404页面不需要再异步路由后边添加&#xff0c;直接放到静态路由里即可 二、要注意不能写name&#xff0c;否则会刷新默认…

Parameter ‘roleList‘ not found.

Parameter roleList not found. Available parameters are [arg1, arg0, param1, param2] 多半是Mapper层传入多个参数的时候&#xff0c;没有加Param注解&#xff0c;导致BindException错误