摘要: 先前我们在选区模块的基础上,通过浏览器的组合事件来实现半受控的输入模式,这是状态同步的重要实现之一。在这里我们要关注于处理浏览器复杂DOM结构默认行为,以及兼容IME输入法的各种输入场景,相当于我们来Case By Case地处理输入法和浏览器兼容的行为。 开源地址: https://github. 阅读全文
posted @ 2025-10-20 11:05 WindRunnerMax 阅读(184) 评论(0) 推荐(0)
摘要: 先前在使用豆包的Web版时,发现在“帮我写作”模块中用以输入Prompt的模板输入框非常实用,既可以保留模板输入的优势,来调优指定的写作方向,又能够不失灵活地自由编辑。其新对话的输入交互也非常细节,例如选择“音乐生成”后技能提示本身也是编辑器的嵌入模块,不可以直接删除。 虽然看起来这仅仅是一个文本内 阅读全文
posted @ 2025-09-22 10:55 WindRunnerMax 阅读(395) 评论(0) 推荐(1)
摘要: 在先前我们我们实现了SSE流式输出的实现,以及基于向量检索的RAG服务,这些实现都可以算作是AI Infra的范畴。这里我们再来聊一下在SSE流式输出的基础上,将Markdown解析和富文本编辑器的渲染结合起来,实现编辑器的增量解析算法,同样属于文档场景下的Infra建设。 概述 在SSE流式输出的 阅读全文
posted @ 2025-09-03 10:29 WindRunnerMax 阅读(418) 评论(0) 推荐(0)
摘要: 在先前我们实现了编辑器选区和模型选区的双向同步,来实现受控的选区操作,这是编辑器中非常重要的基础能力。接下来我们需要在编辑器选区模块的基础上,通过浏览器的组合事件来实现半受控的输入模式,在这里我们需要处理浏览器复杂DOM结构默认行为,还需要兼容IME输入法的各种输入场景。 开源地址: https:/ 阅读全文
posted @ 2025-09-02 10:32 WindRunnerMax 阅读(294) 评论(0) 推荐(0)
摘要: RAG Retrieval-Augmented Generation是一种用于自然语言处理的模型架构,结合了检索Retrieval和生成Generation两种技术。而RAG服务在知识问答、代码生成、事实验证、专业领域检索等任务中表现出色,能够通过检索相关知识来增强生成模型的回答质量和准确性。 实际 阅读全文
posted @ 2025-08-06 10:22 WindRunnerMax 阅读(362) 评论(0) 推荐(2)
摘要: 在先前我们基于Range对象与Selection对象实现了基本的浏览器选区操作,并且基于编辑器数据模型设计了RawRange和Range对象两种选区模型。在这里我们需要将浏览器选区与编辑器选区关联起来,以此来确认应用变更时的操作区间,相当于我们需要基于DOM实现受控的选区同步。 开源地址: http 阅读全文
posted @ 2025-08-05 10:36 WindRunnerMax 阅读(308) 评论(0) 推荐(4)
摘要: 先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区,编辑器中应用变更时的操作范围,就是以模型选区为基准来实现的。在这里我们就以编辑器状态为基础,来设计模型选区的结构表达。 开源地址: https:/ 阅读全文
posted @ 2025-06-10 10:23 WindRunnerMax 阅读(304) 评论(0) 推荐(1)
摘要: 先前我们提到了,数据模型的设计是编辑器的基础模块,其直接影响了选区模块的表示。选区模块的设计同样是编辑器的基础部分,编辑器应用变更时操作范围的表达,就需要基于选区模型来实现,也就是说选区代表的意义是编辑器需要感知在什么范围内执行变更命令。 开源地址: https://github.com/WindR 阅读全文
posted @ 2025-05-28 10:25 WindRunnerMax 阅读(333) 评论(1) 推荐(2)
摘要: 在富文本编辑器中,序列化与反序列化是非常重要的环节,其涉及到了编辑器的内容复制、粘贴、导入导出等模块。当用户在编辑器中进行复制操作时,富文本内容会被转换为标准的HTML格式,并存储在剪贴板中。而在粘贴操作中,编辑器则需要将这些HTML内容解析并转换为编辑器的私有JSON结构,以便于实现跨编辑器内容的 阅读全文
posted @ 2025-05-07 10:18 WindRunnerMax 阅读(598) 评论(1) 推荐(2)
摘要: 我们使用Git来管理项目的时候,可能会提交一些Blob的二进制文件,这些文件并不能像文本文件一样采用diff delta的形式进行版本控制。如果这些文件一直跟随master的主版本,那么就是属于有效的文件。 然而很多时候这些二进制文件会被删除重建,那么由于Git的特性,这些文件会一直留在Git的历史 阅读全文
posted @ 2025-04-29 12:42 WindRunnerMax 阅读(556) 评论(4) 推荐(1)
©Copyright    @Blog    @WindRunnerMax