zoukankan      html  css  js  c++  java
  • 使用flexmark将MarkDown转为HTML

    1. 引入对应的依赖

              <!-- https://mvnrepository.com/artifact/com.vladsch.flexmark/flexmark -->
              <dependency>
                  <groupId>com.vladsch.flexmark</groupId>
                  <artifactId>flexmark</artifactId>
                  <version>0.34.18</version>
              </dependency>
              <!-- https://mvnrepository.com/artifact/com.vladsch.flexmark/flexmark-util -->
              <dependency>
                  <groupId>com.vladsch.flexmark</groupId>
                  <artifactId>flexmark-util</artifactId>
                  <version>0.34.18</version>
              </dependency>
              <!-- https://mvnrepository.com/artifact/com.vladsch.flexmark/flexmark-ext-tables -->
              <dependency>
                  <groupId>com.vladsch.flexmark</groupId>
                  <artifactId>flexmark-ext-tables</artifactId>
                  <version>0.34.18</version>
              </dependency>    
    2. 新建工具类

      package com.fdzang.mblog.utils;
      
      import com.vladsch.flexmark.ast.Node;
      import com.vladsch.flexmark.ext.tables.TablesExtension;
      import com.vladsch.flexmark.html.HtmlRenderer;
      import com.vladsch.flexmark.parser.Parser;
      import com.vladsch.flexmark.parser.ParserEmulationProfile;
      import com.vladsch.flexmark.util.options.MutableDataSet;
      
      import java.util.Arrays;
      
      public class MarkDown2HtmlUtils {
           /**
            * 直接将markdown语义的文本转为html格式输出
            * @param content markdown语义文本
            * @return
            */
           public static String markdown2Html(String content) {
               String html = parse(content);
               return html;
           }
           /**
            * markdown to image
            * @param content markdown contents
            * @return parse html contents
            */
           public static String parse(String content) {
               MutableDataSet options = new MutableDataSet();
               options.setFrom(ParserEmulationProfile.MARKDOWN);
               //enable table parse!
               options.set(Parser.EXTENSIONS, Arrays.asList(TablesExtension.create()));
               Parser parser = Parser.builder(options).build();
               HtmlRenderer renderer = HtmlRenderer.builder(options).build();
               Node document = parser.parse(content);
               return renderer.render(document);
           }
      }
  • 相关阅读:
    public,protected,private辨析
    转载---Java集合对象的深度复制与普通复制
    SSM框架学习之高并发秒杀业务--笔记4-- web层
    PCB布线总的原则
    模拟电子技术目录
    放大器(PA+LAN)在射频上的应用
    AD软件Bug和自我失误的对战
    二、cadence焊盘与封装制作操作步骤详细说明
    图腾柱电路工作原理
    转载:介绍AD另外一种奇葩的多通道复用的方法
  • 原文地址:https://www.cnblogs.com/fdzang/p/9556874.html
Copyright © 2011-2022 走看看