富文本组件-
yaofly2012 opened this issue · comments
yq commented
汇总
1. Draft.js
Rich Text Editor Framework for React
二级市场:
2. quilljs
Your powerful rich text editor.
二级市场:
- react-quill
- ql-editor
Vue版的quilljs
3. Slatejs
Slate is a completely customizable framework for building rich text editors.
真的做到完全自定义了,甚至都没有UI,只有富文本编辑器的核心功能。
哪些功能强大的
一直觉得Atlassian的富文本编辑器很强的尤其对表格的支持,研究了发现原来他们采用的是TinyMCE富文本编辑器。
参考
yq commented
Quill
[kwɪl]
概念
- Formats: 直面意思是格式,从配置上看是Quill支持的格式化操作。
- Modules:扩展,自定义Quill的功能。一般是非格式化相关的功能。
- Delta:Deltas represents both documents and changes to documents.
- Embeds: 指非文本内容
Formats
Format表示Quill支持的格式化操作,用一个字符串表示。Format = UI + API调用
:
- UI:用于操作
- API调用:控制如何生产富文本字符串
分类
- 行内(inline):只影响选择的文本
- 块(Block):影响整行文本(光标所在的行,或者已选择的文本所在的行)
- 内嵌(Embeds):一般指非文本元素,如图片,视频,数学表达式等。
注意: 光标左右移动的最小单位就是一个format
。比如插入了一个数学表达式,光标只能在表达上左右两边:
自定义Format
- 实现
- 注册:同名覆盖
- 使用
1. 实现
选择合适的基类,可以参考内置Formats
(在/formats
目录下)的实现。
2. 注册
同名覆盖
3. 使用
Deltas
Deltas represents both documents and changes to documents.
Embeds
指非文本内容,如图片,视频,数学表达式等。
Modules
扩展,自定义Quill的功能。一般是非格式化相关的功能。
分类
- 内置Modules
- 自定义Modules
配置
var quill = new Quill('#editor', {
// Key: Module名字, value: Module配置
modules: {
'history': { // 启动自定义配置
'delay': 2500,
'userOnly': true
},
'syntax': true // 启动默认配置
}
});
自定义Module
- 实现
- 注册
- 使用(指定配置)
DEMO: quill-html-edit-button