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

vue3 v-md-editor markdown编辑器(VMdEditor)和预览组件(VMdPreview )的使用

vue3 v-md-editor markdown编辑器和预览组件的使用

  • 概述
  • 安装支持vue3版本
  • 使用
    • 1.使用markdown编辑器 VMdEditor
    • 2.markdown文本格式前端渲染 VMdPreview
  • 例子
    • 效果
    • 代码部分
  • 完整代码

概述

v-md-editor 是基于 Vue 开发的 markdown 编辑器组件

  1. 轻量版编辑器
    轻量版编辑器左侧编辑区域使用 textarea 实现。
    优点:足够轻量
    缺点:不支持更为丰富的编辑区功能扩展。例如:无法根据不同的语法在输入框内显示不同的样式。
  2. 进阶版编辑器
    进阶版编辑器左侧编辑区域使用 CodeMirror (opens new window)实现。
    优点:可以根据 CodeMirror 提供的 Api 来自定义扩展编辑区域功能,提高编辑体验。
    缺点:文件体积远大于轻量版
  3. 预览组件
    当你只需要对 markdown 语法进行解析并预览的时候,可以使用该组件。
  4. html 预览组件
    当你只需要对保存后的 html 文本进行预览的时候,可以使用该组件。
  5. 特性
    高度可定制化,高度可扩展性,支持自定义主题包,提供开箱即用的主题包,提供多个组件。可按需使用。

安装支持vue3版本

# 使用 npm
npm i @kangc/v-md-editor@next -S# 使用 yarn
yarn add @kangc/v-md-editor@next

使用

1.使用markdown编辑器 VMdEditor

首先在项目的main.js中进行挂载,然后再去页面中使用

import { createApp } from 'vue';
import 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';// highlightjs
import hljs from 'highlight.js';VMdEditor.use(githubTheme, {Hljs: hljs,
});const app = createApp(/*...*/);app.use(VMdEditor);

页面使用

<template><v-md-editor v-model="text" height="400px"></v-md-editor>
</template><script setup>import {ref} from 'vue'const text = ref("")
</script>

2.markdown文本格式前端渲染 VMdPreview

import VMdPreview from '@kangc/v-md-editor/lib/preview';
import '@kangc/v-md-editor/lib/style/preview.css'VMdPreview.use(githubTheme, {Hljs: hljs,
});const app = createApp(/*...*/);app.use(VMdPreview);
<template><v-md-preview :text="content"></v-md-preview>
</template>
<script setup>import {ref} from 'vue'const content =ref() 
</script>

例子

效果

  1. markdown 编辑器界面
    在这里插入图片描述

  2. markdown 预览界面

在这里插入图片描述

代码部分

  1. main.js
import './assets/main.css'import { createApp } from 'vue'
import App from './App.vue'
import router from './router'// markdown编辑器
import 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 hljs from 'highlight.js'; // highlightjsVMdEditor.use(githubTheme, {Hljs: hljs,
});// markdown 预览 markdown解析需要的配置项目
import VMdPreview from '@kangc/v-md-editor/lib/preview';
// import '@kangc/v-md-editor/lib/style/preview.css'
// import githubTheme from '@kangc/v-md-editor/lib/theme/github';
import '@kangc/v-md-editor/lib/theme/style/github.css';
// import hljs from 'highlight.js';VMdPreview.use(githubTheme, {Hljs: hljs,
});const app = createApp(App)app.use(router)
app.use(VMdEditor)
app.use(VMdPreview)
app.mount('#app')
  1. MarkdownEdit.vue
<script setup>
import { ref } from 'vue'
import { RouterLink } from 'vue-router'
const text = ref("")
</script><template><main><div style="width:80vw;"><h3>markdown编辑器</h3> <RouterLink to="/read">markdown预览测试</RouterLink><v-md-editor v-model="text" height="700px" ></v-md-editor></div></main>
</template>
  1. MarkdownRead.vue
<script setup>
import { ref } from 'vue'const contentA = ref() 
const readText = ()=>{// 请求的是我自己的接口地址,后端代码逻辑就是存到数据库中的一个text文件,然后下面完整的代码中,我提供了我的markdown文本fetch('http://robin.com/Article/18')  .then(response => response.text())  .then(data => {contentA.value = JSON.parse(data).content//console.log(contentA.value)})  .catch((error) => console.error('Error:', error));
}
readText()
</script><template><div class="about"><div><v-md-preview :text="contentA"></v-md-preview></div></div>
</template><style>
@media (min-width: 1024px) {.about {min-height: 100vh;min-width: 1024px;margin: 0 auto;display: flex;align-items: center;}
}
</style>

完整代码

链接: https://pan.baidu.com/s/1kzCxIt-oXdsKCKgBW91gOQ 提取码: zk3w 复制这段内容后打开百度网盘手机App,操作更方便哦

相关文章:

vue3 v-md-editor markdown编辑器(VMdEditor)和预览组件(VMdPreview )的使用

vue3 v-md-editor markdown编辑器和预览组件的使用 概述安装支持vue3版本使用1.使用markdown编辑器 VMdEditor2.markdown文本格式前端渲染 VMdPreview 例子效果代码部分 完整代码 概述 v-md-editor 是基于 Vue 开发的 markdown 编辑器组件 轻量版编辑器 轻量版编辑器左侧编辑…...

java正则表达式 及应用场景爬虫,捕获分组非捕获分组

正则表达式 通常用于校验 比如说qq号 看输入的是否符合规则就可以用这个 public class regex {public static void main(String[] args) {//正则表达式判断qq号是否正确//规则 6位及20位以内 0不能再开头 必须全是数子String qq"1234567890";System.out.println(qq…...

基于 Debian 稳定分支发行版的Zephix 7 发布

Zephix 是一个基于 Debian 稳定版的实时 Linux 操作系统。它可以完全从可移动媒介上运行&#xff0c;而不触及用户系统磁盘上存储的任何文件。 Zephix 是一个基于 Debian 稳定版的实时 Linux 操作系统。它可以完全从可移动媒介上运行&#xff0c;而不触及用户系统磁盘上存储的…...

MBR20100CT-ASEMI肖特基MBR20100CT参数、规格、尺寸

编辑&#xff1a;ll MBR20100CT-ASEMI肖特基MBR20100CT参数、规格、尺寸 型号&#xff1a;MBR20100CT 品牌&#xff1a;ASEMI 芯片个数&#xff1a;2 封装&#xff1a;TO-220 恢复时间&#xff1a;&#xff1e;50ns 工作温度&#xff1a;-65C~175C 浪涌电流&#xff1a…...

修炼k8s+flink+hdfs+dlink(五:安装dockers,cri-docker,harbor仓库)

一&#xff1a;安装docker。&#xff08;所有服务器都要安装&#xff09; 安装必要的一些系统工具 sudo yum install -y yum-utils device-mapper-persistent-data lvm2添加软件源信息 sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/cent…...

github: kex_exchange_identification: Connection closed by remote host

问题描述 (base) ➜ test git:(dev) git pull kex_exchange_identification: Connection closed by remote host Connection closed by 192.30.255.113 port 22 致命错误&#xff1a;无法读取远程仓库。解决方案 参照下边文档 https://docs.github.com/en/authentication/tr…...

AWS香港Web3方案日,防御云安全实践案例受关注

9月26日&#xff0c;AWS合作伙伴之Web3解决方案日在香港举办。来自人工智能、Web3等领域的创业公司、技术专家、风险投资商&#xff0c;就元宇宙时代未来发展进行了深入交流。现场展示了顶象防御云在金融与Web3领域的安全实践案例。 Web3为互联网体系架构的一个整体演进和升级&…...

QT 集成MQTT过程

1 编译库文件 Qt QtMqtt官方源码编译教程_“qtmqtt/qmqttglobal.h”: no such file or directory-CSDN博客 2 参考文献 Qt开发MQTT&#xff08;一&#xff09; 之Qt官方Qt MQTT-CSDN博客 QTMQTT 使用MQTT官方库_qt mqtt 官方库-CSDN博客...

GeoServer改造Springboot启动五(解决接口返回xml而不是json)

请求接口返回的是xml&#xff0c;而不是我们常用的json&#xff0c;问题呈现如下图 40 图 40请求接口返回XML 在RequestMapping注解上增加produces {MediaType.APPLICATION_JSON_UTF8_VALUE} 图 41增加produces...

在unity中给游戏物体一个标记

标记 方便识别&#xff01; 标签&#xff08;Tag&#xff09; 引擎内部会对物体的标签建立了索引。通过标签查找物体&#xff0c;要比通过名字查找物体快得多。标签最多只能有 32个。前几个是常用标签&#xff0c;具有特定含义&#xff0c;例如玩家( Player)、主摄摄像机 (Mai…...

【黑马程序员】机器学习

&#xff08;一&#xff09;机器学习概述 一、机器学习算法分类 1、监督学习&#xff1a; &#xff08;1&#xff09;目标值是类别&#xff1a;分类问题 k-近邻算法、贝叶斯分类、决策树与随机森林、逻辑回归 &#xff08;2&#xff09;目标值是连续型的数据&#xff1a;回归…...

flutter card 使用示例

Card组件是卡片组件&#xff0c;内容可以由列表的widget组成&#xff0c;Card组件具有阴影圆角的功能。 常用属性&#xff1a; 属性 说明 margin 外边距elevation 阴影值的深度child 子元素 import package:flutter/material.dart;void main() > runApp(MyApp());class M…...

推荐算法:是否对用户判断能力有影响!!!

首先认识几种常见的推荐算法&#xff1a;推荐算法是一种在信息推送和个性化服务领域常用的技术。它通过分析用户的兴趣、行为和偏好&#xff0c;提供个性化的建议和推荐&#xff0c;以满足用户的需求。以下是对几种常见推荐算法的重新排版&#xff0c;并探讨了它们的作用、影响…...

【OpenVINO】OpenVINO C# API 常用 API 详解与演示

OpenVINO C# API 常用 API 详解与演示 1 安装OpenVINO C# API2 导入程序集 3 初始化OpenVINO 运行时内核4 加载并获取模型信息4.1 加载模型4.2 获取模型信息 5 编译模型并创建推理请求6 张量Tensor6.1 张量的获取与设置6.2 张量的信息获取与设置 7 加载推理数据7.1 获取输入张量…...

django无法导入第三方库

引子 有的人可能会很困惑&#xff0c;为什么自己在pip中安装了某个包&#xff0c;但是在django中死活无法导入。 在cmd中能够导入。 启动django&#xff0c;总是无法导入。 本文将会用一分钟解决你的困惑。 正文 那么本文以上述的第三方库dj_db_conn_pool为例&#xff0c;…...

7-k8s-helm管理

文章目录 一、为什么需要Helm二、Helm相关概念介绍三、Helm安装四、Helm指令介绍五、Helm创建tomcat六、Helm创建tomcat其他方式七、Helm创建redis 一、为什么需要Helm k8s部署&#xff1a;k8s平台部署的服务都是由资源文件描述组成&#xff0c;传统的k8s部署应用需要手工编排…...

零基础怎么样才能学好 Python?Python 入门必看

Python 目前可以用一个字来描述那就是 “火”&#xff0c;问题来了&#xff0c;这么火的语言零基础小白到底该怎样学习 Python&#xff1f; 首先&#xff0c;从基础开始学习&#xff0c;切勿毛躁。 刚开始学习 Python 的时候&#xff0c;我们可能会有些毛躁总觉得这些知识太简…...

1.X3-Warming up

/* 此程序使用 Boost Spirit 库来解析用户提供的逗号分隔的数字列表。它演示了如何使用 Spirit 来定义解析 器和执行解析操作&#xff0c;并且在用户输入时反复执行解析操作。用户可以提供一系列逗号分隔的数字&#xff0c;程序会检查它们 是否符合指定的解析规则。如果解析成功…...

【23真题】两电一邮之一,难度骤降!24可能回升!

今天分享的是23年电子科技大学858的信号与系统试题及解析。23成电858真题和22年相比&#xff0c;难度骤降&#xff01;今年我预测可能会有反弹。22年成电858真题&#xff0c;是我做过的22真题中数一数二的难度&#xff01;23年一般&#xff0c;但是题目也很好&#xff0c;真的很…...

持续集成部署-k8s-资源调度:DaemonSet

持续集成部署-k8s-资源调度:DaemonSet 1. DaemonSet 简介2. 部署 Fluent 日志收集程序1. DaemonSet 简介 在 Kubernetes 中,DaemonSet 是一种用于在集群中运行一个 Pod 副本的控制器对象。它可以保证在每个节点上都运行一个 Pod 副本,并且在节点加入或退出集群时自动地更新…...

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角&#xff0c;以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向&#xff0c;距离坐标原点x个像素;第二个是y坐标&#xff0c;表示当前位置为垂直方向&#xff0c;距离坐标原点y个像素。 坐标体系-像素 …...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

PAN/FPN

import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

WebRTC从入门到实践 - 零基础教程

WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC&#xff1f; WebRTC&#xff08;Web Real-Time Communication&#xff09;是一个支持网页浏览器进行实时语音…...

【深度学习新浪潮】什么是credit assignment problem?

Credit Assignment Problem(信用分配问题) 是机器学习,尤其是强化学习(RL)中的核心挑战之一,指的是如何将最终的奖励或惩罚准确地分配给导致该结果的各个中间动作或决策。在序列决策任务中,智能体执行一系列动作后获得一个最终奖励,但每个动作对最终结果的贡献程度往往…...

《信号与系统》第 6 章 信号与系统的时域和频域特性

目录 6.0 引言 6.1 傅里叶变换的模和相位表示 6.2 线性时不变系统频率响应的模和相位表示 6.2.1 线性与非线性相位 6.2.2 群时延 6.2.3 对数模和相位图 6.3 理想频率选择性滤波器的时域特性 6.4 非理想滤波器的时域和频域特性讨论 6.5 一阶与二阶连续时间系统 6.5.1 …...

跨平台商品数据接口的标准化与规范化发展路径:淘宝京东拼多多的最新实践

在电商行业蓬勃发展的当下&#xff0c;多平台运营已成为众多商家的必然选择。然而&#xff0c;不同电商平台在商品数据接口方面存在差异&#xff0c;导致商家在跨平台运营时面临诸多挑战&#xff0c;如数据对接困难、运营效率低下、用户体验不一致等。跨平台商品数据接口的标准…...