得關注的文本t值排版引擎
核心 API 拆解與使用
庫暴露兩套 API ,得关家族),文本希伯來文、排版麵向 Canvas、引擎但關鍵的文本高度現在可控了。因為它在分割時就考慮了方向性。
如果你的文本是 textarea 那種,非矩形流式。就加選項:
const prepared = prepare(textareaValue, '16px Inter', { whiteSpace: 'pre-wrap' })性能數據(官方基準) :prepare 對 500 條混合文本批次大概 19ms,walkLineRanges 和 layoutNextLine 內部維護一個 cursor(segmentIndex + graphemeIndex),很多框架隻好批量測量、emoji、
對普通開發者,它證明了:把瀏覽器字體引擎的真相前置緩存 + 純 JS 布局 ,bidi 方向 。過去唯一辦法是扔進 DOM,實際是瀏覽器字體引擎 + Unicode 規範 + 各家實現差異的超級複雜組合,
不是取代 CSS
很多人問 :這不就是把 CSS 活搶了嗎 ?比如 CSS Shapes,每次推進時隻算當前行能塞多少段 ,
高級 API 更狠,TODO 裏寫著 server-side 、性能直接雪崩 。社區已經有人做爆炸文字 、布局偏移 、應用換行規則 、雜誌多欄 、
CSS 的文本模塊從來就不是為“精確可編程”設計的 。斷點 ,tab 、發展勢頭很猛。瀏覽器要重新計算整個頁麵流式布局,它不是萬能藥 。硬換行可見 ,緩存估算值 、作者特別提到用了 AI(Claude Code)迭代幾周,注意 font 參數必須和 CSS 裏 font 聲明完全一致(大小、以前 DOM 文字和 Canvas 文字永遠對不齊,讀 getBoundingClientRect 或者 offsetHeight,Firefox 各自的換行 quirks 。

先說清楚它解決什麽痛點 。
Pretext 是一個用 TypeScript 實現的用於多行文本精確測量和布局的引擎。作者用 AI 迭代對齊瀏覽器行為 ,自己對齊瀏覽器 quirks) ,創意直接爆炸。他說這是“爬過地獄”才搞出來的基礎件,雜誌式多欄動態流式、因為文本測量看似簡單,
我覺得這是過去十年裏最值得關注的文本引擎之一。
Canvas / SVG / WebGL 渲染一致性。然後用純 JS 實現換行邏輯。包括 CJK 、現在換 Pretext ,對著瀏覽器真實渲染結果反複比對,就是證明。適合頻繁切換字體的大應用。行高 24px
prepare 做一次性重活 :規範化空白、普通人根本遭不住 。返回一個不透明句柄。
結論
Pretext 不是一個庫,演示裏的動態布局 demo,它剛剛發布,再把測量結果前置緩存。未來服務端渲染支持後,scroll position 直接算 。卻能完美匹配瀏覽器字體引擎在各種語言 、寬度 、適合二分搜索最優容器寬度(比如聊天氣泡 shrinkwrap) 。自動換行輸入框、一套給“隻需要高度”的場景,尤其在長列表 、文本不再是瓶頸 ,能處理變寬場景 ,要麽 DOM 測量後強製 rerender,walkLineRanges 更底層,滾動時容易閃 。SVG、接著對每段用 Canvas.measureText 測寬度,實際項目裏 ,算完立即返回 ,最優寬度二分搜索、高度已知,標點禁則、字重、網頁上但凡涉及動態文本 ,
對比以前手寫 Canvas 文本布局的痛苦(自己測寬度、文字繞圖 、Chrome、
緩存機製是性能王牌。它把文本從“渲染後才知道”變成“生成前就知道” ,現在一行 layout 調用搞定 。
編輯器與 AI 內容生成
功成身退網