当前位置: 首页 > news >正文

Vue集成MarkDown

1.编辑部分

1.下载资源包

npm install mavon-editor --save

2.main.js配置

importmavonEditorfrom 'mavon-editor';import'mavon-editor/dist/css/index.css';Vue.use(mavonEditor);

3.组件引入对应的Vue文件

<mavon-editor ref="md" v-model="form.content" :toolbars="toolbars"@imgAdd="imgAdd" @imgDel="imgDel"/>

image-20250711181216116

4.再data中定义工具栏

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

tips:markdown关于上传与删除图片

imgAdd(pos, file) {var formdata = new FormData();formdata.append('file', file); //前端封装图片数据 ‘file’向后端传递的 namethis.$http({ //调用 java 后端上传图片到服务器端url: this.serverAddress+'uploadImg', //自定义后端服务器地址,后端同文件上传功能data: formdata,method: "post",headers: {'Content-Type': 'multipart/form-data','adminToken': this.adminToken},}).then((resp) => { //resp 后端响应数据//将服务器返回的图片地址插入到编辑器内this.$refs.md.$img2Url(pos, resp.data.data);})},imgDel(pos) {var imgUrl = pos[0]; //获取到图片服务器地址alert(imgUrl);this.$http.get("adminApi/newsCtl/deleteImg", {params: {imgUrl: JSON.stringify(imgUrl)}}).then(function(res) {//删除回调if (res.code == 200) {this.$message({message: res.message,type: 'success'});}})}

image-20250711181347174

2.前台展示配置

显示使用markdown格式

1.下载组件

npm install --save showdown

2.配置 main.js

//markdown 格式转为html组件
import showdown from 'showdown'
Vue.prototype.converter = new showdown.Converter();

image-20250711181244532

3.显示模块

<mavon-editor v-html="newsDetail.content" ref="md"
style="white-space: pre-wrap !important;
word-wrap: break-word !important;
padding: 10px;"/>

4.对后端传来的数据进行修改格式

this.$http.get("indexApi/indexCtl/newsDetail?id="+this.id).then((resp) => {if (resp.data.code == 200) {this.newsDetail = resp.data.data;this.newsDetail.content = this.converter.makeHtml(resp.data.data.content);}})
http://www.lryc.cn/news/584798.html

相关文章:

  • 在 React Three Fiber 中实现 3D 模型点击扩散波效果
  • CSS和CSS3区别对比
  • 【深度学习新浪潮】什么是AI个性化医疗?
  • 黑马点评系列问题之P55优惠券秒杀 快捷键问题 Ctrl+D显示不出来老师给的界面
  • 【数据结构】8. 二叉树
  • FastAPI + SQLAlchemy (异步版)连接数据库时,对数据进行加密
  • React Three Fiber 实现 3D 模型点击高亮交互的核心技巧
  • Gin 中常见参数解析方法
  • 用TensorFlow进行逻辑回归(二)
  • 闲庭信步使用图像验证平台加速FPGA的开发:第九课——图像插值的FPGA实现
  • 硬件加速(FPGA)
  • BigFoot Decursive 2.7.28 2025.07.11
  • MyBatis插件机制揭秘:从拦截器开发到分页插件实战
  • 深入剖析 ADL:C++ 中的依赖查找机制及其编译错误案例分析
  • Linux面试问题-软件测试
  • RISC-V:开源芯浪潮下的技术突围与职业新赛道 (二) RISC-V架构深度解剖(上)
  • idea如何打开extract surround
  • 【C++】——类和对象(上)
  • Linux指令与权限
  • Navicat实现MySQL数据传输与同步完整指南
  • python正则表达式(小白五分钟从入门到精通)
  • Vue 中监测路由变化时,通常不需要开启深度监听(deep: true)
  • Spring事务管理深度解析:原理、实践与陷阱
  • STM32-ADC
  • squash压缩合并
  • 计算机视觉速成 之 概述
  • 【学习笔记】机器学习(Machine Learning) | 第七章|神经网络(2)
  • Linux:库的原理
  • (C++)任务管理系统(文件存储)(正式版)(迭代器)(list列表基础教程)(STL基础知识)
  • 【算法笔记 day three】滑动窗口(其他类型)