时隔8年, WYSIWYG 富文本编辑器 Quill 2.0王者归来?

前有科技后进阶2024-04-24 06:20:00  52

大家好,很高兴又见面了,我是"高级前端?进阶?",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发,您的支持是我不断创作的动力。

什么是 Quill

Quill is a modern WYSIWYG editor built for compatibility and extensibility.

Quill 是一款专为兼容性和可扩展性而构建的现代富文本编辑器,由 Jason Chen 和 Byron Milligan 创建,并由 Slab 积极维护。目前最新发布的是 Quill 2.0 版本,在上一个版本上完全由 TypeScript 重写。

Quill 的特征可以概括为以下几点:

为开发者打造:通过简单的 API 精细访问编辑器的内容、更改和事件,同时使用 JSON 作为统一输入和输出,一致且准确的工作

跨平台性:支持台式机、平板电脑和手机上的所有现代浏览器,具有跨平台体验相同的一致行为和生成 HTML 的一致性

大小型项目都合适 :Quill 可用于大小型项目,随着产品需求增长可以轻松自定义或添加自己的扩展

Quill 所有核心 API 调用都允许使用任意索引和长度进行访问或修改。 其事件 API 还以直观的 JSON 格式报告更改,无需解析 HTML 或 diff DOM 树。

很多开发者或多或少都使用过基于 Quill 开发的产品,比如:Zoom, Grammarly, Figma 等。对于国内广大开发者来说开源 Quill 更是不陌生,比如流行的编辑器 wangEditor

目前 Quill 在 Github 上通过 BSD-3 条款许可证开源,有超过 40.6k 的 star、3.2k 的 fork、178k 的项目依赖量、代码贡献者 140+、妥妥的前端优质开源项目。

如何使用 Quill

Quill 提供了全球分布且可用的 CDN,由 jsDelivr 支持。这是开始使用 Quill 的最便捷方式,并且不需要构建步骤或包管理器。

// 通过 jsDelivr 引入外部资源

当然,如果项目使用 Webpack 或 Vite 等打包程序,建议通过 npm 安装 Quill:

import Quill from 'quill';// Or if you only need the core build// import Quill from 'quill/core';const quill = new Quill('#editor');

Quill 支持的功能非常丰富,如果要添加历史记录配置,可以通过下面代码快速集成:

const quill = new Quill('#editor', { modules: { // history 配置是重点 history: { delay: 2000, maxStack: 500, userOnly: true }, }, theme: 'snow'});

如果需要处理 Quill 和外部应用程序之间的复制、剪切和粘贴,可以通过 Clipboard Module 快速添加:

quill.clipboard.addMatcher(Node.TEXT_NODE, (node, delta) => { return new Delta.insert(node.data);});// Interpret a tag as boldquill.clipboard.addMatcher('B', (node, delta) => { return delta.compose(new Delta.retain(delta.length, { bold: true }));});

开发者还可以通过 Quill.register 方法注册模块、主题或格式,稍后使用 Quill.import 进行检索:

Quill.register({ 'formats/custom-format': CustomFormat, 'modules/custom-module-a': CustomModuleA, 'modules/custom-module-b': CustomModuleB,});Quill.register(CustomFormat);

更多关于 Quill 的高级用法和特性可以参考文末资料,本文不再过多展开。

参考资料

转载此文是出于传递更多信息目的。若来源标注错误或侵犯了您的合法权益,请与本站联系,我们将及时更正、删除、谢谢。
https://www.414w.com/read/414948.html
0
最新回复(0)