惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 司徒正美
大猫的无限游戏
大猫的无限游戏
腾讯CDC
J
Java Code Geeks
博客园 - 【当耐特】
Microsoft Azure Blog
Microsoft Azure Blog
V
Visual Studio Blog
人人都是产品经理
人人都是产品经理
博客园 - Franky
博客园 - 聂微东
阮一峰的网络日志
阮一峰的网络日志
美团技术团队
云风的 BLOG
云风的 BLOG
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
U
Unit 42
雷峰网
雷峰网
B
Blog RSS Feed
博客园_首页
量子位
F
Fortinet All Blogs
罗磊的独立博客
H
Hackread – Cybersecurity News, Data Breaches, AI and More
酷 壳 – CoolShell
酷 壳 – CoolShell
C
Check Point Blog

Markdown

VLOOK 2026.7~主题天花板级大焕新 + 幻灯片视图~好看好用 Typora/Markdown 主题包与排版增强插件 写了个工具, markdown 转 X Articles 系统级 markdown 所见即所得编辑器,支持 Quick Look 快速预览 我做了个很“奇怪”的 Markdown 网站:从格式转换器变成“阅后即焚”的 md 长文阅读工具 速度堪比 sublime text, zed 那种神速闪电速度的?最快最好的 markdown 软件有推荐吗? 马年来了,你码完了没? Markdone 码完 - Markdown 所见即所得编辑器上线了 Typora 的换行和换段,几乎从任何一个编辑器迁移过来的人都无法接受吧 [造轮子] 写了个纯前端的 Markdown 转 PDF 工具,专治 DeepSeek/ChatGPT 导出的排版强迫症 有没有一个融合了 vscode+obsidian 的对代码和 markdown 都支持出色的工具 各位有什么写 markdown 的方式吗? 有没有符合下述条件的 markdown 数学笔记软件! 求推荐一款适合做数学笔记的 markdown 软件! 用 AI 搞了个小玩具 Markdown 图片海报 手搓了一个 Markdown 图片海报,开源免费无水印 使用 doocs 微信公众号图床教程 有没有人觉得 markdown 并不适合拿来写文档? 想要在 V2EX 分享自己用过的 APP,请问有啥好的编辑器推荐额 有什么支持原地渲染的 Markdown 编辑器,并且非常容易支持导出原始 Markdown 的? Cmd Markdown 发布第十六次更新 -- 开启卓越 AI 写作之旅 内网需要一款 markdown 的笔记软件 求一款 markdown 编辑工具 Markdown 图片魔法系列 5:明信片~优雅好用的 Typora 主题与增强插件 VLOOK™ Markdown 图片魔法系列 4:图片剪影(图片轮廓/颜色替换)~优雅好用的 Typora 主题与增强插件 VLOOK™ Markdown 图片魔法系列 3:图片缩放的新方式~优雅好用的 Typora 主题与增强插件 VLOOK™ Markdown 图片魔法系列 2:图文混排新玩法~优雅好用的 Typora 主题与增强插件 VLOOK™ Markdown 图片魔法系列:图片旋转/反转/滤镜~优雅好用的 Typora 主题与增强插件 VLOOK™ Markdown 编写中文时的频繁中英文切换 请问一下,有没有直接适配知乎的 typora 主题 markdown 嵌入固定内容
富文本编辑器我来啦🥹(鼻青脸肿 ing)
llej · 2026-03-19 · via Markdown

我最近做了一个开源富文本编辑器: https://github.com/2234839/range-warp

image

以前看到为什么都说富文本编辑器是天坑?这个问题还以为和我没什么关系,结果现在就开始踩坑了🤣


为什么做

先说一下为什么已经有了这么多成熟的产品我还在自己做吧

首先我的场景是要给老的富文本编辑器添加书签和修订功能,但老项目已经有点克苏鲁(混沌化)了而且直接替换成其他编辑器显然也不具备可行性,没有足够的时间来做这件事情,所以我想自己做一层适配层来隔绝老代码的精神污染

怎么做

本来只是想要做一个适配层:就是为老富文本编辑器添加各种自定义容器(书签,修订)功能

结果经过研究发现只要实现通过下标选中任意一段文本可以为他添加某容器包裹或者移除某容器包裹居然就可以实现一个基本完备的富文本编辑器了!

于是这个适配层本身也能是一个富文本编辑器,还可以叠加在任何以 contenteditor 为基础实现的富文本系统上,我测试了一下叠加在 ueditor plus 上基本也没啥毛病,,叠加一层中间层果然能解决任何问题😂

但是

这里的细节太多了,太折磨人了,下面是我遇到的一部分问题的思考,还有更多的细节在代码里以及肯定还有好多我没考虑的(从右到左的文字啥的从来就不打算处理,我的场景用不到)

富文本包裹容器问题:所有加粗,高亮等样式效果都可以视为一个包裹容器,所以应用样式和取消样式就是计算包裹容器的范围应该如何处理。

现在有一个问题:跨段落的容器包裹如何处理?

1. 单容器元素包裹:直接创建一个元素将内容包裹进去
2. 分段包裹:为每个段落中的部分创建一个内联容器

   1. 这种方法就失去了包裹语义:考虑如果容器间被插入了容器,显然新容器无法被包裹,但是对于加粗高亮等容器而言这是可接受的

      1. 这是大部分编辑器的做法,解决插入问题他们依赖自定义数据模型和强控制用户输入的方案
   2. 为所有容器分配相同的 id ,来表示他们是一个组,并且这些元素本身可以视为锚点

      1. 剪贴板清洗( html 规范化):hack 剪切和复制功能,避免剪切锚点粘贴到其他地方导致包裹范围出现变化,也就是容器注册时应该要注册一下他是否可以被复制(注意不是禁止复制,是复制后的剪贴板中有文本,有 html (这个 html 没有禁止复制的容器,但容器内的其他容器的 html 是可以存在的))
3. 锚点虚拟容器包裹,通过两个锚点来确定一个范围,这样可以解决 2 的问题

   1. 锚点元素被剪切或者复制粘贴了怎么办?