# WIKE_md编辑器 **Repository Path**: wike2019/wike__md_editor ## Basic Information - **Project Name**: WIKE_md编辑器 - **Description**: 这个项目是一款使用marked和highlight.js改造而来的编辑器,用户高度定制化自己需求的一款编辑器 - **Primary Language**: JavaScript - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 14 - **Forks**: 1 - **Created**: 2020-07-21 - **Last Updated**: 2023-06-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # WIKE 在现有MD编辑器上进行的二次开发,本项目长期维护,如果有定制需求请提issue ## 简介 一款使用marked和highlight.js开发的一款markdown编辑器,除常见markdown语法外,支持快捷输入、图片粘贴、代码复制、全屏编辑、预览等功能。 使用起来简单方便,只需几行代码,即可在你的页面上引入一个markdown编辑器,编辑区支持像专业编辑器那样。 1. 线上预览地址 https://wikecloud.com/md 2. git地址 https://gitee.com/wike2019/wike__md_editor ## 特点 方便扩展,根据实际需求,支持常见的功能配置,也可根据实际需求进行深度定制 体积小,加载速度快 源码有注释 方便学习理解,也可以二次开发 键盘事件监听,如保存、粘贴、回车时上次输入语法判断等 支持图片复制导入功能(目前只支持单张图片) 可扩展性强,除了提供的属性配置编辑器,也可直接在原有组件基础上进行二次开发 ## 使用方式 通过 npm 安装 wk_md: ``` npm i wk_md --save ``` ## 项目介绍 ``` ├── md/ ----- 组件目录 │ ├── index.vue ----- 编辑器主文件 │ ├── utils/ ----- 工具函数 │ ├── config/ ----- 配置信息 │ │ └── tools.js/ ----- 工具栏配置信息 │ │ └── marked.js/ ----- 编辑器配置信息 | │ └── alert.js/ ----- 弹窗配置信息 | │ └── event.js/ ----- 事件配置信息 │ ├── components/ ----- 子组件 │ │ └── dialog.vue ----- 弹窗模板组件 │ │ └── tools.vue ----- 工具栏组件 │ │ └── alert.vue ----- 弹窗组件 │ ├── assets/ ----- 第三方,及项目资源文件 ``` ## 简单使用 ``` ``` ---- ## 编辑器基本属性 ### value - Type: String/Number - Default: '' 编辑器输入的文本,支持通过v-dodel数据双向绑定设置编辑器内容和获取编辑器的值。 ### width - Type: String/Number - Default: auto 编辑器的初始化宽度。 ### height - Type: Number - Default: 600 编辑器的初始化高度。 ### bordered - Type: Boolean - Default: true 编辑器是否含有边框。 ### autoSave - Type: Boolean - Default: false 是否开启自动保存,设置为开启时可通过绑定on-save事件获取编辑器内的值和代码块主题。 ``` ``` ``` handleOnSave({value,html}){ //value md编辑器的内容 //html md编辑器解析成的html console.log(value,html); } ``` ### interval - Type: Number - Default: 10000 自动保存间隔时间,单位:mm,默认10000mm,需要autoSave = true时才有效 ### exportFileName - Type: String - Default: 我的文档 导出的md文件名称,默认 我的文档.md。 ### markedOptions - Type: Object - Default: {} marked配置项,可以根据需求自定义。 ```javascript ``` ### toolbars - Type: Object - Default: 参见下表 头部菜单按钮,通过设置true or false控制决定是否显示,目前配置支持持控制按钮显示隐藏,后续将支持根据配置显示排列顺序。 | 名称 | 说明 | 默认是否显示 | | ---------- | ---------------- | ------------ | | 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 | 未完成列表 | 是 | | preview | 预览 | 是 | | fullscreen | 全屏 | 是 | | exportmd | 导出为*.md或者pdf文件 | 是 | | importmd | 导入本地*.md文件 | 是 | | save | 保存按钮 | 是 | | clear | 清空内容 | 是 | | sql | 解析sql | 是 | | html | 解析html | 是 | | importword | 导入word | 是 | ---- ## 编辑器事件 ### on-ready 编辑器初始化完成时触发,返回值为Object,包含组件本身和insertContent方法。 ``` onReady({vm,insertContent}) { //vm为组件对象 //insertContent插入内容函数 }, ``` ### on-save 编辑器保存事件,自动保存或者手动保存时触发,支持ctrl+s或command+s触发保存,返回值类型为Object,包含当前输入值value和md渲染成的html。 ``` onSave({value,html}) { //value 为md编辑器的内容 //html 为md内容解析成的html }, ``` ### on-upload-image 图片上传事件,用户自定义上传图片,复制粘贴图片截图、文件和点开菜单栏上传按钮时式触发,返回file文件,上传文件后可结合insertImage插入图片。 ``` onUpladImage(file) { let formData = new FormData() formData.append('file', file, file.name) //将formdata发送到后台即可 axios.post('服务器地址', formData).then((data) => { console.log(data) this.$refs.md.insertImage(data.data.url); }) } ``` ## 问题反馈 对于功能上的缺陷、使用方法和希望扩展的功能,可以提 [Issues](https://gitee.com/wike2019/wike__md_editor/issues/new)。 作者qq 3223136293