SuperAPI AI 工具集

pretext

通用与其它

查看项目

更新于 10-15 19:58

技能介绍

用途:Pretext 用于在不触碰 DOM 的前提下测量和排版多行文本,避免 getBoundingClientRect、offsetHeight 等触发布局重排的开销,适合虚拟化列表行高、动态容器、滚动锚定、自适应 textarea,以及需要自行渲染(Canvas/SVG/WebGL)或变宽排版(绕图流动)的场景。

主要能力:采用两阶段方式,prepare() 完成文本分析、分段与 canvas 测量,layout() 用缓存宽度纯算术算高度,同一 prepared 句柄可在 resize 时重复调用。支持 white-space normal/pre-wrap、word-break normal/keep-all、overflow-wrap break-word,处理 CJK、阿拉伯/双向文本、emoji、软连字符、NBSP、ZWSP 与 URL 断行。富路径可输出实际行(layoutWithLines、walkLineRanges、layoutNextLine 等),rich-inline 支持多字体、chip、mention 的行内流。

必要用法:安装命令为 npm install @chenglou/pretext。快速路径:import { prepare, layout } from '@chenglou/pretext',const prepared = prepare(text, '16px Inter'),const { height, lineCount } = layout(prepared, maxWidth, 20)。

限制:font 字符串必须与 CSS font 简写一致,lineHeight 必须与 CSS line-height 一致,否则高度错误;macOS 避免 system-ui;rich-inline 仅支持 white-space: normal,不是嵌套标记树或通用 CSS 行内排版引擎。开源资料未说明收费、价格或平台信息。