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

前端Vue2项目使用md编辑器

项目中有一个需求,要在前端给用户展示内容,内容有 AI 生成的,返回来的是 md 格式,所以需要给用户展示 md 格式,并且管理端也可以编辑这个 md 格式的文档。

使用组件库 v-md-editor。

https://code-farmer-i.github.io/vue-markdown-editor/zh/examples/base-editor.html#%E5%BC%95%E5%85%A5

使用npm 命令进行安装 
# 使用 npm  npm i @kangc/v-md-editor -S

对于用户端需要展示出来,管理端需要编辑,官方给的全局组件是用来编辑的。 我使用局部注册的来管理。

在 main.js 中 导入编辑和预览组件,使用 Vue.use()进行全局的注册。

import Vue from 'vue'
import App from './App.vue'Vue.config.productionTip = falseimport VMdEditor from '@kangc/v-md-editor';
import '@kangc/v-md-editor/lib/style/base-editor.css';
import githubTheme from '@kangc/v-md-editor/lib/theme/github.js';
import '@kangc/v-md-editor/lib/theme/style/github.css';import VMdPreview from '@kangc/v-md-editor/lib/preview';
import '@kangc/v-md-editor/lib/style/preview.css';import '@kangc/v-md-editor/lib/theme/style/github.css';
import hljs from 'highlight.js';// highlightjsVMdEditor.use(githubTheme, {Hljs: hljs,
});
VMdPreview.use(githubTheme, {Hljs: hljs,
});
Vue.use(VMdEditor);
Vue.use(VMdPreview);import router from './router'; // 导入路由配置
new Vue({router,render: h => h(App),
}).$mount('#app')

editView

<script>export default {data() {return {markdown: ``,};}
};
</script><template><div><v-md-editor v-model="markdown" height="400px" width="400px"></v-md-editor></div>
</template><style scoped>
/* 组件样式 */
</style>
//通过 v-model 进行双向的绑定

注意注册的组件时机选择应该是 created(),不太清楚为什么。官方也没有给说明文档。

showView

<template><div><v-md-preview :text="markdown"></v-md-preview></div>
</template><script>
// 只在本组件内引入需要的模块
export default {data() {return {markdown: `# 我的 Markdown 示例## 介绍Markdown 是一种轻量级标记语言,常用于编写格式化文本,常见应用包括文档编写、博客、GitHub 上的 README 文件等。## 示例代码\`\`\`python
def add(a, b):return a + bresult = add(3, 5)
print("结果是:", result)
\`\`\``};}
};
</script><style scoped>
/* 组件样式 */
</style>实际的markdown 可以由后端的接口进行返回

编辑界面

编写使用 markdown 语法,右边显示初对应的内容。

展示界面

这个是一个简单的版本,后面对于内容要保存到数据库中,要看官方文档,还有图片等上传。

http://www.lryc.cn/news/524992.html

相关文章:

  • OpenVela 架构剖析:从内核到应用
  • vue视频流播放,支持多种视频格式,如rmvb、mkv
  • 记一个Timestamp时区问题的坑
  • 新年好(Dijkstra+dfs/全排列)
  • 如何“看到” Spring 容器?
  • 怎么使用CRM软件?操作方法和技巧有哪些?
  • Spingboot整合Netty,简单示例
  • grafana新增email告警
  • Github 2025-01-20 开源项目周报 Top15
  • 【Rabbitmq】Rabbitmq高级特性-发送者可靠性
  • K8S中Service详解(一)
  • Effective C++读书笔记——item23(用非成员,非友元函数取代成员函数)
  • 云原生前端开发:打造现代化高性能的用户体验
  • 循环队列(C语言版)
  • 考研408笔记之数据结构(五)——图
  • 没有公网IP实现seafile本地IP访问和虚拟局域网IP同时访问和上传文件
  • 【Hadoop面试题2025】
  • 2000-2010年各省第三产业就业人数数据
  • 第十一讲 多线程
  • VUE之路由Props、replace、编程式路由导航、重定向
  • windows安装ES
  • 论文速读|Multi-Modal Disordered Representation Learning Network for TBPS.AAAI24
  • 小哆啦解题记:加油站的奇幻冒险
  • 【前端】CSS实战之音乐播放器
  • Games104——渲染中光和材质的数学魔法
  • impala增加字段,hsql查不到数据
  • SpringBoot项目中的异常处理
  • ComfyUI实现老照片修复——AI修复老照片(ComfyUI-ReActor / ReSwapper)尚待完善
  • NLTK命名实体识别(NER)
  • 【游戏设计原理】78 - 持续注意力