mavon-editor 存储md文件以及md文件解析成html文件

一、md文件的存储

因为是vue-cli项目,所以使用的是mavonEditor.

github地址:https://github.com/hinesboy/mavonEditor

使用方法:

首先安装:

npm install mavon-editor --save

然后在相应的组件里引用:

//引入import {mavonEditor} from ‘mavon-editor‘
import  ‘mavon-editor/dist/css/index.css‘
//标签使用,注意这里是mavon-editor<mavon-editor style="height: 100%;width: 100%;"
                           v-model="form.content"
                           ref="md"
                           defaultOpen="edit"
                           :toolbars="toolbarsValue"
                           @imgAdd="$imgAdd"
                           @change="changeMavon"
                           @save="saveMavon" />

//mavon-editor菜单栏的相关配置

toolbarsValue: {
                bold: true, // 粗体
                italic: true, // 斜体
                header: true, // 标题
                underline: true, // 下划线
                strikethrough: true, // 中划线
                mark: true, // 标记
                superscript: true, // 上角标
                subscript: true, // 下角标
                quote: true, // 引用
                ol: true, // 有序列表
                ul: true, // 无序列表
                link: true, // 链接
                imagelink: true, // 图片链接
                code: true, // code
                table: true, // 表格
                fullscreen: true, // 全屏编辑
                readmodel: true, // 沉浸式阅读
                htmlcode: true, // 展示html源码
                help: true, // 帮助
                /* 1.3.5 */
                undo: true, // 上一步
                redo: true, // 下一步
                trash: true, // 清空
                save: false, // 保存(触发events中的save事件)
                /* 1.4.2 */
                navigation: true, // 导航目录
                /* 2.1.8 */
                alignleft: true, // 左对齐
                aligncenter: true, // 居中
                alignright: true, // 右对齐
                /* 2.2.1 */
                subfield: true, // 单双栏模式
                preview: true, // 预览
            },

//相关的方法

//富文本保存的方法
        saveMavon(value,render){

          console.log("this is render"+render);
          console.log("this is value"+value);
        },
        // 绑定@imgAdd event
        $imgAdd(pos, $file){
            console.log("触发图片上传");
            console.log(pos);
            console.log($file);
            // 第一步.将图片上传到服务器.
           var formdata = new FormData();
           formdata.append(‘file‘, $file);
           console.log(formdata);
           imgeApi(formdata).then(res=>{
               // 第二步.将返回的url替换到文本原位置![...](0) -> ![...](url)
               /**
               * $vm 指为mavonEditor实例,可以通过如下两种方式获取
               * 1. 通过引入对象获取: `import {mavonEditor} from ...` 等方式引入后,`$vm`为`mavonEditor`
               * 2. 通过$refs获取: html声明ref : `<mavon-editor ref=md ></mavon-editor>,`$vm`为 `this.$refs.md`
               */
                console.log(res.data);
                let url="/server/"+res.data.data;
                this.$refs.md.$img2Url(pos, url);              //相应的md格式的文件内容就是它绑定的变量

//得到相应的html/文件

console.log(this.$refs.md.d_render);

           });
        },  

我选择的是直接将md格式的文本保存到数据库中,然后再将其从数据库中取出来解析。

二、md格式的文本的解析

使用marked框架来解析。

方法步骤:

npm install marked --save

在组件中引用:

import marked from ‘marked‘

相应的标签:

<div v-html="readmeContent" ></div>

js方法:

//这里的newDate[0].content就是取出来的md格式的文本内容
this.readmeContent=marked(newData[0].content||‘‘,{
                    sanitize:true
                })

  

存在问题:现在纯粹的只是将其解析成了html文件,相应的样式查了下,可以用highlight.js,但折腾了好久都没引用成功,等之后再仔细看看marked的官方文档再说....

地址:https://marked.js.org/#/README.md#README.md 

原文地址:https://www.cnblogs.com/LULULI/p/10610136.html

时间: 2024-11-10 18:29:10

mavon-editor 存储md文件以及md文件解析成html文件的相关文章

Dom4j 读取一个XML文件和将String写成XML文件

dom4j保存文件xml格式和读取XML文件内容,代码如下: package com.qmjs.imut import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import org.apache.log4j.Logger; import org.dom4j.Document; import org.dom4j.DocumentHelper; i

PDF文件怎么才能在线转换成PPT文件

PDF文件怎么才能在线转换成PPT文件,在办公中遇到多种文件格式需要转换的时候千万不要着急,很多辅助工具可以帮大家节省大量时间,今天就给大家讲解一下如何将PDF文件转换成PPT文件,注意听哦.第一步:打开电脑将需要转换的PDF文件添加至桌面,然后进入浏览器内搜索"迅捷PDF在线转换器",找到在线页面.第二步:进入到在线转换器的页面内后,点击页面上方导航栏内的"文档转换"然后选择下拉框内的"PDF转PPT".第三步:进入功能页后,点击页面内的&qu

Excelbatis-一个将excel文件读入成实体列表、将实体列表解析成excel文件的ORM框架,简洁易于配置、可扩展性好

欢迎使用Excelbatis! github地址:https://github.com/log4leo/Excelbatis Excelbatis的优点 和spring天然结合,易于接入 xsd支持,使得配置更加简洁,不需要按照bean冗长的语法进行配置 遵循“约定大于配置”原则,如果不配置的话,自动推断字段类型( ORM框架基本都提供的功能 ) 通过实现Convertor和Transfer接口提供一定的扩展性,你可以自定义excel数据到你字段类型的转换,比如你可以通过定义一个MapConve

PyCharm将main.py解析成text文件的解决方法

问题:PyCharm将main.py解释成文本文件,没有代码提示,也无法执行 解决方法:File->Settings->Editor->File Types ->选则Text 将Registered Patterns中的main.py删除即可 原文地址:https://www.cnblogs.com/ZeroTensor/p/10848242.html

[Windows问题-3] C#转换成DLL文件

问题:这篇文章主要分为两部分,第一部分介绍如何将一个C#程序文件转换成DLL动态链接库文件,第二部分介绍如何在程序中使用这个生成的DLL文件. 第一部分: 1.首先新建一个C#文件"show.cs",这个文件就是我们需要转换成DLL文件的源文件.文件具体内容如下: using System; namespace Dll { public class Show { public String hello = "hello world\n"; public String

Linux文件查找.md

Linux 文件查找 在Linux系统的查找相关的命令: which 查看可执行文件的位置 whereis 查看文件的位置 locate 配合数据库查看文件位置 find 实际搜寻硬盘查询文件名称 whereis whereis命令是定位可执行文件.源代码文件.帮助文件在文件系统中的位置.这些文件的属性应属于原始代码,二进制文件,或是帮助文件.whereis 程序还具有搜索源代码.指定备用搜索路径和搜索不寻常项的能力. 语法 whereis [-bmsu] 文件或者目录名称 参数 -b 定位可执

python检测文件的MD值

使用hashlib模块,可对文件MD5一致性加密验证: #python 检测文件MD5值 #python version 2.6 import hashlib import os,sys #简单的测试一个字符串的MD5值 def GetStrMd5(src): m0=hashlib.md5() m0.update(src) print m0.hexdigest() pass #大文件的MD5值 def GetFileMd5(filename): if not os.path.isfile(fil

无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)

1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.demo1" /> 上面targetPackage指定的包要和应用的package相同. (2)在清单文件中ap

Android数据存储之Android 6.0运行时权限下文件存储的思考

前言: 在我们做App开发的过程中基本上都会用到文件存储,所以文件存储对于我们来说是相当熟悉了,不过自从Android 6.0发布之后,基于运行时权限机制访问外置sdcard是需要动态申请权限,所以以往直接sdcard根目录上直接新建了一个xxx/cache/目录来做文件存储就会不是那么容易控制了,所以有必要重新认识一下Android文件存储的相关知识了. 背景: 有关外置sdcard的读写权限 <uses-permission android:name="android.permissi