本文转载于:猿2048网站▷https://www.mk2048.com/blog/blog.php?id=h0jbc1kh0j
GitHub : https://github.com/coinsuper/vue-markdown
更新日志
v0.7.0
- 修复主题无法更新的问题
- 修复文档初始化值无法动态切换的问题
v0.8.0
- 新增md文件导出和读取功能
- 修改预览部分样式
- 修改头部菜单样式
1.简介
一款使用marked和highlight.js开发的一款markdown编辑器,目前只支持在vue项目中使用。 编辑器涵盖了常用的markdown编辑器功能,工具栏可自定义配置,也可进行二次开发。
效果

2.安装
npm i -S vue-meditor
3.在项目中使用
import MarkDown from 'vue-meditor'
...
components:{
MarkDown
}
...
<template>
<mark-down/>
</template>
4.props
| 名称 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| title | String | 编辑器标题,默认为空,不显示 | |
| titleStyle | Object | 标题样式,如果自定义标题时可自行编写样式 | |
| initialValue | String | 编辑器初始化内容 | |
| width | Number | 编辑器宽度 | |
| height | Number | 编辑器高度,单位 px | 600 |
| theme | String | 代码块主题配置,共有四个值,分别为Light、Dark、OneDark、GitHub | Light |
| autoSave | Boolean | 是否自动保存 | true |
| interval | Number | 自动保存频率,单位毫秒 | 10000 |
| toolbars | Object | 工具栏配置,具体功能详见工具栏功能配置表 | |
| mode | Number | 初始化显示模式 1 分屏显示 2 预览详情 3 全屏编辑 |
5.events
| 名称 | 说明 |
|---|---|
| on-save | 自动保存或者手动保存时触发,返回当前编辑器内原始输入内容和转以后的内容 |
6.工具栏配置
| 名称 | 说明 | 默认显示 |
|---|---|---|
| strong | 粗体 | 是 |
| italic | 斜体 | 是 |
| overline | 删除线 | 是 |
| h1 | 标题1 | 是 |
| h2 | 标题2 | 是 |
| h3 | 标题3 | 是 |
| h4 | 标题4 | 否 |
| h5 | 标题5 | 否 |
| h6 | 标题6 | 否 |
| hr | 分割线 | 是 |
| quote | 引用 | 是 |
| ul | 无序列表 | 是 |
| ol | 有序列表 | 是 |
| code | 代码块 | 是 |
| link | 链接 | 是 |
| image | image | 是 |
| table | 表格 | 是 |
| checked | 已完成列表 | 是 |
| notChecked | 未完成列表 | 是 |
| shift | 预览 | 是 |
| 打印 | 否 | |
| theme | 主题切换 | 是 |
| fullscreen | 全屏 | 是 |
| exportmd | 导出为*.md文件 | 是 |
| importmd | 导入本地*.md文件 | 是 |
7.其他说明
关于保存时返回值
markdownValue // 编辑器输入的原始内容
htmlValue // 右侧现实的问转义后的内容
theme // 保存时的主题名字
工具栏配置
// 例:
const config = {
print:false // 隐藏掉打印功能
}
<MarkDown :toolbars="config"/>
关于二次开发
原始文件在src/markdown下,可在其基础上自定义开发,也可将markdown文件夹
复制到新项目中,安装对应依赖 highlight.js和marked即可
关于二次开发后打包
// 修改webpack.config.js
entry: './src/main.js', // main.js改为index.js
output: {
path: path.resolve(__dirname, './dist'),
publicPath: '/dist/',
filename: 'build.js', // 输出文件名改为index.js或其他
libraryTarget: 'umd',
library: 'markdown-vue',
umdNamedDefine: true
},
更多专业前端知识,请上【猿2048】www.mk2048.com