Midjourney 工程师 Cheng Lou 开源了 Pretext,一款用 TypeScript 完全免触碰 DOM 的文字排版引擎。它将排版拆成两步:先由 prepare() 用 Canvas 测量并缓存按语种切分后的片段宽度,再由 layout() 在内存中用纯算术根据容器宽度与行高推算换行位置与整段高度,避免频繁触发浏览器重排。作者在基准测试指出,在需要反复计算文字高度的热路径场景,Pretext 相较传统 DOM 测量约快 500 倍(未计入一次性初始测量开销)。展示范例包括精确贴合的聊天气泡、即时重排的多栏杂志式布局、可折叠手风琴、可变字宽 ASCII 艺术以及纯 Canvas 的多行文字绘制等,许多原本靠 DOM 测量实现的效果如今可用算术完成,从而大幅降低 reflow 诱发。Pretext 利用浏览器原生的 Intl.Segmenter 做语言感知分段,支持中日韩断行、阿拉伯文右到左排版和表情符号差异等国际化问题。作者在 GitHub 提供多语测试语料,并与浏览器实际算绘结果逐一比对验证准确性。开发过程中大量借助 Claude Code 与 Codex,让 AI 在真实绘制结果作为基准下反复测量、比对与修正,历经数周迭代。Pretext 已以 MIT 授权发布,体积仅数 KB,可通过 npm 安装,且在开源社区已获得大量关注和星标。尽管并非适用于所有场景,但在高频文字测量的性能瓶颈路径上,提供了一个颇具实用价值的替代方案。
惊了!Midjourney工程师用“纯算术”把网页排版提速500倍,开源神器已上线