{"id":19990503,"url":"https://github.com/blowsnowit/vue-bl-markdown-editor","last_synced_at":"2025-05-04T09:35:54.523Z","repository":{"id":55923004,"uuid":"205654249","full_name":"blowsnowit/vue-bl-markdown-editor","owner":"blowsnowit","description":"一个基于markdown-it 高度可扩展的vue编辑器组件","archived":false,"fork":false,"pushed_at":"2020-12-07T04:19:25.000Z","size":7136,"stargazers_count":68,"open_issues_count":2,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-19T20:22:10.294Z","etag":null,"topics":["markdown","markdown-it","vue"],"latest_commit_sha":null,"homepage":"http://markdown-editor.bload.cn/html/","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/blowsnowit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"custom":["http://paypal.me/blowsnow","https://i.loli.net/2019/09/02/vrJgXxpKmnHBLyD.png"]}},"created_at":"2019-09-01T09:16:15.000Z","updated_at":"2024-10-30T10:45:11.000Z","dependencies_parsed_at":"2022-08-15T09:31:06.571Z","dependency_job_id":null,"html_url":"https://github.com/blowsnowit/vue-bl-markdown-editor","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blowsnowit%2Fvue-bl-markdown-editor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blowsnowit%2Fvue-bl-markdown-editor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blowsnowit%2Fvue-bl-markdown-editor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blowsnowit%2Fvue-bl-markdown-editor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/blowsnowit","download_url":"https://codeload.github.com/blowsnowit/vue-bl-markdown-editor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252317000,"owners_count":21728521,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["markdown","markdown-it","vue"],"created_at":"2024-11-13T04:51:16.366Z","updated_at":"2025-05-04T09:35:54.086Z","avatar_url":"https://github.com/blowsnowit.png","language":"Vue","funding_links":["http://paypal.me/blowsnow","https://i.loli.net/2019/09/02/vrJgXxpKmnHBLyD.png"],"categories":["Vue"],"sub_categories":[],"readme":"@[toc](目录)\n\n# vue-bl-markdown-editor\n\n\u003e 一个基于markdown-it 高度可扩展的vue编辑器组件\n\n\u003e 允许提供插槽自定义工具栏\n\n\u003e 允许通过动态注册组件，允许插入工具栏指定位置\n\n\u003e 优势： 可完全自定义工具栏功能，markdown-it插件调用等\n\n\u003e [演示站](http://markdown-editor.bload.cn/html/)\n\n![11111](https://images.gitee.com/uploads/images/2019/0922/105532_62dec7a6_1130434.png \"屏幕截图.png\")\n\n###  安装\n```\n$ npm install vue-bl-markdown-editor --save\n```\n### Use (如何引入)\n\n`main.js`:\n```javascript\n    // 全局注册\n    // import with ES6\n    import Vue from 'vue'\n    import MarkDownEditor from 'vue-bl-markdown-editor'\n    import 'vue-bl-markdown-editor/dist/css/main.css'\n    // use\n    Vue.use(MarkDownEditor);\n    new Vue({\n        'el': '#main',\n        data() {\n            return { value: '' }\n        }\n    })\n```\n### 配置要求\n```html\n\u003c!--本组件使用font-awesome字体图标库，请于index.html提前引入--\u003e\n\u003clink href=\"//cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.min.css\" rel=\"stylesheet\"\u003e\n\u003c!--代码块样式，更多查看 https://highlightjs.org --\u003e\n\u003clink href=\"//cdn.bootcss.com/highlight.js/9.14.1/styles/atom-one-dark.min.css\" rel=\"stylesheet\"\u003e\n\u003c!--编辑器主题颜色--\u003e\n\u003clink href=\"//cdn.bootcss.com/github-markdown-css/3.0.1/github-markdown.min.css\" rel=\"stylesheet\"\u003e\n\n```\n\n\n### 配置\n|名称|类型|默认值|描述|\n|---|---|---|---|\n|placeholder|String|请输入内容|提示文本|\n|height|Number|500|编辑器高度|\n|isShowToolBar|Boolean|true|是否显示工具栏|\n|isShowToolBarRight|Boolean|true|是否显示右侧工具栏|\n|showMode|String|edit|显示模式，edit,see 编辑/预览模式,isSplit true下无效|\n|isShowSplit|Boolean|true|是否分屏，手机只可显示一个，此状态无效|\n|toolBars|Array|见下面|工具栏,排序和显示|\n|config|Object|见下面|工具栏的配置|\n|isSyncScroll|Boolean|true|是否同步滚动|\n\n\n\n#### 工具栏\n\u003e 开发工具栏例子查看 src/dev/toolBar\n\n|名称|描述|\n|---|---|\n|bold|粗体|\n|italic|斜体|\n|header|标题|\n|underline|下划线|\n|strikethrough|中划线|\n|thumb-tack|标记|\n|superscript|上角标|\n|subscript|下角标|\n|align-left|居左|\n|align-center|居中|\n|align-right|居右|\n|quote-left|段落引用|\n|list-ol|有序列表|\n|list-ul|无须列表|\n|link|链接|\n|picture|图片|\n|code|代码块|\n|table|表格|\n|emoji|表情|\n|undo|上一步|\n|repeat|下一步|\n|trash|清空|\n|about|关于，希望保留|\n|separator|分隔符|\n#### 工具栏配置\n```javascript\nconfig: {\n  emojis:{\n    // 配置多个表情\n    more:[{name:'test',datas:['1','2']}],\n    //是否覆盖默认的\n    isCover: true\n  },\n  // 配置图片上传\n  picture:{\n    // 需要传回去上传后的路径\n    // from paste/drag/upload 粘贴/拖拽/上传\n    // 回调 异步请使用promise 案例看 src/dev/App.vue \n    uploadCallback: (file,from)=\u003e{\n      return new Promise(resolve =\u003e {\n        resolve({name:'',url: ''});\n      });\n    },\n    // 是否解析图片列表\n    resolving: true\n  }\n}\ntoolBars:[\n  'bold','italic',...更多\n]\n```\n\n#### 自定义工具栏\n```javascript\nlet editor = this.$refs.editor;\nlet toolBar1 = editor.registerToolBarComponent('demo1',require(Example1.vue));\neditor.addToolBar(toolBar1/*,0 插入位置*/);\n```\n\n### 方法\n|名称|参数|描述|\n|---|---|---|\n|registerToolBarComponent|组件名,组件|动态注册组件作为工具栏，使用方法看上|\n|addToolBar|registerToolBarComponent返回的实例化组件,添加位置（默认最后）|添加工具栏组件|\n|delToolBar|删除位置|删除指定位置工具栏（不包括通过插槽加入的）|\n|insertContent|前缀,内容,后缀,是否强制替换内容,是否插入的时候选择|插入内容|\n\n### 事件\n|名称|参数|描述|\n|---|---|---|\n|input|内容|输入内容|\n|ready|markdownit|加载完毕|\n\n### 插槽\n|名称|描述|\n|---|---|\n|tool-bar-left-head|工具栏左侧头部插槽|\n|tool-bar-left-foot|工具栏左侧尾部插槽|\n|tool-bar-right-head|工具栏右侧头部插槽|\n|tool-bar-right-foot|工具栏右侧尾部插槽|\n\n### 高级扩展\n- 允许自行调用markdownit 注册插件 （从ready事件中获取/直接从ref中获取）\n\n\n## TODO\n- [X] 基础工具栏\n- [X] 实现撤销恢复功能 \n- [X] 兼容手机\n- [X] 样式美化\n- [X] 本项目中打包dev演示页面\n- [X] highlight 样式引用（*）\n- [X] 图片上传回调配置\n- [X] 图片粘贴上传\n- [x] 图片拖拽上传\n- [x] 同步滚动(暂时按滚动条高度计算**)\n\u003e 录音兼容问题（测试chrom/firefox正常,edge申请失败）\n\n\u003e 必须运行在 https 下 测试可以正常运行\n- [x] 自定义录音工具栏组件(*) \n- [ ] 本地图片粘贴上传不支持（待解决）\n## 测试\n- [x] 自定义工具栏\n- [x] 表情配置\n- [X] 图片上传\n- [X] 粘贴上传\n- [x] 拖入上传\n\n## BUG\n- [X] 最底部插入列表无法自动换行到下一行显示（使用回车自动向下滚动）\n- [ ] 手机模式下工具栏最后一栏位置异常（pc模拟手机 还原不了无法测试）\n- [ ] 实时渲染 太卡导致连输，不正常显示\n#### 希望大家一起开发好用的工具栏吧\n\n## 赞助\n![UTOOLS1567434353534.png](https://images.gitee.com/uploads/images/2019/0909/094047_e4635129_1130434.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblowsnowit%2Fvue-bl-markdown-editor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblowsnowit%2Fvue-bl-markdown-editor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblowsnowit%2Fvue-bl-markdown-editor/lists"}