【java】浅谈如何将markdown文本转化成纯文本【项目需求】

一、背景介绍

在进行个人博客撰写时,实现了一个功能:用户登录博客之后,可以进行添加博客。在写博客时,项目中使用了markdown的api,因此用户书写博客后,博客是使用markdown格式进行展示。譬如下图:
在这里插入图片描述
点击 写博客之后,页面跳转来到markdown编辑器界面。
在这里插入图片描述
在markdown中写博客时,markdown有自己的格式。譬如像# 表示一级目录,## 表示二级目录… 当我们书写:#浅谈SpringBoot ,在markdown中表示一级目录,#是不存在的,#表示的是一种格式,但如果这行话不在markdown中展示的话,#是存在的,因此此时整篇文章通篇带着#、···这些字符的话,整篇文本就会显得杂乱。
在这里插入图片描述
markdown格式的文本在markdown中展示是没有问题的,一些特定字符如#会被markdown识别成特定格式,但是如果markdown格式不在markdown中展示,而是在别的地方展示,markdown格式中特殊字符如#没办法被识别自定转成特定格式,文章就会除了文本之外,还有很多特殊字符,这样的文章是杂乱无章,降低用户的可读性。此时我们就需要将markdown格式的文本转化成纯文本格式,以保证文章展示的可读性和高可用性。
在这里插入图片描述
那么如何去除markdown格式,转化成纯文本格式呢?

二、将markdown格式转化成纯文本格式

1、在pom.xml中添加依赖

在pom.xml中添加下述依赖:
在这里插入图片描述
依赖:

<dependency>
            <groupId>org.commonmark</groupId>
            <artifactId>commonmark</artifactId>
            <version>0.17.0</version>
</dependency>

2、java代码

import org.commonmark.node.Node;
import org.commonmark.parser.Parser;
import org.commonmark.renderer.text.TextContentRenderer;

/**
 * @author hzz
 * @createtime 2024/01/31
 * @function 去除markdown格式,将markdown转成纯文本
 */
public class MarkdownUtils {
    public static String removeMarkdownTags(String markdownText) {
        Parser parser = Parser.builder().build();
        Node document = parser.parse(markdownText);
        // HtmlRenderer renderer = HtmlRenderer.builder().build(); //可以markdown转html
        TextContentRenderer renderer = TextContentRenderer.builder().build();
        return renderer.render(document);
    }
}

在项目中调用上述java代码,将markdown格式转成纯文本格式。

在这里插入图片描述
在这里插入图片描述
去除markdown格式之后的文本效果:
在这里插入图片描述

  • 11
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中可以使用开源的markdown转换库来将markdown文本内容转换为HTML。推荐使用CommonMark-java和flexmark-java这两个库,两者都支持最新的Markdown标准,并提供了丰富的API和配置选项。 下面是一个使用CommonMark-javamarkdown文本转换为HTML的示例代码: ```java import org.commonmark.parser.Parser; import org.commonmark.renderer.html.HtmlRenderer; public class MarkdownToHtml { public static String convertToHtml(String markdown) { Parser parser = Parser.builder().build(); HtmlRenderer renderer = HtmlRenderer.builder().build(); return renderer.render(parser.parse(markdown)); } public static void main(String[] args) { String markdown = "# Hello, world!\n\nThis is a **markdown** text."; String html = convertToHtml(markdown); System.out.println(html); } } ``` 在上面的示例代码中,我们首先创建了一个Parser对象和一个HtmlRenderer对象,然后使用Parser对象将markdown文本解析为AST(Abstract Syntax Tree)格式,最后使用HtmlRenderer对象将AST格式文本转换为HTML格式文本。 如果要使用flexmark-java库,可以按照以下示例代码操作: ```java import com.vladsch.flexmark.ast.Node; import com.vladsch.flexmark.html.HtmlRenderer; import com.vladsch.flexmark.parser.Parser; public class MarkdownToHtml { public static String convertToHtml(String markdown) { Parser parser = Parser.builder().build(); Node document = parser.parse(markdown); HtmlRenderer renderer = HtmlRenderer.builder().build(); return renderer.render(document); } public static void main(String[] args) { String markdown = "# Hello, world!\n\nThis is a **markdown** text."; String html = convertToHtml(markdown); System.out.println(html); } } ``` 在上面的示例代码中,我们首先创建了一个Parser对象和一个HtmlRenderer对象,然后使用Parser对象将markdown文本解析为AST(Abstract Syntax Tree)格式,最后使用HtmlRenderer对象将AST格式文本转换为HTML格式文本

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值