朱加勇 發表於 2026-1-12 09:50:31

Vue3使用md-editor-v3的实例解读markdown文本

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li><a href="#_label0">1. 基础实现</a></li><ul class="second_class_ul"><li><a href="#_lab2_0_0">安装依赖</a></li><li><a href="#_lab2_0_1">基础编辑器组件 (BasicEditor.vue)</a></li><li><a href="#_lab2_0_2">自定义工具栏</a></li></ul><li><a href="#_label1">2. 预览功能</a></li><ul class="second_class_ul"><li><a href="#_lab2_1_3">预览组件 (&lt;MdPreview.vue)</a></li></ul><li><a href="#_label2">总结</a></li><ul class="second_class_ul"></ul></ul></div><p>下面我将提供一个完整的 Vue 3 项目中使用 md-editor-v3 的 Markdown 编辑器实现,包含常用功能和最佳实践。</p>
<p class="maodian"><a name="_label0"></a></p><h2>1. 基础实现</h2>
<p class="maodian"><a name="_lab2_0_0"></a></p><h3>安装依赖</h3>
<div class="jb51code"><pre class="brush:js;">npm install md-editor-v3
</pre></div>
<p>也可以是pnpm安装</p>
<div class="jb51code"><pre class="brush:js;">pnpm install md-editor-v3
</pre></div>
<p class="maodian"><a name="_lab2_0_1"></a></p><h3>基础编辑器组件 (BasicEditor.vue)</h3>
<div class="jb51code"><pre class="brush:js;">&lt;template&gt;
&lt;template&gt;
&lt;MdEditor v-model="text" /&gt;
&lt;/template&gt;

&lt;script setup&gt;
import { ref } from 'vue';
import { MdEditor } from 'md-editor-v3';
import 'md-editor-v3/lib/style.css';

const text = ref('Hello Editor!');
&lt;/script&gt;
</pre></div>
<p class="maodian"><a name="_lab2_0_2"></a></p><h3>自定义工具栏</h3>
<p>根据 md-editor-v3 的文档,以下是完整的工具栏参数列表:</p>
<div class="jb51code"><pre class="brush:js;">const toolbars = [
'bold',          // 加粗
'underline',   // 下划线
'italic',      // 斜体
'strikeThrough', // 删除线
'title',         // 标题
'sub',         // 下标
'sup',         // 上标
'quote',         // 引用
'unorderedList', // 无序列表
'orderedList',   // 有序列表
'task',          // 任务列表
'codeRow',       // 行内代码
'code',          // 代码块
'link',          // 链接
'image',         // 图片
'table',         // 表格
'mermaid',       // Mermaid图表
'katex',         // 数学公式
'revoke',      // 撤销
'next',          // 重做
'save',          // 保存
'=',             // 等宽
'pageFullscreen',// 页面全屏
'fullscreen',    // 全屏
'preview',       // 预览
'htmlPreview',   // HTML预览
'catalog',       // 目录
'-'            // 分隔符
]
</pre></div>
<p>您可以根据需要自由组合这些参数来定制工具栏。</p>
<p>参考以下示例</p>
<div class="jb51code"><pre class="brush:js;">&lt;script setup&gt;
import { ref } from 'vue'
import { MdEditor } from 'md-editor-v3'
import 'md-editor-v3/lib/style.css'

const text = ref('Hello Editor!')

// 自定义工具栏配置
const toolbars = [
'bold', // 加粗
'underline', // 下划线
'italic', // 斜体
'strikeThrough', // 删除线
'title', // 标题
'sub', // 下标
'sup', // 上标
'quote', // 引用
'-', // 分隔符
'unorderedList', // 无序列表
'orderedList', // 有序列表
'task', // 任务列表
'-', // 分隔符
'codeRow', // 行内代码
'code', // 代码块
'link', // 链接
'image', // 图片
'table', // 表格
'_', // 分隔符
'mermaid', // Mermaid图表
'katex', // 数学公式
'revoke', // 撤销
'next', // 重做
'save', // 保存
'=', // 等宽
'-', // 分隔符
'pageFullscreen', // 页面全屏
'fullscreen', // 全屏
'preview', // 预览
'htmlPreview', // HTML预览
'catalog', // 目录
]
&lt;/script&gt;

&lt;template&gt;
&lt;MdEditor v-model="text" :toolbars="toolbars" /&gt;
&lt;/template&gt;
</pre></div>
<p class="maodian"><a name="_label1"></a></p><h2>2. 预览功能</h2>
<p class="maodian"><a name="_lab2_1_3"></a></p><h3>预览组件 (&lt;MdPreview.vue)</h3>
<ul><li><code>MdPreview</code>是 <strong>文章预览</strong></li><li><code>MdCatalog</code>是<strong>目录预览</strong></li></ul>
<div class="jb51code"><pre class="brush:js;">&lt;template&gt;
        &lt;!-- 文章预览 --&gt;
&lt;MdPreview :id="id" :modelValue="text" /&gt;
&lt;!-- 目录预览 --&gt;
&lt;MdCatalog :editorId="id" :scrollElement="scrollElement" /&gt;
&lt;/template&gt;

&lt;script setup&gt;
import { ref } from 'vue';
import { MdPreview, MdCatalog } from 'md-editor-v3';
import 'md-editor-v3/lib/preview.css';

const id = 'preview-only';
const text = ref('# Hello Editor');
const scrollElement = document.documentElement;
&lt;/script&gt;

</pre></div>
<p>还可以实现很多功能</p>
<p>参考网址:<a href="https://imzbf.github.io/md-editor-v3/en-US/demo" rel="external nofollow"   target="_blank">md-editor-v3</a></p>
<p>这个实现提供了完整的Markdown编辑体验,可以直接集成到Vue 3项目中,也可以根据需要进行定制和扩展。</p>
<p class="maodian"><a name="_label2"></a></p><h2>总结</h2>
<p>以上为个人经验,希望能给大家一个参考,也希望大家多多支持琼殿技术社区。</p>
頁: [1]
查看完整版本: Vue3使用md-editor-v3的实例解读markdown文本