Java创建markdown文件(一)

白色玫瑰 程序猿

时间: 2023-07-11 阅读: 1 字数:4227

{}
某天下午,我一如既往静静地坐在工位上,忽然得到一个任务,把某些内容以markdown为载体进行下载

Java创建markdown文件(一)

<a href="#1_1">1、概述</a> <a href="#2_4">2、探索之旅</a>

<a href="#21_6">2.1、使用</a>      <a href="#3_63">3、总结</a>   

1、概述

大家好,我是欧阳方超。题图是一颗葡萄。 某天下午,我一如既往静静地坐在工位上,忽然得到一个任务,把某些内容以markdown为载体进行下载,之前要么是通过Word要么是通过Excel进行下载。markdown编辑器或者插件倒是用过一些,但是用Java直接创建markdown文件却是没有操作过。于是就探索了一下。

2、探索之旅

抱着“这类功能一定有人实现过”的心态,开始了搜索之旅。最终发现了这个工具——markdown4j,该工程在github上地址为<a href="https://github.com/mstao/markdown4j">https://github.com/mstao/markdown4j</a>,其是txtmark(https://github.com/rjeschke/txtmark)工程的分支。

2.1、使用

在Java工程中引入markdown4j的依赖,如下:

<!-- https://mvnrepository.com/artifact/fun.mingshan/markdown4j -->
<dependency>
   <groupId>fun.mingshan</groupId>
   <artifactId>markdown4j</artifactId>
   <version>1.0</version>
</dependency>

代码实现思路,在markdown4j工具jar中,TitleBlock、CodeBlock、TableBlock等Block类型的Block类型的类,它们可以分别创建markdown文件中的代码块、表格块、标题块等内容,在创建Markdown(markdown4j中的类)对象过程中,将创建Block类型的对象依次加入进来,最后使用jar包中MdWriter类中的write()方法即可将markdown文件写到本地。以下是完整实现代码:

import fun.mingshan.markdown4j.Markdown;
import fun.mingshan.markdown4j.type.block.TableBlock;
import fun.mingshan.markdown4j.type.block.TitleBlock;
import fun.mingshan.markdown4j.writer.MdWriter;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;

public class MarkdownTest {
   public static void main(String[] args) {
      //标题Block
      TitleBlock secondLevelTitleParamDesc = TitleBlock.builder().level(TitleBlock.Level.SECOND).content("价格说明\n").build();

      //表格中的行
      ArrayList<TableBlock.TableRow> rows = new ArrayList<>();
      TableBlock.TableRow tableRowOne = new TableBlock.TableRow();
      TableBlock.TableRow tableRowTwo = new TableBlock.TableRow();
      tableRowOne.setRows(Arrays.asList("20", "促销", "仅限本月"));
      tableRowTwo.setRows(Arrays.asList("40", "促销", "限制本周"));
      rows.add(tableRowOne);
      rows.add(tableRowTwo);
      //表格标题
      TableBlock tableBlock = TableBlock.builder()
            .titles(Arrays.asList("价格", "说明", "备注"))
            .rows(rows)
            .build();

      //构建markdown文件
      Markdown markdown = Markdown.builder()
            .name("价目")
            .block(secondLevelTitleParamDesc)
            .block(tableBlock)
            .build();

      //文件写入到本地
      try {
         MdWriter.write(markdown);
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

上述代码中,首先创建了一个二级标题——“价格说明”,需要说明的是我在标题后加了\n换行,否则理应出现在标题下方的内容却出现在了标题的右侧,也就是说没有换行,这就是加\n的原因,有其他更优雅办法的小伙伴可以在评论区留言交流;接着创建一个表格,包括第一行的表格标题以及下面两行的内容;然后使用链式写法构建markdown文件,包括给文档起名字发;最后把文件写到本地。

3、总结

markdown4j是在txtmark工程的基础上发展而来的;有没有其他创建markdown文件的方式,欢迎各位在评论区讨论。 我是欧阳方超,把事情做好了自然就有兴趣了,如果你喜欢我的文章,欢迎点赞、转发、评论加关注。

原文地址:https://blog.csdn.net/u012288582/article/details/127028424?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168905959516800227485936%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=168905959516800227485936&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-10-127028424-null-null.142^v88^control,239^v2^insert_chatgpt&utm_term=markdown

本文章网址:https://www.sjxi.cn/detil/7239afaa93cd40ecaca3c6014f23b6cf

最新评论

当前未登陆哦
登陆后才可评论哦

湘ICP备2021009447号

×

(穷逼博主)在线接单

QQ: 1164453243

邮箱: abcdsjx@126.com

前端项目代做
前后端分离
Python 爬虫脚本
Java 后台开发
各种脚本编写
服务器搭建
个人博客搭建
Web 应用开发
Chrome 插件编写
Bug 修复