【推荐】1657- 灵活可扩展,2023年值得尝试的13款富文本编辑器

news2024/11/17 22:43:59

39508dd15f1b0520b684b81306ea2f02.jpeg

作为前端开发人员,我们经常需要为网站和应用程序添加文本内容。与传统的文本编辑器不同,富文本编辑器可让您轻松创建各种类型的文本内容,包括加粗字体、斜体字、框架、列表、图片和视频等。

本文我将向大家推荐 13 款开源的灵活可拓展的富文本编辑器,这些编辑器拥有各自独特的特性和扩展,可以帮助你创建丰富的文本内容。

1.Quill (35.1k Star)

主页地址:https://quilljs.com/
仓库地址:https://github.com/quilljs/quill

Quill.js 是一款基于 JavaScript 的现代化富文本编辑器,它在界面、易用性、扩展性和性能方面都有着出色的表现。相比传统的文本输入框,Quill.js 的富文本编辑器提供了「更加直观」「自然」的交互方式和「更加丰富的文本内容展示功能」

8051d4c92d2f3e7e8a31307b8c346e3c.png

Quill.js 有以下特点:

  1. 「易用性强」:可视化编辑、自动保存等特性,方便实现文本样式、布局等。

  2. 「可定制性强」:支持自定义扩展,添加自定义块类型、工具栏等,更加灵活实用。

  3. 「支持格式化和样式」:提供多种基本格式和样式,美观易读。

  4. 「自适应布局」:采用完全响应式布局,适应不同浏览器和设备,提高移动端使用体验。

  5. 「多语言支持」:提供多语言 UI 支持,用户可自定义语言和快捷键。

2.Slate.js (26.8k Star)

主页地址:https://www.slatejs.org/examples
仓库地址:https://github.com/ianstormtaylor/slate

Slate.js 是一款「支持完全自定义」的富文本编辑器,它在可扩展性、可定制性、丰富的 API 和 React 集成方面有着出色的表现。

Slate.js 的主要目标是提供一种简单而又强大的方式来构建富文本编辑器。

8efa1757aa06a1f1a1020288739b042d.png

Slate.js 有以下特点:

  1. 「组装灵活」:可按需添加或组合插件,精简高效。

  2. 「扩展定制」:支持用户自定义插件和编辑器行为,提供丰富的 API 和内置插件体系,快速定制和扩展。

  3. 「操作多样」:支持文本插入、删除、选中、撤销、重做等基本操作,并提供全面的 API 指导。

  4. 「持久保存」:使用类似于 Git 的数据结构,支持版本控制和恢复历史更改;支持本地存储,方便再次使用。

3.Editor.js (22.5k Star)

主页地址:https://editorjs.io/
仓库地址:https://github.com/codex-team/editor.js

Editor.js 是一款基于 JavaScript 的简单编辑器,通过「模块化」的方式提供了各种对于富文本内容编辑而言有用的核心功能。

Editor.js 拥有易于使用的「拖放式」界面(实时预览),使得富媒体文档可以在几分钟内被创建并无需任何的前端知识。

efa7efc5d1fbc5e3b072d73cab1676f8.png

Slate.js 有以下特点:

  1. 「强大的拓展性」:提供多种定制化块和工具,灵活搭建文档编辑器工具,例如构建电商产品页面。

  2. 「无编程经验可用」:用户可轻松创建并生成可嵌入的代码。

  3. 「广泛适用性」:可集成到多种 CMS 平台和网站构建器中。

  4. 「丰富的插件库」:通过插件添加样式和功能,提供强大的文本编辑器特性。

  5. 「轻量化」:只有 15 KB 大小。

4.Draft.js (22.4k Star)

主页地址:https://draftjs.org/
仓库地址:https://github.com/facebook/draft-js

Draft.js 是由 Facebook 开发的基于 React 的富文本编辑器框架。它使用可扩展的、可配置的、可组合的模块来管理文本内容的编辑。

Draft.js 是为编写符合各种应用程序的富文本编辑器而提供更好的「模块化解决方案」

037b29c19fba281a7594edffc2192860.png

Draft.js 有以下特点:

  1. 「强大的扩展性」:提供多种可组合的富文本编辑器组件和插件,允许用户定制行为和外观。

  2. 「高度可定制」:充分的 API 支持样式、行为、校验等修改,满足特定需求。

  3. 「实时协作」:支持多用户同时编辑和实时协作场景。

  4. 「易操作数据」:使用易于操作和维护的 EditorState 数据模型进行文本内容和样式管理;基于 React,渲染速度更快交互效果更流畅。

  5. 「高安全性」:包含强制安全检查,限制某些标记和危险属性的使用。

5.StackEdit (20.2k Star)

主页地址:https://stackedit.io/
仓库地址:https://github.com/benweet/stackedit

StackEdit 是一款基于 Web 的在线 Markdown 编辑器,使用者可以通过它轻松编辑 Markdown 文档、同时还可以直接将 Markdown 文档同步到一些云端存储服务如 Dropbox 、Google Drive 、GitHub 等,这是 StackEdit 的另一大特点。StackEdit 通过提供「实时预览模式」,帮助用户更好地阅读和编辑 Markdown 文档。

66bbb494551d0043e83bd585428985d4.png

StackEdit 有以下特点:

  1. 「支持云端同步」:与多种云端存储服务同步个人数据。

  2. 「多平台支持」:可在 Web、Windows、macOS、Linux 等多个平台使用。

  3. 「实时预览模式」:即时预览 Markdown 编辑内容,提高编辑效率。

  4. 「自定义主题和样式」:提供多种主题和样式设置,满足不同用户需求。

  5. 「插件支持」:支持插件,自选所需功能,提升使用效果。

  6. 「易用性高」:界面简洁明了,轻松创建、编辑和导出 Markdown 文件。

6114f1f05c4a97a61c6928e8ee70bd3c.png

6.Tiptap (18.8k Star)

主页地址:https://tiptap.dev/
仓库地址:https://github.com/ueberdosis/tiptap

Tiptap 是一款基于 Vue 的富文本编辑器,它使用了「标注化」的 JSON 数据结构来管理文本内容和样式。Tiptap 的目标是为开发人员提供可扩展性、可定制性和易于集成的富文本编辑器解决方案。

8b8ce327839c685656c750247fc5ac01.png

Tiptap 有以下特点:

  1. 「突出的扩展性」:提供内置功能和插件,开发人员可编写自己的插件并发布到组件库中供他人使用。

  2. 「丰富的工具箱」:提供命令、标记、过滤器、键绑定等工具,便于快速构建功能强大的编辑器。

  3. 「支持自定义主题」:支持通过 CSS 自定义编辑器 UI 样式,满足不同用户需求。

  4. 「简单易用」:API 简单易用,支持流畅的编辑体验并能处理复杂富文本编辑场景。

  5. 「基于 Vue」:基于 Vue.js 开发,完美集成到 Vue.js 生态系统中,方便在 Vue 应用程序中使用。

7.GrapesJS (17.7k Star)

主页地址:https://grapesjs.com/
仓库地址:https://github.com/artf/grapesjs

GrapesJS 是一个强大的基于 Web 的页面构建器,它让人们可以直观地通过「拖放方式」创建和编辑网页页面。它是一个开源的项目,支持主流浏览器,是一个用 JavaScript 和 CSS 开发的成熟的工具。

GrapesJS 提供了一个「可视化的编辑器」,从而让用户不需要编写 HTML 或 CSS 代码,就可以同时「访问各种设计工具和插件」

272b71408f3074eb104e72d04b72913d.png

GrapesJS 有以下特点:

  1. 「可视化编辑器」:提供拖放网页元素、快速处理样式等功能,方便用户快速搭建网页界面。

  2. 「非常灵活」:自定义外观和功能,通过 API 和插件机制,能够集成到不同的环境中。

  3. 「应用于完整的工作流」:支持文本、图像和视频制作,可用作完整的 Web 内容管理系统 (CMS),或轻量级的页面制作工具。

  4. 「简单易用」:使用简单易上手,无需编写 CSS 等代码,提供实时预览和撤销/重做等功能。

099f07a0119f4383d72707ce90f094e9.png

8.Trix (17.6k Star)

主页地址:https://trix-editor.org/
仓库地址:https://github.com/basecamp/trix

Trix Editor 是一个基于 Web 的富文本编辑器,由 Basecamp 公司开发。

Trix Editor 的定位是一款「易于集成和使用的编辑器」,它非常容易使用,提供了富文本编辑器所需的基本功能,同时具有易于扩展和自定义的特点。

af4b41bc1762e31b84fcc8102c33d4ed.png

Trix 有以下特点:

  1. 「易于集成」:可与现有的 Web 应用程序轻松集成,并提供多个官方包供 Ruby on Rails、React、Vue 等框架使用。

  2. 「基本功能齐全」:提供常用的基本功能,如颜色和字体样式、段落样式、链接、图像和视频插入等,还支持撤销和重做功能。

  3. 「易于扩展和自定义」:允许用户添加插件以扩展功能,通过 CSS 和自定义样式来定制编辑器的外观和风格。

  4. 「安全性高」:不允许用户使用自定义 HTML 标签或脚本,在此基础上进行文本编辑操作,提高了编辑器的安全性。

  5. 「开源免费」:是一款开源免费软件,方便广泛采用。

9.Toast UI Editor (15.9k Star)

主页地址:https://ui.toast.com/tui-editor/
仓库地址:https://github.com/nhn/tui.editor

Toast UI Editor 是一款利用 JavaScript 和 jQuery 开发的块编辑器。它支持多种文本字体和大小,还可以使用 Markdown 或 WYSIWYG(所见即所得) 编辑模式。

cb03d8d32c2c5d342663a9a83ae93c9b.png

Toast UI Editor 有以下特点:

  1. 「支持 Markdown 编辑」:能够使用 Markdown 语法进行文本编辑,用户可以直接输入 Markdown 语法来编辑文本内容。

  2. 「实时预览功能」:提供实时预览功能,用户可以在编辑器中同时查看编辑后文本的预览效果,以便更好的了解编辑效果。

  3. 「丰富的功能特点」:具备字体、颜色、表格、项目符号列表、图像和视频插入、代码块和数学公式等功能,方便用户进行文本编辑和排版操作。

  4. 「界面简洁」:具有简洁的用户界面,用户可以轻松找到所需功能和工具栏,可通过自定义样式修改编辑器的外观和风格。

  5. 「易于集成」:可通过插件集成到 CMS、博客和论坛,也可嵌入式集成到基于 Web 框架的应用程序中。

10.Gutenberg (8.6k Star)

主页地址:https://wordpress.org/gutenberg/
仓库地址:https://github.com/WordPress/gutenberg

Gutenberg 编辑器是 WordPress 5.0 及以上版本中默认的编辑器,它是一款「基于块的编辑器」,旨在提供「更直观」「更丰富」「更灵活」的编辑体验。

4334876cf4581c08b2eb5c2ec79169a8.png

Gutenberg 有以下特点:

  1. 「块编辑器」:将文章和页面内容划分为独立块,用户可通过拖拽、复制、粘贴等方式,在不同类型块之间快速编辑和移动。

  2. 「内容可视化」:直观、友好的内容可视化编辑功能,实时编辑和调整内容的样式、布局和排版。

  3. 「可扩展性」:具有丰富的 API 和插件系统,用户可根据需要进行自定义和扩展,满足不同需求。

  4. 「多媒体支持」:可轻松添加和管理各种类型的多媒体资源,包括图片、视频、音频等,方便融入文章和页面中。

  5. 兼容性:与主流浏览器和设备兼容性良好,适用于各种场景和设备的使用需求。

11.CKEditor 5 (7.1k Star)

主页地址:https://ckeditor.com/ckeditor-5/
仓库地址:https://github.com/ckeditor/ckeditor5

CKEditor 5 是一款功能强大、现代化的 web 富文本编辑器,旨在提供「用户友好」「可扩展」「易于集成」的编辑体验。

071bc3b4a03769447736ae1ee83f3ec6.png

CKEditor 5 有以下特点:

  1. 「分离组件」:将编辑器拆分成多个独立的组件,提供灵活和可扩展的编辑功能,如富文本编辑器、敲击感应、实时输入、段落分割等。

  2. 「插件式架构」:提供丰富的插件系统,用户可根据需要安装使用不同插件,如表情符号、语法高亮、代码块等。

  3. 「自然语言处理」:使用自然语言处理技术,实现智能化文本编辑功能,如自动拼写检查和语义化排版等。

  4. **区块模型:采用区块模型方式组织和管理页面内容,用户可通过拖拽、复制和粘贴等方式,方便地编辑不同类型的块。

  5. 「可定制性」:完全可定制,用户可轻松地根据需要对编辑器进行扩展和定制。

  6. 「构建与集成」:提供多种方式用以构建和集成编辑器,以满足不同用户需求。

12.ProseMirror (6.5k Star)

主页地址:https://prosemirror.net/
仓库地址:https://github.com/ProseMirror/prosemirror

ProseMirror 是一款基于 JavaScript 的富文本编辑器框架,提供了「高度灵活性」「可定制性」。ProseMirror 具有块式结构、自定义插件、键盘导航、撤销和重做功能等。

83b69daf5b6ecc3e6cfe3c6bed0723b4.png

ProseMirror 有以下特点:

  1. 「基于文档模型」:ProseMirror 以文档树为抽象模型,提供富文本编辑器,方便对文档的操作和管理。

  2. 「可扩展性」:丰富的 API 和插件系统支持用户自定义和扩展,如块、模块、样式等,满足不同需求。

  3. 「格式支持」:ProseMirror 支持众多富文本格式,如 HTML、Markdown、LaTex 等,方便导入导出文档。

  4. 「高可定制性」:灵活定制各元素和组件,满足用户编辑需求,包括编辑能力和样式等。

  5. 「可视化编辑」:提供可视化编辑功能,用户可以实时预览文档样式和渲染效果,方便编辑和调整。

13.Sir Trevor JS (4.5k Star)

主页地址:http://madebymany.github.io/sir-trevor-js/
仓库地址:https://github.com/madebymany/sir-trevor-js

Sir Trevor JS 是一款基于块、「轻松拖放」、插「件式架构」、简单易用、支持「多平台」和多浏览器、「完全可定制」的现代化富文本编辑器。

11b22808f223d1e879d2103da0b237f3.png

Sir Trevor JS 有以下特点:

  1. 「基于块」:将文档内容分解为块,如文本、图像、视频等,每个块均有自定义样式和行为。

  2. 「轻松拖放」:采用拖曳组件方式,快速构建文档结构。

  3. 「插件式架构」:提供多种插件,如代码块、图像块、任务块等。

  4. 「简单易用」:上手简单,几行代码即可集成到任何 web 应用程序中。

  5. 「多平台和多浏览器支持」:支持多平台浏览器,如 Mac、Windows、iOS、Android、Chrome、Firefox、Safari 等。

  6. 「完全可定制」:具备完全可定制的能力,用户可以灵活定义样式、功能。

0c1d27439929c46a1fa56f323c773806.png

总结

无论你是一位专业的开发人员,还是一个有兴趣的学习者,这些开源编辑器将带给你无限的创造空间,同时可以轻松扩展和自定义,让你的工作更加高效和愉悦。选择一款可靠的富文本编辑器,是保持个人和团队协作竞争力的首要步骤。

希望这些开源富文本编辑器能够满足你的各种需求和要求,为你带来无穷的创意和灵感。

往期回顾

#

如何使用 TypeScript 开发 React 函数式组件?

#

11 个需要避免的 React 错误用法

#

6 个 Vue3 开发必备的 VSCode 插件

#

3 款非常实用的 Node.js 版本管理工具

#

6 个你必须明白 Vue3 的 ref 和 reactive 问题

#

6 个意想不到的 JavaScript 问题

#

试着换个角度理解低代码平台设计的本质

45ea3a6a773715d17212e1039126a58c.gif

回复“加群”,一起学习进步

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/438126.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HTML5的新特性,CSS3的新特性

1.HTML5的新特性 HTML5的新特性主要针对以前的不足,增加了一些新的标签,新的表单,新的表单属性等。 这些新特性都有兼容性问题,基本是IE9以上版本的浏览器才支持,如果不考虑兼容性问题,可以大量使用这些新…

Docker之Dockerfile

Dockerfile 1. Dockerfile 简介2. Dockerfile 构建过程3. Dockerfile 常用指令4. 实战测试 centos5. 实战测试 Tomcat镜像6. 发布自己的镜像6.1 DockerHub6.2 阿里云镜像服务 7. 小结 1. Dockerfile 简介 Dockerfile 是用来构建docker 镜像的文件!是一个命令参数脚本…

MySQL 窗口函数

MySQL的窗口函数是一种特殊类型的聚合函数,使用窗口函数可以使查询更高效,因为它们可以避免在多个聚合阶段中重复扫描相同的行。还可以使用窗口函数来计算一些有趣的结果,例如排名、百分比和移动平均值等。 目录 一、认识窗口函数1、窗口函数…

重入的问题搞清楚

很久很久之前&#xff0c;写入重入问题的文章 如果你在笔试的实际&#xff0c;面试官问——下面这个代码有什么问题&#xff1f; #include <pthread.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <pthread.h> #incl…

代码随想录算法训练营第三十四天|1005.K次取反后最大化的数组和、134. 加油站、135. 分发糖果

文章目录 1005.K次取反后最大化的数组和134. 加油站:star:135. 分发糖果:star::star::star: 1005.K次取反后最大化的数组和 链接:代码随想录解题思路&#xff1a; 遇到负数就去反,k– 当k能遇到正数的是否&#xff0c;如果k % 2 1 必须取一个最小的正数进行取反再加才行 pub…

Vue 计算属性

文章目录 Vue 计算属性computed vs methodscomputed setter Vue 计算属性 计算属性关键词: computed。 计算属性在处理一些复杂逻辑时是很有用的。 可以看下以下反转字符串的例子&#xff1a; 实例 1 <div id"app">{{ message.split().reverse().join() }}…

【SpringBoot2】SpringBoot开发实用篇

SpringBoot开发实用篇 KF-1.热部署 ​ 什么是热部署&#xff1f;简单说就是你程序改了&#xff0c;现在要重新启动服务器&#xff0c;嫌麻烦&#xff1f;不用重启&#xff0c;服务器会自己悄悄的把更新后的程序给重新加载一遍&#xff0c;这就是热部署。 ​ 热部署的功能是如…

使用CDN的好处

基于移动和应用程序的互联网迫使越来越多的内容提供商、内容出版商和在线供应商简化导航并改善用户体验&#xff0c;主要是网站的页面加载时间。 以下是您必须考虑在业务生态系统中实施CDN的8个原因&#xff1a; 全球可访问性&#xff1a;内容交付网络有助于使内容在全球范围内…

图像分类识别(方向/重点指引)

1、继YOLO之后的高效目标检测算法&#xff1a; CenterNet 继YOLO之后的高效目标检测算法&#xff1a; CenterNet 2、百度飞浆面向 AI 行业应用场景的开源项目&#xff1a;GitHub - PaddlePaddle/PaddleX: PaddlePaddle End-to-End Development Toolkit&#xff08;『飞桨』…

在win10系统中安装anaconda

1、 Anaconda的下载 你可以根据你的操作系统是32位还是64位选择对应的版本到官网下载&#xff0c;但是官网下载龟速。 建议到清华大学镜像站下载 &#xff1a;Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source MirrorIndex of /anaconda/archiv…

1.微服务项目实战---SpringCloud Alibaba

1.1 系统架构演变 随着互联网的发展&#xff0c;网站应用的规模也在不断的扩大&#xff0c;进而导致系统架构也在不断的进行变化。 从互联网早起到现在&#xff0c;系统架构大体经历了下面几个过程 : 单体应用架构 ---> 垂直应用架构 ---> 分布 式架构--->SOA 架构…

【学习总结】openvins中的IMU数据仿真

本文介绍 openvins 中IMU仿真时基于控制轨迹和SPline插值&#xff0c;并计算IMU输出&#xff0c;的原理和代码。 参考 Open-vins中关于仿真的描述&#xff1a;https://docs.openvins.com/simulation.html Open-vins论文&#xff1a;https://pgeneva.com/downloads/papers/Gen…

蜂鸟空间数据引擎助力设施管理解决方案

随着产业价值分解和专业化发展&#xff0c;资产和物业管理领域出现了精深精细化的趋势&#xff0c;并逐渐从劳动密集型向知识密集型进行转变&#xff0c;在此基础上&#xff0c;资产和物业管理产生了一个新型的细分领域——设施管理&#xff08;Facility Management&#xff0c…

typescript中array.filter的用法和ts中is的作用

interface A {a:number; } interface B {b:number; } type C A|B; const arr:C[{a:1},{b&#xff1a;2},{b:1}];当我要帅选出所有A类型数据时,用filter判断是否有a属性; const filterArrarr.filter(i> i.hasOwnProperty(a));此时你会发现 ts的推导类型并没有改变&#xff…

阿趣课堂丨一作解读,定量代谢组学临床应用

代谢组学是继基因组学和蛋白质组学之后新发展起来的一门学科&#xff0c;它通过对人体内小分子代谢物进行精准定性定量&#xff0c;分析代谢物与人体生理病理变化的关系&#xff0c;研究疾病发生发展、寻找疾病生物标记物、预测疾病预后等。 代谢组学在临床诊断上将有广阔的发…

Android系统的HAL层分析 (1)-- HAL的架构分析

目录 说明1. Android系统内为何会要有HAL &#xff1f;2. HAL_legacy和HAL对比3. HAL module的架构分析3.1 hw_module_t3.2 hw_module_methods_t3.3 hw_device_t 4. 分析hardware.c5. 分析HAL的加载过程6. 分析硬件访问服务7. 官方实例mokoid分析 说明 在Android系统中有一个很…

HDFS集群部署成功但网页无法打开如何解决(显示配置通过浏览器访问hdfs的端口)

在学习黑马2023大数据教程过程中&#xff0c;首先依照视频完成了如下配置&#xff1a;【必须】 【黑马2023大数据实战教程】大数据集群环境准备过程记录&#xff08;3台虚拟机&#xff09; 黑马2023大数据实战教程】VMWare虚拟机部署HDFS集群详细过程 最后node1的hadoop用户下…

共建智能汽车数据管理方案 | 4.15 IoTDB X EMQ 主题 Meetup 回顾

4 月 15 日&#xff0c;IoTDB X EMQ 智能汽车主题 Meetup 在上海成功举办。工业物联网时序数据库研发商天谋科技、物联网数据基础设施软件供应商 EMQ 的两位技术大牛&#xff0c;深度分享了企业如何应对智能汽车制造、智慧汽车联网平台普遍面临的海量车况、车产数据“采、存、取…

2023年Chat GPT 应用前景分析

从2022年12月初刚上线至今&#xff0c;不到半年时间ChatGPT月活就超过了1亿用户&#xff01;可谓火的一塌糊涂&#xff0c;比尔盖茨都称&#xff1a;ChatGPT的历史意义重大&#xff0c;不亚于PC或互联网诞生。以至于ChatGPT官网长期都处于满负荷运转的状态&#xff01; 由于Ch…

S7-200 SMART 和 S7-1200PLC进行PROFINET IO通信

从 S7-200 SMART V2.5 版本开始,S7-200 SMART 开始支持做 PROFINET IO 通信的智能设备。因此,两个 S7-200 SMART 之间可以进行 PROFINET IO 通信,一个CPU 作PROFINET IO 控制器,一个 CPU 作 PROFINET 通信的设备。组态的时候有两种方法,一种是通过硬件目录组态另外一种是通…