• html转markdown


    本篇文章主要介绍使用java类库将html转为markdown

    java语言html转为markdown

    remark

    使用方法

    1. 添加pom依赖
    <dependency>
        <groupId>com.kotcrab.remark</groupId>
        <artifactId>remark</artifactId>
        <version>1.2.0</version>
    </dependency>
    
    1. java代码示例
        @Test
        public void html2Md() {
            Remark remark = new Remark();
            String html = "<p><b>测试</b><ul><li>列表1</li><li>列表2</li></ul><p><img src=\"https://static001.geekbang.org/resource/image/cb/55/cb18e672732ab76fc61d60bdf66bf855.png\" alt=\"abc\"></p><a href=\"www.baidu.com\">百度</a></p>";
            String markdown = remark.convertFragment(html);
            System.out.println(markdown);
        }
    

    结果

    **测试**
    
     *  列表1
     *  列表2
    
    ![abc][]
    
    百度
    
    [abc]: https://static001.geekbang.org/resource/image/cb/55/cb18e672732ab76fc61d60bdf66bf855.png
    

    缺点

    1. 图片无法转换成直接可以使用的
    2. 超链接无法正确提取
    3. 很久没有维护了
    4. 高等数学的括号无法正常转换

    flexmark

    使用方法

    1. pom.xml
    <dependency>
        <groupId>com.vladsch.flexmark</groupId>
        <artifactId>flexmark-all</artifactId>
        <version>0.64.0</version>
        <scope>test</scope>
    </dependency>
    

    测试用了flexmark-all,可以根据功能选择自己需要的
    2. java示例

    @Test
    public void html2Md01() {
        String html = "<p><b>测试</b><ul><li>列表1</li><li>列表2</li></ul><p><img src=\"https://static001.geekbang.org/resource/image/cb/55/cb18e672732ab76fc61d60bdf66bf855.png\" alt=\"abc\"></p><a href=\"www.baidu.com\">百度</a></p>";
        FlexmarkHtmlConverter converter = FlexmarkHtmlConverter.builder().build();
        System.out.println(converter.convert(html));
    }
    

    输出

    **测试**
    
    * 列表1
    * 列表2
    
    ![abc](https://static001.geekbang.org/resource/image/cb/55/cb18e672732ab76fc61d60bdf66bf855.png)
    [百度](www.baidu.com)
    
    <br />
    

    存在的问题

    1. 高等数学公式无法转换

    优点

    1. 更新时间相对较新
    2. 准确率相对较高

    参考

    flexmark示例
    数学公式转换

    学习交流:513650703

  • 相关阅读:
    汇编语言(王爽 第三版)实验十四
    汇编语言(王爽 第三版)实验十三
    汇编语言(王爽 第三版)实验十二
    汇编语言(王爽 第三版)实验十一
    汇编语言(王爽 第三版)实验十
    汇编语言(王爽 第三版)实验九
    汇编语言(王爽 第三版)实验七
    android SQLite数据库的基本操作
    Android异步处理系列文章四篇之四 AsyncTask的实现原理
    Android异步处理系列文章四篇之三
  • 原文地址:https://www.cnblogs.com/javashare/p/16274659.html
Copyright © 2020-2023  润新知