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

简介: 本文介绍了如何在Vue 3项目中使用v-md-editor组件库来创建markdown编辑器和预览组件。文章提供了安装步骤、如何在main.js中进行全局配置、以及如何在页面中使用VMdEditor和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'; // highlightjs

VMdEditor.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,操作更方便哦

相关文章
SublimeText配置Markdown编辑及预览
本文详细介绍了如何配置Sublime Text及相关插件,使之成为Markdown编辑器并且能够在浏览器中实现预览功能。
|
3月前
|
JavaScript
基于Vue2.X/Vue3.X对Monaco Editor在线代码编辑器进行封装与使用
这篇文章介绍了如何在Vue 2.X和Vue 3.X项目中封装和使用Monaco Editor在线代码编辑器,包括安装所需依赖、创建封装组件、在父组件中调用以及处理Vue 3中可能遇到的问题。
598 1
基于Vue2.X/Vue3.X对Monaco Editor在线代码编辑器进行封装与使用
|
3月前
|
存储 JavaScript 前端开发
Vue中通过集成Quill富文本编辑器实现公告的发布。Vue项目中vue-quill-editor的安装与使用【实战开发应用】
文章展示了在Vue项目中通过集成Quill富文本编辑器实现公告功能的完整开发过程,包括前端的公告发布、修改、删除操作以及后端的数据存储和处理逻辑。
Vue中通过集成Quill富文本编辑器实现公告的发布。Vue项目中vue-quill-editor的安装与使用【实战开发应用】
|
3月前
Vue3项目引入 vue-quill 编辑器组件并封装使用
本文介绍了如何在Vue3项目中引入并封装使用`vue-quill`富文本编辑器组件,包括安装配置、父页面实现、子组件设计以及使用方法和效果展示。
896 0
Vue3项目引入 vue-quill 编辑器组件并封装使用
|
2月前
一款非常棒的十六进制编辑器 —— 010 Editor
一款非常棒的十六进制编辑器 —— 010 Editor
|
3月前
|
前端开发 算法
ProFlow 流程编辑器框架问题之FlowView 组件中添加节点和边缘数据如何解决
ProFlow 流程编辑器框架问题之FlowView 组件中添加节点和边缘数据如何解决
53 0
|
6月前
|
程序员 Linux iOS开发
一款比Typora更简洁优雅的Markdown编辑器神器(完全开源免费)
一款比Typora更简洁优雅的Markdown编辑器神器(完全开源免费)
263 1
|
1月前
|
Ubuntu Linux 测试技术
Linux系统之部署轻量级Markdown文本编辑器
【10月更文挑战第6天】Linux系统之部署轻量级Markdown文本编辑器
82 1
Linux系统之部署轻量级Markdown文本编辑器
|
3月前
|
存储 安全 数据安全/隐私保护
Django 后端架构开发:富文本编辑器权限管理与 UEditor 、Wiki接入,实现 Markdown 文本编辑器
Django 后端架构开发:富文本编辑器权限管理与 UEditor 、Wiki接入,实现 Markdown 文本编辑器
143 0
|
5月前
|
存储 移动开发 编解码
基于HTML5开发的Markdown在线编辑器
Markdown是一种轻量级标记语言,以其简洁易读的格式而备受程序员和作者们的青睐。随着互联网的发展,越来越多的在线Markdown编辑器应运而生,为用户提供了更加便捷、高效的写作和编辑环境。本文将探讨基于HTML5开发的Markdown在线编辑器的设计原理、功能特点以及技术优势。
120 4