How bhagyashree-vaidya/pretext works
Pretext is a text-measurement and line-layout library. Its main workflow prepares text once—normalizing and segmenting it at break opportunities, then measuring widths—and reuses that prepared data to calculate line counts and height or to produce line ranges and text. A separate rich-inline API handles mixed-font fragments. The graph emphasizes these documented runtime paths; detailed wiring among preparation helpers is not fully shown in the sampled source.
Main entry points: layout.ts Layout API · prepare.ts Preparation · rich-inline.ts Rich Inline API · analysis.ts Text Analysis
Components 17
Public APIs
- Layout API
src/layout.ts - Rich Inline API
src/rich-inline.ts
Text Preparation
- Preparation
src/prepare.ts - Text Analysis
src/analysis.ts - Grapheme Segmentation
src/graphemes.ts - Break Opportunities
src/line-breaks.ts - Font Measurement
src/measurement.ts - Han Kerning
src/han-kerning.ts - Gecko Break Rules
src/gecko-line-breaks.ts - Gecko Bidi Levels
src/gecko-bidi-levels.ts
Line Layout
- Line Breaking
src/line-break.ts - Entry Geometry
src/entry-geometry.ts - Line Materialization
src/line-text.ts
Rich Inline
- Rich Preparation and Layout
src/rich-inline.ts
Other components
- Application
- Browser Font Engine
- Layout Results
Connections 18
- Application → Layout API: provides text
- Layout API → Preparation: prepares text
- Preparation → Text Analysis: analyzes text
- Text Analysis → Grapheme Segmentation: segments graphemes
- Text Analysis → Break Opportunities: finds breaks
- Preparation → Font Measurement: measures segments
- Font Measurement → Browser Font Engine: measures fonts
- Preparation → Han Kerning: accounts for kerning
- Layout API → Line Breaking: lays out prepared text
- Line Breaking → Entry Geometry: checks line fit
- Layout API → Line Materialization: materializes lines
- Line Breaking → Layout Results: returns line metrics
- Line Materialization → Layout Results: returns line text
- Application → Rich Inline API: provides inline items
- Rich Inline API → Font Measurement: measures fragments
- Rich Inline API → Layout Results: returns rich line ranges
- Gecko Break Rules → Break Opportunities: supplies engine rules
- Gecko Bidi Levels → Break Opportunities: supplies bidi data