在Vue2中使用MarkDown编辑器输入(mavonEditor)

在开发一些需求如博客系统时,原始的文本框不满足我们的需求,展示word文档的格式又太麻烦吗,不难想到使用markdown的格式来输入和展示内容。本文介绍了在Vue2中怎么使用markdown格式的输入框和展示框。

先看一下实现的效果

官方文档

我们使用 mavonEditor 来实现(也可以使用vue-meditor)

官网

下载mavonEditor

npm install mavon-editor --s

 在Vue2中组件导入

import { mavonEditor } from 'mavon-editor'
import 'mavon-editor/dist/css/index.css'

export default{
    //... 其余省略
    // 导入组件
    components: {
        mavonEditor
    }
}

使用mavonEditor

我这里只是简单的实现了下上面的效果,可以结合自己的实际需求修改

        <div class="tips">
            <span style="font-size: 24px; margin-top: 2%;">
                <!-- 此处需要使用 elementui 2 -->
                <i class="el-icon-paperclip"></i>
                发布博客(markDown)
            </span>
        </div>
        <div class="input" style="margin: 2%; margin-bottom: 0;">
            <mavon-editor v-model="inputContent" class="formclass" :editable="!check">                    
            </mavon-editor>
        </div>
        <div style="margin: 2%; margin-bottom: 0;">
            <span style="font-size: 24px; margin-top: 2%;">博客内容</span>
            <!-- 展示博客内容,只需要将编辑框和导航栏设置为 false 即可 -->
            <mavon-editor v-model="inputContent" 
                            class="formContent" 
                            :editable="false" 
                            :subfield="false" 
                            defaultOpen="preview" 
                            :toolbarsFlag="false" ></mavon-editor>
        </div>

操作图片

需要实现的效果是,用户在操作框粘贴或者上传图片,前端将图片传递给后端,后端返回存储图片的链接,前端根据链接在预览框中展示图片

修改上面的代码

        <div class="tips">
            <span style="font-size: 24px; margin-top: 2%;">
                <i class="el-icon-paperclip"></i>
                发布博客(markDown)
            </span>
        </div>
        <div class="input" style="margin: 2%; margin-bottom: 0;">
            <mavon-editor 
                v-model="inputContent" 
                class="formclass" 
                ref="mdedit"
                @imgAdd="imgAdd"
                :editable="!check"></mavon-editor>
        </div>
        <div style="margin: 2%; margin-bottom: 0;">
            <span style="font-size: 24px; margin-top: 2%;">博客内容</span>
            <!-- 展示博客内容,只需要将编辑框和导航栏设置为 false 即可 -->
            <mavon-editor v-model="inputContent"
                            class="formContent" 
                            :editable="false" 
                            :subfield="false" 
                            defaultOpen="preview" 
                            :toolbarsFlag="false" ></mavon-editor>
        </div>

在上述的代码中,我们需要关注 ref@imgadd,ref使javaScript能够操作编辑框里面的元素,@imgadd指向了一个方法,在用户粘贴或者上传图片的时候自动执行。

新增一个函数

        imgAdd(pos,file){
            // pos: 图片文件的名字
            // file: 图片文件
            let imgData = new FormData();
            // 构建后端请求的参数,可以自己定义
            imgData.append('file',file);
            // 发送请求, 将图片上传后端并返回后端存储的链接
            blogApi.uploadImage(imgData).then(res=>{
                console.log(res.data.data);
                console.log(this.$refs.mdedit)
                // 将pos中文文件名替换为后端返回的图片链接
                this.$refs.mdedit.$img2Url(pos,res.data.data)
        });

后端可以使用文件对象存储,如果是java的话可以使用minio,这里就不展示代码了,后面有时间的话单独写一篇后端的,敬请关注。

 参考文章

Vue项目集成Markdown标记语言编辑器(MavonEditor)_vue集成markdown-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_43403676/article/details/124409715
Markdown插件mavon-editor上传图片_mavon-editor 图片-CSDN博客文章浏览阅读2.3k次。最终效果实现方法这里只着重说明mavon-editor如何上传图片,其他更多配置可参考文档:mavon-editor文档。https://blog.csdn.net/hhl18730252820/article/details/123456478

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/240710.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

投资3-5万元的小本生意有什么?

现在想做点生意&#xff0c;真的好难。随便开个小店&#xff0c;房租、水电、装修这些加起来&#xff0c;就投资10w往上了。 我这还没开始赚钱呢&#xff0c;就已经投进去这么多钱了&#xff0c;万一生意不好亏本了&#xff0c;可该怎么办&#xff1f; 其实这是很多人面临的问…

PP材料粘接ABS材料使用UV胶的好处?

跟随着现阶段材料的不断发展更迭&#xff0c;PP材料应用越来越广&#xff0c;生产效率要求越来越高&#xff0c;为了加快生产&#xff0c;提高效率&#xff0c;PP材料的粘接上使用UV胶粘接PP&#xff08;聚丙烯&#xff09;和ABS&#xff08;丙烯腈-丁二烯-苯乙烯共聚物&#x…

STM32-TIM定时器中断

目录 一、TIM&#xff08;Timer&#xff09;定时器简介 二、定时器类型 2.1基本定时器结构 2.2通用定时器结构 2.3高级定时器结构 三、定时中断基本结构 四、时序图分析 4.1 预分频器时序 4.2 计数器时序 4.3 计数器无预装时序&#xff08;无影子寄存器&#xff09; …

静态HTTP应用的未来趋势与展望

随着互联网的快速发展&#xff0c;静态HTTP应用作为一种简单、快速和安全的Web应用形式&#xff0c;已经得到了广泛的应用。然而&#xff0c;随着技术的不断进步和创新&#xff0c;静态HTTP应用也在不断发展和变化。下面&#xff0c;我们就来谈谈静态HTTP应用的未来趋势和展望。…

腾讯云 - 日志服务(CLS)Bug 体验官

问题描述 最近在学习日志服务&#xff0c;发现了腾讯云上面一款CLS产品&#xff0c;致力于解决日志采集分析&#xff0c;刚开始用的时候感觉还不错&#xff0c;但是发现当创建第二个日志主题的时候发现不对劲了&#xff0c;前一个竟然失效了&#xff0c;排查了老半天也没发现啥…

dockerfile创建镜像lnmp

dockerfile创建镜像 LNMPwordpress nginx 172.111.0.10 docker-nginx mysql 172.111.0.20 docker-mysql php 172.111.0.30 docker-php systemctl stop firewalld setenforce 0 cd /opt mkdir nginx mysql php cd nginx/ 拖进去 nginx wordpress vim Dockerfile #声明基…

电动工具调速控制电路芯片GS016 GS069的芯片描述

GS016 直流有刷电机调速电路。输出端内置14V钳位结构&#xff0c;通过桥接内部电阻网络&#xff0c;可以改变PWM占空比输出&#xff0c;达到控制电机转速作用。采用SOP14封装形式 GS069 直流有刷电机调速电路。通过外接电阻网络&#xff0c;改变与之相接的VMOS管的输出&#x…

外发加工ERP软件功能有哪些?外发加工ERP系统哪家好

不同的外发加工业务有不同的业务流程和管理策略与方式&#xff0c;在当前这个激烈竞争的时代&#xff0c;如何降低经营成本&#xff0c;打通各种信息流&#xff0c;优化资源配置和降低成本&#xff0c;提升生产过程联动效率&#xff0c;加强企业核心竞争力管理等&#xff0c;是…

【Database】什么是数据库?常见的数据库类型有哪些?

什么是数据库&#xff1f;常见的数据库类型有哪些&#xff1f; 首先&#xff0c;什么是数据库&#xff1f;把它想象成一个数字游乐场&#xff0c;我们以结构化的方式组织和存储大量信息。现在&#xff0c;让我们来谈谈数据库的主要类型。 关系型数据库&#xff1a; 想象一下…

已经写完的论文怎么降低查重率 papergpt

大家好&#xff0c;今天来聊聊已经写完的论文怎么降低查重率&#xff0c;希望能给大家提供一点参考。 以下是针对论文重复率高的情况&#xff0c;提供一些修改建议和技巧&#xff1a; 已经写完的论文怎么降低查重率 背景介绍 在学术界&#xff0c;论文的查重率是评价论文质量的…

静态路由原理与配置

文章目录 静态路由原理与配置一、路由器的工作原理1、路由概述2、路由器的工作原理 二、路由表的形成1、路由表2、路由表的形成 三、静态路由和默认路由1、静态路由的缺点2、默认路由&#xff08;是特殊的静态路由&#xff09;3、查看路由表 四、路由器转发数据包的封装过程五、…

Python从入门到精通八:Python文件操作

文件的编码 思考&#xff1a;计算机只能识别&#xff1a;0和1&#xff0c;那么我们丰富的文本文件是如何被计算机识别&#xff0c;并存储在硬盘中呢&#xff1f; 答案&#xff1a;使用编码技术&#xff08;密码本&#xff09;将内容翻译成0和1存入。 编码技术即&#xff1a;…

网神 SecGate 3600 防火墙 多处任意文件上传漏洞复现

0x01 产品简介 网神SecGate 3600防火墙是基于状态检测包过滤和应用级代理的复合型硬件防火墙,是专门面向大中型企业、政府、军队、高校等用户开发的新一代专业防火墙设备,支持外部攻击防范、内网安全、网络访问权限控制、网络流量监控和带宽管理、动态路由、网页内容过滤、邮…

【论文解读】System 2 Attention提高大语言模型客观性和事实性

一、简要介绍 本文简要介绍了论文“System 2 Attention (is something you might need too) ”的相关工作。基于transformer的大语言模型&#xff08;LLM&#xff09;中的软注意很容易将上下文中的不相关信息合并到其潜在的表征中&#xff0c;这将对下一token的生成产生不利影响…

基于R语言piecewiseSEM结构方程模型在生态环境领域实践技术应用

结构方程模型&#xff08;Sructural Equation Modeling&#xff0c;SEM&#xff09;可分析系统内变量间的相互关系&#xff0c;并通过图形化方式清晰展示系统中多变量因果关系网&#xff0c;具有强大的数据分析功能和广泛的适用性&#xff0c;是近年来生态、进化、环境、地学、…

Linux --绘制地图投影出现报错:无法成功下载地图背景数据

Linux --绘制地图投影出现报错&#xff1a;无法成功下载地图背景数据 主要原因是由于使用学院集群&#xff0c;该集群无法连接外网&#xff0c;在使用cartopy绘制地图投影时&#xff0c;导致无法成功加载地图背景数据解决方法也很简单&#xff0c;自己手动下载所需要的地形数据…

【数据结构和算法】--队列

目录 队列的概念及结构队列的实现初始化入队出队其他一些队列函数 小结队列相关题目 队列的概念及结构 队列是只允许在一端进行插入数据操作&#xff0c;在另一端进行删除数据操作的特殊线性表&#xff0c;队列具有先进先出FIFO(First In First Out) 的原则。 入队列&#xf…

2023 巅峰之作 | AIGC、AGI、GhatGPT、人工智能大语言模型的崛起与挑战

文章目录 01 《ChatGPT 驱动软件开发》内容简介 02 《ChatGPT原理与实战》内容简介 03 《神经网络与深度学习》04 《AIGC重塑教育》内容简介 05 《通用人工智能》目  录 2023年是人工智能大语言模型大爆发的一年&#xff0c;一些概念和英文缩写也在这一年里集中出现&#xff…

Java反射(2)

我是南城余&#xff01;阿里云开发者平台专家博士证书获得者&#xff01; 欢迎关注我的博客&#xff01;一同成长&#xff01; 一名从事运维开发的worker&#xff0c;记录分享学习。 专注于AI&#xff0c;运维开发&#xff0c;windows Linux 系统领域的分享&#xff01; 本…

Docker-compose单机容器编排

YML文件是什么&#xff1f; YAML文件是一种标记语言&#xff0c;以竖列的形式展示序列化的数据格式。可读性很高类似于json格式。语法简单。 YAML通过缩进来表示数据结构&#xff0c;连续的项目用-符号来表示。 YML文件使用的注意事项 1、 大小写敏感 2、 通过缩进表示层级…
最新文章