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

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.xdnf.cn/news/15251.html

相关文章:

  • 开源界迎来重磅核弹!月之暗面开源了自家最新模型 K2
  • UC浏览器PC版自2016年后未再更新不支持vue3
  • Git Submodule 介绍和使用指南
  • 服务器机柜与网络机柜各自的优势
  • 2025最新版Docker讲解/面试/命令/容器化技术
  • Marin说PCB之Allegro高亮BOM器件技巧详解
  • 【Linux】C++项目分层架构:核心三层与关键辅助
  • 报错 | “pnpm : 无法将“pnpm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,
  • 基于ASP.NET MVC+SQLite开发的一套(Web)图书管理系统
  • SHA-256算法流程分析与演示——github工程完善
  • 基于k8s环境下pulsar高可用测试和扩缩容(上)
  • Flask 入门到实战(3):用 SQLAlchemy 优雅操作数据库
  • Linux 进程管理核心机制
  • 【mac】快捷键使用指南
  • 【AI大模型】RAG系统组件:向量数据库(ChromaDB)
  • 飞算 JavaAI 体验:重塑 Java 开发的智能新范式
  • LeetCode--43.字符串相乘
  • JVM故障处理与类加载全解析
  • ✨ FastMCP 实战进阶:构建可远程访问的 MCP 工具服务与客户端(Python 深度解析)
  • Elasticsearch混合搜索深度解析(上):问题发现与源码探索
  • 【flutter】flutter网易云信令 + im + 声网rtm从0实现通话视频文字聊天的踩坑
  • 影石(insta360)GO3拇指相机格式化后的恢复方法
  • OpenCV 与深度学习:从图像分类到目标检测技术
  • 如何安装和配置Autoptimize插件以提高WordPress网站访问速度
  • 飞算JavaAI:重塑Java开发的“人机协同“新模式
  • 免费应用分发平台的安全漏洞和防护机制是什么?
  • Jenkins 自动触发执行的配置
  • 飞算JavaAI:重构Java开发的“人机协同”新范式
  • JavaScript VMP (Virtual Machine Protection) 分析与调试
  • 创建显示心电图的组件