你好,我是 Kagol,个人公众号:前端开源星球

TinyEditor 是一个基于 Quill 2.0 的富文本编辑器,在 Quill 基础上扩展了丰富的模块和格式,框架无关、功能强大、开箱即用。

对于富文本编辑器来说,插入图片、视频、表情,插入和编辑表格,这些都是非常常见的功能,因此我们对这几个模块做了重点优化和重构。

更强大的表格

之前的表格模块基于 quill-better-table 实现,现在这个项目已经不维护了,为了让 TinyEditor 的表格功能更好地演进下去,TinyEditor 项目核心贡献者 zzxming 对表格模块进行了重构,使用了 quill-table-up 作为底层实现,替换了不维护的 quill-better-table。

quill-table-up 是 zzxming 设计和实现的,基于 Quill 2.0,拥有更好的模块化设,、更强的功能、更优的体验,而且一直在持续维护中。

quill-table-up 支持 quill-better-table 所有的功能,并且做了大量增强:

  • 支持单元格中插入块级元素,比如:标题、引用、代码块等
  • 支持自定义单元格背景色、边框颜色
  • 拖拽改变行高/列宽,调整表格整体宽高
  • 除了右键工具栏菜单,还支持常驻显示工具栏
  • 支持斜线快捷菜单插入表格,支持上下左右方向键选择表格行/列大小

quill-table-up 做了很好的模块化设计,每个特性是一个单独的文件,支持按需引入和使用,这一点对于富文本这边的大型组件来说非常友好,可能每个业务只需要其中一部分功能,就可以不需要引入,打包时也不会包含这个特性的代码,能有效地减少包体积。

感谢 zzxming 在表格模块重构和优化中付出的努力,提升了 TinyEditor 富文本编辑器的表格操作体验。

欢迎朋友们给 quill-table-up 开源项目点个 Star 支持下!

源码:https://github.com/zzxming/quill-table-up(欢迎 Star)

使用起来非常简单。

import FluentEditor, { generateTableUp } from '@opentiny/fluent-editor'
// 按需导入 quill-table-up 特性模块
import { defaultCustomSelect, TableMenuSelect, TableSelection, TableUp } from 'quill-table-up'
// 引入样式文件
import 'quill-table-up/index.css'
import 'quill-table-up/table-creator.css' // 注册 table-up 模块
FluentEditor.register({ 'modules/table-up': generateTableUp(TableUp) }, true) const TOOLBAR_CONFIG = [
[{ header: [] }],
['bold', 'italic', 'underline', 'link'],
[{ list: 'ordered' }, { list: 'bullet' }],
['clean'],
// 配置工具栏菜单项
[{ 'table-up': [] }],
] new FluentEditor(element, {
theme: 'snow',
modules: {
'toolbar': TOOLBAR_CONFIG,
// 配置 table-up 模块
'table-up': {
// 配置工具栏中选择表格行/列数量
customSelect: defaultCustomSelect, // 配置拖选多个单元格,进行后续操作,比如:合并单元格、设置单元格背景色等
selection: TableSelection,
selectionOptions: {
// 配置工具栏菜单的显示方式,支持点击右键显示、选择单元格后常驻显示两种形式
tableMenu: TableMenuSelect,
},
},
},
})

效果如下:

更多特性欢迎大家使用和体验。

体验地址:https://opentiny.github.io/tiny-editor/docs/demo/table-up

更丰富的表情

在富文本中插入表情,虽然不是一个必须的功能,但却能让富文本内容更加有趣,比如我用富文本编辑器写一篇文章,如果能再文章中插入可可爱爱的 Emoji 表情,将是一件多么美妙的事情。

之前的 TinyEditor 支持的表情数量有限,而且没有做分类,不支持搜索,想要找一个想要的表情太难了。vaebe 基于 emoji-mart 实现了一个新的 Emoji 模块,不仅支持更多表情,而且做了分类,支持表情的搜索、预览、最近实用的表情等实用的功能。

使用之前需要先安装对应的依赖:

npm i @floating-ui/dom @emoji-mart/data emoji-mart

然后分别在工具栏和模块开启 emoji 即可。

import FluentEditor from '@opentiny/fluent-editor'

const TOOLBAR_CONFIG = [
[{ header: [] }],
['bold', 'italic', 'underline', 'link'],
[{ list: 'ordered' }, { list: 'bullet' }],
['clean'],
// 配置 Emoji
['emoji'],
] new FluentEditor(element, {
theme: 'snow',
modules: {
'toolbar': TOOLBAR_CONFIG,
// 配置 emoji 模块
'emoji': true,
},
})

效果如下:

对比下之前的表情面板:

新版的表情功能,UI 和体验都比之前的好太多了,感谢 vaebe 给我们提供了一个这么好用的表情功能。

更多特性欢迎大家使用和体验。

体验地址:https://opentiny.github.io/tiny-editor/docs/demo/emoji

体验更好的图片/视频/文件上传功能

“富文本”意味着不仅仅是文字,还包含图片、视频等更丰富的内容,之前的图片、视频、文件上传是独立的三个模块,这就导致很多功能上的重复,比如校验文件格式、大小,多图、多文件上传,调整图片、视频宽高,图片、文件的下载等功能,每个模块都要实现一遍。

zzxming 敏锐地识别到了这个问题,并将图片、视频、文件模块合并成一个模块,默认会处理视频与图片格式,其他格式统一被处理为文件显示。

  • 图片可以拉伸放大缩小,可以左中右对齐,可以复制、下载
  • 视频可以播放、暂停、下载、全屏、调整声音
  • 文件可以查看大小、下载、删除

使用起来非常简单,只需要在工具栏配置中配置即可。

import FluentEditor from '@opentiny/fluent-editor'

const TOOLBAR_CONFIG = [
[{ header: [] }],
['bold', 'italic', 'underline', 'link'],
[{ list: 'ordered' }, { list: 'bullet' }],
['clean'],
// 配置图片、视频、文件上传功能
['file', 'image', 'video'],
] new FluentEditor(element, {
theme: 'snow',
modules: {
'toolbar': TOOLBAR_CONFIG,
},
})

效果如下:

更多特性欢迎大家使用和体验。

体验地址:https://opentiny.github.io/tiny-editor/docs/demo/file-upload

往期推荐文章

联系我们

GitHub:https://github.com/opentiny/tiny-editor(欢迎 Star )

官网:https://opentiny.github.io/tiny-editor

个人博客:https://kagol.com.cn

小助手微信:opentiny-official

公众号:OpenTiny

TinyEditor v4.0 alpha 版本发布:表格更强大,表情更丰富,上传体验超乎想象!的更多相关文章

  1. 3.0.0 alpha 重磅发布!九大新功能、全新 UI 解锁调度系统新能力

    2022 年 4 月 22 日,Apache DolphinScheduler 正式宣布 3.0.0 alpha 版本发布!此次版本升级迎来了自发版以来的最大变化,众多全新功能和特性为用户带来新的体验 ...

  2. Bootstrap v4.0.0-alpha.5 发布,大量更新

    Bootstrap v4.0.0-alpha.5 发布了,Bootstrap是快速开发Web应用程序的前端工具包.它是一个CSS和HTML的集合,它使用了最新的浏览器技术,给你的Web开发提供了时尚的 ...

  3. 英语词典Alpha版本发布说明

    Alpha版本发布说明 功能: ·简洁的应用界面,不被无良的广告弹窗影响  ·功能直接,在需要查词时及时出现,没有每日一句精选文章等杀了你的流量,在学习过程中更加专注! ·采用金山词霸API,提供发音 ...

  4. play ball小游戏-Alpha版本发布说明

    Alpha版本发布说明 一.功能介绍 本团队所做的微信小程序是一款小球经碰撞后最终到达目的位置通关的休闲益智类游戏.Alpha版本具有的功能大体如下: 1. 闯关模式 多达12关普通竖屏关卡.4关特殊 ...

  5. 评论alpha版本发布

    讲解顺序: 1.  新蜂:俄罗斯方块 俄罗斯方块已经完成了核心的游戏部分,可以流畅的进行游戏,经验值功能也已经完成,目前进度很好:不足之处主要有:后续的显示内容还没完成,所以界面空出来很多板块,alp ...

  6. Alpha版本发布时间安排

    Alpha版本发布截止时间:2014年11月23日 第一轮迭代M1报告时间:2014年11月27日课上 - 每个团队5分钟时间汇报,5分钟时间提问 第一轮迭代M1事后分析报告时间:2014年11月29 ...

  7. Pipeline组Alpha版本发布说明

    Pipeline组Alpha版本发布说明 项目名称 Pipeline 项目版本 Alpha版本 负责人 北京航空航天大学计算机学院 ILoveSE 联系方式 http://www.cnblogs.co ...

  8. Alpha版本发布

                Alpha版本发布   Part1.基本介绍 作业所属课程 课程链接 作业要求 要求链接 团队名称 Typhoon 作业目标 通过本次团队项目,体验通过使用软件工程来研发项目的 ...

  9. GP工作室—Alpha版本发布2

    GP工作室-Alpha版本发布2 一.简介 1.1作业要求 这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/GeographicInformationSc ...

  10. GP工作室—Alpha版本发布1

    目录 GP工作室-Alpha版本发布1 一.简介 1.1作业要求 1.2团队成员 二.软件下载安装说明 五.项目总结 @(Gold Point团队の项目计划) GP工作室-Alpha版本发布1 一.简 ...

随机推荐

  1. P7404题解

    分析题意: 题意就是让前半段序列呈上升趋势,后半段呈下降趋势. 解题方法: 考虑差分出序列的高度. xix_ixi​ 表示以 iii 为 kkk 的前半段需增加量. yiy_iyi​ 表示以 i−1i ...

  2. centos 7.8下载地址

    随着7.9版本的正式版本的发布,7.8.2003版本逐渐被各大镜像站替换,取消. 7.8.2003版本的可以自行在华中科技大学的镜像站下载,这个地址也可能随时会失效,如果失效了同学们可以自行百度搜寻. ...

  3. Java5新特性--可变参数

    可变参数 public class Test01 { public static void main(String[] args) { System.out.println(add(123)); Sy ...

  4. 【HUST】论于渊《Orange‘s:一个操作系统的实现》第三章中PagingDemoProc的必要性,是否可以直接调用LinearAddrDemo?

    相关代码如下(第三章pmtest9a.asm改写): LinearAddrDemo equ 00401000h ProcHust equ 00401000h ProcIS19 equ 00501000 ...

  5. vue3 基础-Mixin

    本篇开始来学习一波 vue 中的一些复用性代码的基础操作, 首先来介绍关于代码 "混入" mixin 的写法. 直观理解这个 mixin 就是一个 js 对象去 "混入& ...

  6. c++并发编程实战-第2章 线程管控

    线程的基本管控 每个应用程序都至少拥有一个线程,即运行main函数的线程,称为主线程,它由c++运行时系统启动.我们可以在软件运行中产生其他线程,它们以指定的函数作为入口函数.当main函数返回后,程 ...

  7. @FeignClient注解配置局部超时时间、OkHttp长连接和SocketTimeoutException异常解决办法

    问题描述:open feign配置OKhttp调用远程API,连续调用次数较少时,一切正常,次数非常多时(例如,连续请求600次)就抛出java.net.SocketTimeoutException: ...

  8. EasyExcel工具类,可导出单个sheet、导出多个sheet

    单个sheet导出案例 ExcelUtil.exportXlsx(response, "测试数据", "测试数据", list, TestDataPageDto ...

  9. 题解:CF1977D XORificator

    题目链接:link. 题目大概其实就是想让我们通过翻转某些行,使得尽可能多的列成为特殊列. 众所周知,暴力肯定是不行的,所以我们需要考虑优化! 对于每一列 \(j\),枚举每一行 \(i\),通过翻转 ...

  10. Redis五-哨兵

    目录 哨兵 导读 基本概念 主从复制问题 Redis Sentinel的高可用性 安装和部署 部署数据节点 部署Sentinel节点 Seninel配置优化 sentinel API 实现原理 三个定 ...