import { creatApp } 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';
VMdEditor.use(githubTheme);
const app = creatApp(/*...*/);
app.use(VMdEditor);
前言
vue3
正式版发布不久,生态尚未完全发育。目前,支持 的开源 Markdown 编辑器组件基本上很少。我推荐非常有用的 v-md-editor 组件。组件功能非常强大,文档也很详细。本文仅介绍该组件的常用功能。更多高级功能可以在官方文档中找到。
安装
# 使用 npm
npm i @kangc/v-md-editor@next -S
# 使用yarn
yarn add @kangc/v-md-editor@next
组件介绍
import { creatApp } 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';
VMdEditor.use(githubTheme);
const app = creatApp(/*...*/);
app.use(VMdEditor);
基本用途
<template>
<v-md-editor v-model="text" height="400px"></v-md-editor>
</template>
<script>
import { ref } from 'vue';
export default {
setup () {
const text = ref('');
return {
text
}
}
}
</script>
如何在页面上呈现保存的标签文本或html?
- 渲染保存的标签文本
方法一:如果您的项目中安装了编辑器。您可以使用编辑器的预览模式直接渲染。例如
<template>
<v-md-editor :value="markdown" mode="preview"></v-md-editor>
</template>
<script>
import { ref } from 'vue';
export default {
setup () {
const markdown = ref('');
return {
markdown
}
}
}
</script>
方法二:如果您的项目不需要编辑功能,只需要渲染标签文本,则可以只实现预览组件进行渲染。例如
// main.js
import { creatApp } from 'vue';
import VMdPreview from '@kangc/v-md-editor/lib/preview';
import '@kangc/v-md-editor/lib/style/preview.css';
// 引入你所使用的主题 此处以 github 主题为例
import githubTheme from '@kangc/v-md-editor/lib/theme/github';
import '@kangc/v-md-editor/lib/theme/style/github.css';
VMdPreview.use(githubTheme);
const app = creatApp(/*...*/);
app.use(VMdPreview);
<template>
<v-md-preview :text="markdown"></v-md-preview>
</template>
<script>
import { ref } from 'vue';
export default {
setup () {
const markdown = ref('');
return {
markdown
}
}
}
</script>
- 渲染保存的html文本
如果您的项目不需要编辑功能,只需要渲染html,则可以只实现preview-html组件进行渲染。例如:
// main.js
import { creatApp } from 'vue';
import VMdPreviewHtml from '@kangc/v-md-editor/lib/preview-html';
import '@kangc/v-md-editor/lib/style/preview-html.css';
// 引入使用主题的样式
import '@kangc/v-md-editor/lib/theme/style/vuepress';
const app = creatApp(/*...*/);
app.use(VMdPreviewHtml);
<template>
<!-- preview-class 为主题的样式类名,例如vuepress就是vuepress-markdown-body -->
<v-md-preview-html :html="html" preview-class="vuepress-markdown-body"></v-md-preview-html>
</template>
<script>
import { ref } from 'vue';
export default {
setup () {
const html = ref('<div data-v-md-line="1"><h1 align="center">Markdown Editor built on Vue</h1>');
return {
html
}
},
};
</script>
更高级的使用请参见官方文档:v-md-editor
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。