首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
富文本编辑器
WindRunnerMax
创建于2023-09-11
订阅专栏
What You See Is What You Get (WYSIWYG) Editor.
等 52 人订阅
共24篇文章
创建于2023-09-11
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。
从零实现富文本编辑器#4-浏览器选区模型的核心交互策略
先前我们提到了,数据模型的设计是编辑器的基础模块,其直接影响了选区模块的表示。选区模块的设计同样是编辑器的基础部分,编辑器应用变更时操作范围的表达,就需要基于选区模型来实现。
富文本编辑器剪贴板模块基石-序列化与反序列化
在富文本编辑器中,序列化与反序列化是非常重要的环节,其涉及到了编辑器的内容复制、粘贴、导入导出等模块。当用户在编辑器中进行复制操作时,富文本内容会被转换为标准的HTML格式,并存储在剪贴板中。
从零实现富文本编辑器#3-基于Delta的线性数据结构模型
数据模型的设计是编辑器的核心基础,其直接影响了选区模型、DOM模型、状态管理等模块的设计。我们从零实现的富文本编辑器就需要从数据模型的设计开始,之后就可以逐步实现其他模块。
从零实现富文本编辑器#2-基于MVC模式的编辑器架构设计
从零实现MVC架构的编辑器,将应用程序分为控制器、模型、视图三个核心组件,通过控制器执行命令时会修改当前的数据模型,进而表现到视图的渲染上。
深感一无所长,准备试着从零开始写个富文本编辑器
我也算是比较关注于各类富文本编辑器的实现,包括在各个站点上的编辑器实现文章我也会看。但是我发现这其中极少有讲富文本编辑器的底层设计,因此我想着从零实现富文本编辑器,并且积累相关经验。
Slate文档编辑器-Node节点与Path路径映射
在之前我们聊到了slate中的Decorator装饰器实现,这在实现搜索替换、代码高亮的实现,那么在这里我们重点聊一聊如何确定渲染出的节点处于文档数据定义中的位置。
Slate文档编辑器-Decorator装饰器渲染调度
在之前我们聊到了基于文档编辑器的数据结构设计,聊了聊基于slate实现的文档编辑器类型系统,那么当前我们来研究一下slate编辑器中的装饰器实现。
初探富文本之搜索替换算法
在我们的在线文档系统中,除了基础的富文本编辑能力外,搜索替换的算法同样也是重要的功能实现。纯文本搜索替换算法相对来说是比较容易实现的,而在富文本的场景中,存在图文混排、嵌入元素,则需要适配方案。
Slate文档编辑器-TS类型扩展与节点类型检查
在之前我们基于`slate`实现的文档编辑器探讨了`WrapNode`数据结构与操作变换,那么接下来我们更专注于文档编辑器的数据结构设计,聊聊基于`slate`实现的文档编辑器类型系统。
Slate文档编辑器-WrapNode数据结构与操作变换
在之前我们聊到了一些关于slate富文本引擎的基本概念,并且对基于slate实现文档编辑器的一些插件化能力设计、类型拓展、具体方案等作了探讨,那么接下来我们更专注于文档编辑器的细节。
初探富文本之基于虚拟滚动的大型文档性能优化方案
虚拟滚动是一种优化长列表性能的技术,其通过按需渲染列表项来提高浏览器运行效率。在实际调研的过程中,我发现几乎没有关于在线文档编辑的性能优化方案文章,那么对于我来说几乎就是从零开始调研整个方案。
基于React的虚拟滚动实现方案(固定高度+动态高度)
在渲染列表时我们通常会一次性将所有列表项渲染到`DOM`中,在数据量大的时候这种操作会造成页面响应缓慢,因为浏览器需要处理大量的`DOM`元素,而此时我们通常就需要虚拟滚动来实现性能优化。
基于OT与CRDT协同算法的文档划词评论能力实现
当我们实现在线文档平台时,划词评论的功能是非常必要的,特别是在重文档管理流程的在线文档产品中,文档反馈是非常重要的一环,这样可以帮助文档维护者提高文档质量,而即使是作为讨论区评论能力也有很重要的价值。
深入在线文档系统的 MarkDown/Word/PDF 导出能力设计
当我们实现在线文档的系统时,通常需要考虑到文档的导出能力,特别是对于私有化部署的复杂`ToB`产品来说,文档的私有化版本交付能力就显得非常重要。
初探富文本之富文本diff算法与文档对比视图的实现
当我们实现在线文档的系统时,通常需要考虑到文档的版本控制与审核能力、文档草稿与线上文档的差异、私有化版本等,这是这是整个文档管理流程中的重要环节,那么在这个环节中通常就需要文档的diff能力。
初探富文本之React组件实时预览(React Playground)
在之前的富文本系列中我们探讨了很多关于富文本引擎和协同的能力,在本文中我们更偏向具体的应用组件实现,通过动态解析并且执行用户的React代码,来实现React组件实时预览(Playground)。
基于slate构建文档编辑器
基于slate构建文档编辑器 slate.js是一个完全可定制的框架,用于构建富文本编辑器,在这里我们使用slate.js构建专注于文档编辑的富文本编辑器。 描述 Github | Editor DEMO 富文本编辑器是一种可内嵌于浏览器,所见即所得的文本编辑器。现在有很多开箱即用的富文本编辑器,例
初探富文本之CRDT协同实例
初探富文本之CRDT协同实例 在前边初探富文本之CRDT协同算法一文中我们探讨了为什么需要协同、分布式的最终一致性理论、偏序集与半格的概念、为什么需要有偏序关系、如何通过数据结构避免冲突、分布式系统如何进行同步调度等等,这些属于完成协同所需要了解的基础知识,实际上当前有很多成熟的协同实现,例如aut
初探富文本之OT协同实例
初探富文本之OT协同实例 在前边初探富文本之OT协同算法一文中我们探讨了为什么需要协同、为什么仅有原子化的操作并不能实现协同、为什么要有操作变换、如何进行操作变换、什么时候能够应用操作、服务端如何进行协同调度等等,这些属于完成协同所需要了解的基础知识,实际上当前有很多成熟的协同实现,例如ot.js、
下一页