mavon-editor实现支持md格式输入并自定义工具栏

需求说明

起源于我在做机器人报警推送的一个模块时,涉及到可以自定义报警的内容,其中内容支持md格式,同时还支持用户在指定光标处插入指定的字符串占位符。于是我在项目中引入mavon-editor库(支持Vue2、Vue3),以支持用户输入md格式。详细的说明可以查阅官方文档链接:GitHub - hinesboy/mavonEditor: mavonEditor - A markdown editor based on Vue that supports a variety of personalized features

然后接下来我讲到的是我用到的

实现思路

  • 在工具栏中增加自定义图标
  • 监听自定义按钮事件
  • 获取插入光标位置,插入指定占位符字符串

实现

安装

$ npm install mavon-editor --save

引入

// 指定组件中引入
import { mavonEditor } from 'mavon-editor'
import 'mavon-editor/dist/css/index.css'...components: {mavonEditor},
...

使用

需要自定义工具栏工具,可以通过使用一下插槽方式:

solt插槽名作用
left-toolbar-before
左工具栏加入自定义按钮
left-toolbar-after
左工具栏加入自定义按钮
right-toolbar-before
右工具栏加入自定义按钮
right-toolbar-after
右工具栏加入自定义按钮

 我这里为了保持统一,我引入的也是Font Awesome字体图标,通过class的方式传入,同时可以通过toolbars属性自定义你想要的工具栏项,不需要的去掉或者赋值为false即可。

方法:

由于我这里的的md内容组件是多个且遍历循环的方式显示的,所以通过ref获取组件实例的时候需要注意,这里返回的是一个多个实例组成的数组,所以这里用到了forEach去遍历赋值。

  • 获取光标位置:getTextareaDom()
  • 插入指定字符:insertText(指定位置,插入字符对象)

效果图

 有兴趣的朋友可以看一下其源码,进食更方便~

这里的插槽实现正如其名,在首尾处添加具名插槽,中间部分则是以及定义好的支持的工具栏实现。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 写入文件的中文乱码了怎么处理

如果在写入JSON文件时遇到中文乱码问题,你可以在使用json.dump()函数时设置ensure_ascii参数为False,以保留非ASCII字符的原始形式。这样可以确保中文字符正确地写入JSON文件。 以下是一个示例: import jsondata {"name": "…

Maven深入了解

Maven深入了解 前言一、Maven的核心概念1.1 Maven-Jar包模块化管理1.2 POM1.3 坐标及其命名规范1.4 仓库的概念1.5 生命周期1.6 插件和目标 二、依赖管理2.1 自己写的模块和模块之间也可以互相依赖2.2 依赖的生效范围(scope标签)2.3 依赖的传递性2.4 依赖冲突问题2.5 依赖的排除…

IBatis与MyBatis区别

在sqlMap里面&#xff0c;iBatis的传入参数是parameterClass&#xff0c;而MyBatis是可以不写的&#xff0c;也可以用parameterType&#xff0c;iBatis的传出参数是resultClass。 iBatis&#xff1a; <select id"selectDeviceByWhere" parameterClass"Map&q…

Linux——多线程

目录 线程概念 线程控制 线程创建 进程 vs 线程 线程异常 线程等待 线程终止 pthread_cancel 进程替换 线程分离 线程互斥 mutex mutex接口 mutex的理解 互斥锁的实现 可重入和线程安全 死锁 什么是死锁 死锁产生的必要条件 避免死锁 线程同步 概念 条件…

ARM 汇编指令:(六) B 跳转指令

目录 一.B 和 BL 1.B/BL指令的语法格式 2.示例解析 一.B 和 BL 跳转指令 B 使程序跳转到指定的地址执行程序。指令 BL 将下一条指令的地址复制到 R14&#xff08;即返回地址连接寄存器 LR&#xff09;寄存器中&#xff0c;然后跳转到指定地址运行程序。 1.B/B…

FMEA-MSR的本质是什么?——FMEA软件

免费试用FMEA软件-免费版-SunFMEA ​FMEA-MSR&#xff08;Failure Modes and Effects Analysis - Manufacturing and Service Reliability&#xff09;是一种预防性的质量工具&#xff0c;用于识别、评估和解决产品或服务在制造和服务过程中可能出现的故障模式。其核心目的是在…

学习数据库和服务器管理技能是一个需要系统学习和实践的过程

在线课程和教程&#xff1a; 在线教育平台如 Coursera、edX、Udemy 等提供了许多数据库和服务器管理的课程&#xff0c;您可以选择适合自己水平和兴趣的课程进行学习。 自学教材&#xff1a; 可以购买经典的数据库和服务器管理书籍&#xff0c;如《数据库系统概念》、《MySQL 必…

一个悄然崛起的AI开源项目!

众所周知&#xff0c;最近这半年AI相关的话题实在是火到出圈。尤其是生成式AI的流行&#xff0c;让我们普通人也可以近距离地接触和应用AI。这其中最典型的就是ChatGPT。 那除了ChatGPT&#xff0c;还有一个非常实用的领域&#xff0c;也是我们今天要讨论的话题&#xff0c;那…

leetcode 2864.最大二进制奇数

这道题用的是比较简朴的方法做的.说白了就是暴力。 思路&#xff1a;首先&#xff0c;s中至少有一个1&#xff0c;而且我们重新排序后必须是奇数&#xff0c;这样的话&#xff0c;其中一个1必定会在最后一位上&#xff0c;这是由二进制的性质决定的&#xff0c;因为从右到左数…

Day33:安全开发-JavaEE应用SQL预编译Filter过滤器Listener监听器访问控制

目录 JavaEE-预编译-SQL JavaEE-过滤器-Filter JavaEE-监听器-Listen 思维导图 Java知识点 功能&#xff1a;数据库操作&#xff0c;文件操作&#xff0c;序列化数据&#xff0c;身份验证&#xff0c;框架开发&#xff0c;第三方库使用等. 框架库&#xff1a;MyBatis&#…

导致并发程序出现问题的根本原因是什么

并发程序出现问题的根本原因通常归结为两个核心问题&#xff1a;竞争条件&#xff08;Race Condition&#xff09;和内存可见性&#xff08;Memory Visibility&#xff09;。这些问题是由于多线程同时访问和修改共享资源而没有进行适当同步所导致的。现在让我们更详细地探讨这些…

学习SSM的记录(八)-- SSM整合项目《任务列表案例》

前端程序搭建和运行 项目预览 接口分析 1.学习计划分页查询 需求&#xff1a;查询对应数据页数据 uri&#xff1a;schedule/{pageSize}/{currentPage} 请求方式&#xff1a;get 响应数据&#xff1a;json {"code":200,"flag":true,"data"…

Lucene 分词 示例代码

import org.apache.lucene.analysis.tokenattributes.CharTermAttribute; import org.apache.lucene.analysis.TokenStream; import org

基于springboot实现数据资产管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现数据资产管理系统演示 摘要 固定资产管理系统主要是完成对系统用户管理、资产信息管理、资产变更管理、资产用途管理、资产类别管理和资产增减管理。因为利用本系统管理员可以直接录入信息&#xff0c;修改信息&#xff0c;删除信息&#xff0c;并且若在录入…

JAVA初阶数据结构链表(2)双向链表( +专栏数据结构练习是完整版)

1.双向链表的结构&#xff08;双向不带头不循环链表&#xff09; 需要注意的一点就是&#xff0c;在jdk中的链表就是双向链表 一个节点有三个域 val&#xff08;数值域&#xff09; next&#xff08;地址域&#xff09; prev&#xff08;前驱记录前一个节点的地址&#xff09…

力扣思路题:重复的子字符串

注意比较j与j-i是否相同 bool repeatedSubstringPattern(char* s) {int i;int nstrlen(s);bool flag;for(int i1;i<n/2;i){if(n%i0){flagtrue;}for(int ji;j<n;j){if(s[j]!s[j-i]){flagfalse;break;}}if(flagtrue){return true;}}return false; }

腾讯云服务器地域有啥区别?选哪个比较好?

腾讯云服务器地域怎么选择&#xff1f;不同地域之间有什么区别&#xff1f;腾讯云哪个地域好&#xff1f;地域选择遵循就近原则&#xff0c;访客距离地域越近网络延迟越低&#xff0c;速度越快。腾讯云百科txybk.com告诉大家关于地域的选择还有很多因素&#xff0c;地域节点选择…

Python中的区块链技术与应用

区块链技术是一个复杂的概念&#xff0c;涉及许多不同的方面&#xff0c;如加密算法、数据结构、网络协议等。在这里&#xff0c;我将提供一个简单的区块链实现示例&#xff0c;以帮助你理解其基本概念。请注意&#xff0c;这个示例是为了教学目的而简化的&#xff0c;并不适用…

Shell脚本启动程序失败

单独执行.sh文件正常&#xff0c;在crontab定时任务中配置执行失败 #!/bin/bash# 定时任务执行失败添加以下俩行 source /etc/profile source ~/.bash_profile# 替换为实际脚本逻辑... echo "abc"

新版minio依赖对putObject进行了修改

老版的 PutObjectArgs putObjectArgsnew PutObjectArgs(bucketName, file.getOriginalFilename(), file.getInputStream(), null, null, file.getContentType()); 新版的 minioClient.putObject(PutObjectArgs.builder().bucket(bucketName).object(file.getOriginalFilenam…