# Vue中Html和Markdown互相转换

## 前言

最近想实现的一个功能,就是将系统中的博客进行导出成Markdown格式,后面经过了调研发现有两种方法能够满足需求,一个是Java后台中将HTML转换成Markdown, 然后导出。第二种方式是在客户端将Html转换成Markdown

## 前台处理

### MarkdownToHtml

#### 安装

前台处理Markdown转换成Html,使用的是一款Vue组件 `showdown`:[点我传送](https://github.com/showdownjs/showdown)

前端处理的好处是不需要占用后端的计算资源,因此首选是让客户端做这种处理的事情

首先我们需要安装依赖

```

npm install showdown --save

```

或者使用CDN

```

https://unpkg.com/showdown/dist/showdown.min.js

```

#### Markdown 转成 Html

```

var showdown = require('showdown'),

converter = new showdown.Converter(),

text = '# hello, markdown!',

html = converter.makeHtml(text);

```

### HtmlToMarkdown

#### 安装

前台处理Html转换成Markdown,使用的是一款Vue组件 `turndown`:[点我传送](https://github.com/domchristie/turndown)

首先安装依赖

```

npm install turndown --save

```

或使用CDN加速

```

```

#### 使用

```

// For Node.js

var TurndownService = require('turndown')

var turndownService = new TurndownService()

var markdown = turndownService.turndown('

Hello world!

')

```

## 后端处理

后端处理使用的是 `flexmark-java` :[点我传送](https://github.com/vsch/flexmark-java)

### 引入依赖

```

com.vladsch.flexmark

flexmark-all

${flexmark.version}

```

### MarkdownToHtml

```

/**

* Markdown转Html

* @param markdown

* @return

*/

public static String markdownToHtml(String markdown) {

MutableDataSet options = new MutableDataSet();

Parser parser = Parser.builder(options).build();

HtmlRenderer renderer = HtmlRenderer.builder(options).build();

Node document = parser.parse(markdown);

String html = renderer.render(document);

return html;

}

```

### HtmlToMarkdown

```

/**

* Html 转 Markdown

* @param html

* @return

*/

public static String htmlToMarkdown(String html) {

MutableDataSet options = new MutableDataSet();

String markdown = FlexmarkHtmlConverter.builder(options).build().convert(html);

System.out.println(markdown);

return markdown;

}

```

一键复制

编辑

Web IDE

原始数据

按行查看

历史

vue中将md转成html,Vue/Vue中Html和Markdown互相转换/README.md · 倚栏听风/LearningNotes - Gitee.com...相关推荐

  1. vue 转换成 html,Vue/Vue中Html和Markdown互相转换/README.md · cyh90/LearningNotes - Gitee.com...

    # Vue中Html和Markdown互相转换 ## 前言 最近想实现的一个功能,就是将系统中的博客进行导出成Markdown格式,后面经过了调研发现有两种方法能够满足需求,一个是Java后台中将HT ...

  2. blue html中转换,Vue/Vue中Html和Markdown互相转换/README.md · bluemoon/LearningNotes - Gitee.com...

    # Vue中Html和Markdown互相转换 ## 前言 最近想实现的一个功能,就是将系统中的博客进行导出成Markdown格式,后面经过了调研发现有两种方法能够满足需求,一个是Java后台中将HT ...

  3. html markdown 互相转换,Vue/Vue中Html和Markdown互相转换/README.md · 撒欢大魔王/LearningNotes - Gitee.com...

    # Vue中Html和Markdown互相转换 ## 前言 最近想实现的一个功能,就是将系统中的博客进行导出成Markdown格式,后面经过了调研发现有两种方法能够满足需求,一个是Java后台中将HT ...

  4. vue脚手架项目打包成app_React和Vue脚手架项目打包编译后如何打开

    1.React项目 1.安装npm install -g serve 2.package.json文件加入 "homepage":"http://myname.githu ...

  5. Hexo 博客添加 README.md 以及部署到 GitHub 丢失/显示不正常解决方法

    GitHub 项目的README.md为自述文件,可对该项目进行介绍,解释等. 使用 Github Pages 和 Hexo 搭建的博客,如果在最开始建立仓库的时候没有创建README.md文件,那么 ...

  6. DuangDuangDuang!码云项目的 Readme.md 特殊技能

    为什么80%的码农都做不了架构师?>>>    我们在 码云 上创建新项目的时候,常常会看到默认使用 README 文件初始化该项目(如图1 所示),然后在新建项目的根目录下就会生成 ...

  7. GitHub如何在README.md文件中插入图片

    1.首先把图片放到本地文件夹中.push到Github的远程仓库. 2.在浏览器进入远程Github仓库找到图片打开图片.那么当前浏览器链接就是图片地址.复制图片的URL. 3.打开README.md ...

  8. md 生成目录 码云_DuangDuangDuang!码云项目的 Readme.md 特殊技能

    原标题:DuangDuangDuang!码云项目的 Readme.md 特殊技能 我们在 码云 上创建新项目的时候,常常会看到默认使用 README 文件初始化该项目(如图1 所示),然后在新建项目的 ...

  9. README.md 文件的作用和语法

    一.README.md 文件的作用 md文件一般出现在项目的根目录下面,其作用是:对项目的主要信息进行描述. 如果一个项目你很长时间都没有动,突然你需要修改这个项目,那么通过README.md中对项目 ...

最新文章

  1. PICRUSt2:OTU或ASV等16S随便预测宏基因组且数据库增加10倍
  2. 英国研发锡钙钛矿太阳能电池更高效环保
  3. 史上最轻量K8s发行版,赋能边缘计算
  4. HR只在这些时间里看你的简历!
  5. VMware Device/Credential Guard 不兼容
  6. Kafka消息模拟器
  7. 闭关休养or趁火打劫:疫情之下焦点行业网络威胁分析
  8. oracle账号密码修改后特别容易锁定_Oracle密码过期如何取消密码180天限制及过期,账号锁住的问题...
  9. PhoneGap android环境设置
  10. 不用媒体查询做web响应式设计-遁地龙卷风
  11. 《程序员代码面试指南》it名企算法与数据结构题目最优解(第二版)刷题笔记11
  12. gg修改器修改数值没有用怎么办_GG修改器修改完成然而被修改数值还是不变。?...
  13. mp4 joiner linux,MP4Joiner怎么用?使用MP4Joiner快速合并多个mp4视频文件的方法介绍
  14. Cisco三层交换机的详细配置
  15. 系统之家xp服务器系统怎么安装,系统之家教你如何用u盘装xp系统
  16. The following signatures couldn‘t be verified because the public key is not available: NO_PUBKEY
  17. pixel 刷入自己编译的Android 8.0 安装Xposed 显示 Verified Boot (dm-verity) prevents the device from booting
  18. RTX2012概述-1
  19. linux 定时任务 非root,linux下的计划任务——只执行一次的定时任务,
  20. vivo x9s支持html,vivo X9s屏幕材质_vivo X9s屏幕分辨率-太平洋IT百科

热门文章

  1. 因为虚拟机导致的错误
  2. QT中关于窗口全屏显示与退出全屏的实现
  3. golang的一个简单小爬虫demo学习记录
  4. 洛谷P4114 Qtree1(树链剖分+线段树)
  5. android社会化分享
  6. 使用webpack打包vue工程
  7. androidSDK配置环境变量
  8. 设计模式(2)策略模式 (模式讲解+应用)
  9. php __tostring 与 tostring
  10. web性能测试分析-工具篇 (转载)