@gdyfe/quill-editor

0.2.1 • Public • Published

gdy-quill-editor

基于Quill的vue编辑器组件 npm@0.1.6

Base

"quill": "2.0.0-dev.4"

Install

// npm
npm install gdy-quill-editor  
// yarn
yarn add gdy-quill-editor 

Start

lerna bootstrap
// if you want run demo
yarn serve:demo

Usage

Global

// gdyEditor = { Quill, gdyEditor, install, Dplayer }
// VUE Global registration
import Vue from 'vue'
import 'gdy-quill-editor/dist/main.css'
import gdyEditor from 'gdy-quill-editor'
Vue.use(gdyEditor)

Local

// VUE Local registration 
import { gdyEditor } from 'gdy-quill-editor'
import 'gdy-quill-editor/dist/main.css'
components: {
  gdyEditor,
},

Options & Events

  • props
props 类型 是否必填 默认值 描述
isShowTips Boolean false false 是否显示title tips(鼠标悬浮弹出的提示框)
isShowCode Boolean false true 是否显示html代码区(出现在编辑区下方)
options Object false false 编辑器是否能编辑
isShowTips Boolean false {placeholder: '请输入你的内容', ...} quill设置(参考quill文档https://quilljs.com/docs/configuration/#options
globalOptions Object false {} 全局quill设置(优先级大于options,Obj二级直接覆盖,说明见globalOptions)
toolbarOptions Object false {} 菜单栏设置(优先级大于globalOptions)
  • emit
emit 参数 描述
blur quill实例 编辑器失焦
focus quill实例 编辑器聚焦
input quill实例 编辑器输入
change { html, text, quill } 编辑器改变
ready quill实例 编辑器初始化完成
imgHandle {base64: String, imgFile: File , insert: Function} 图片上传(参数:「图片的base64对象,图片的File对象 , 上传成功调用插入方法」
  • inner methods
methods 参数 描述
addVideoLink { url: String, id: String, poster: String, height: String,width: String} 添加一个自定义视频, 参数:「视频url,视频唯一id,视频封面 ,视频height 默认50 单位px,视频width 默认100 单位px 」
addTextLink { innerText: String, dataValue: String, href: String} 添加一个自定义超链接, 参数:「插入的文字,data-value,链接」
  • globalOptions
// 1. 使用已定义的toolbar
import { fontType, fontColor, other, alltype } from 'gdy-quill-editor/lib/config/toolbar'
import { handlers } from 'gdy-quill-editor/lib/config/handlers'
toolbarOptions = {
  container: alltype,
  handlers,
}
// 2. 你也可以自定义你的toolbar
// 比如:<div id="toolbar">
toolbarOptions = {
  container: '#toolbar',
  handlers,
}
  • titleConfig
titleConfig 说明
ql-bold 加粗
ql-color 颜色
ql-font 字体
ql-code 插入代码
ql-italic 斜体
ql-link 添加链接
ql-background 背景颜色
ql-size 字体大小
ql-strike 删除线
ql-script 上标/下标
ql-underline 下划线
ql-blockquote 引用
ql-header 标题
ql-indent 缩进
ql-list 列表
ql-align 文本对齐
ql-direction 文本方向
ql-code-block 代码块
ql-formula 公式
ql-image 图片
ql-video 视频
ql-clean 清除字体样式
ql-grammarly-inline 插入分割线
ql-shortcode 自定义命令
ql-table 表格
ql-table-insert-row 增加行
ql-table-insert-column 增加列
ql-table-delete-row 删除行
ql-table-delete-column 删除列
ql-lineHeight 行高
ql-history-back 返回
ql-history-redo 撤销返回
ql-emoji 表情
ql-dangerously-paste 完全复制, 禁用quill所有的黏贴过滤规则, 存在position样式可能会出现不能复制的问题
  • video
// video在编辑视频并不会播放,会以封面图的图片展示  
// 你需要在预览中初始化视频的播放:
// 使用Dplayer初始化
import { Dplayer } from 'gdy-quill-editor'
// 参考 packages/editor-demo/src/components/EditorDemo/index 273-300
const op = HTMLDecode(options[1])
op.container = document.querySelectorAll('#' + op.container)[1]
const myvideo = new Dplayer(op)
myvideo.play()
  • 上传图片
// <gdy-editor @imgHandle="imgHandle"/>
// ...
imgHandle(param) { 
  // 这里使用axios举个🌰
  axios.post(url: 'http://xxx.xxx.xxx',qs.stringify({img: param.base64,})).then(
     () => { 
       /* 200 */ param.insert()
       /* else */ param.insert(param.base64)
     },
     // failed
     () => {
       param.insert(base64)
     }
   )
  },
  • 其他 initEditor中自定义图标和方法
// 1. 现在toolbarOptions中的handlers添加一个自己的方法
handlers['xxx'] = function() {}
// 2. 操作dom给它添加图标和title tip
document.getElementsByClassName(className)[0].innerHTML = `图标`
document.querySelector('.ql-toolbar').querySelector('.ql-xxx').dataset.title = 'xxx'
// 3. 给它定义触发事件
quill.getModule('toolbar').addHandler('xxx', () => {})
// or.你也可以在handlers添加方法 handlers.xxx = function(){},但要注意作用域

// 上传并添加后的图片地址
// 参考 packages/editor-demo/src/components/EditorDemo/index 194-250

Screenshot

avatar

Package Sidebar

Install

npm i @gdyfe/quill-editor

Weekly Downloads

1

Version

0.2.1

License

none

Unpacked Size

21.2 MB

Total Files

53

Last publish

Collaborators

  • whzcorcd
  • laev
  • shelter01