pretext 实践介绍
OptimalTypography 代码分析索引
文档概览
本系列文档对 src/components/home/OptimalTypography.tsx 进行全面分析,涵盖排版算法原理、核心实现细节及工程化扩展思路。
文档结构
技术规格与标准/OptimalTypography/
├── 01-整体架构与流程.md ← 快速总览、核心方法一览表
├── 02-断词机制详解.md ← hyphenateWord 三层断词逻辑
├── 03-Knuth-Plass算法.md ← optimalLayout 动态规划详解
└── 04-渲染管线与复用.md ← renderCanvas 全流程 + 扩展讨论
阅读路径建议
入门路径(快速理解)
- 01-整体架构与流程 → 了解整体结构和核心概念
- 04-渲染管线与复用 → 看实际应用和扩展方向
深入路径(完整掌握)
- 01-整体架构与流程 → 整体把握
- 02-断词机制详解 → 理解预处理如何工作
- 03-Knuth-Plass算法 → 掌握核心算法原理
- 04-渲染管线与复用 → 理解端到端流程
专题路径(按需查阅)
- 想了解断词策略 → 看 02
- 想深入算法原理 → 看 03
- 想做工程扩展 → 看 04
核心概念
Knuth-Plass 算法
由 Donald Knuth 和 Michael Plass 于 1981 年为 TeX 系统开发,通过动态规划找到段落的最优断点组合,最小化整体间距不均匀度。
河流现象 (Rivers)
当多行文本的间距形成纵向对齐的白色间隙时,视觉上形成类似河流的条纹,严重影响阅读体验。Knuth-Plass 算法通过检测过松间距来抑制河流产生。
软连字符 (Soft Hyphen U+00AD)
不可见的连字符标记,在文本渲染时可根据需要转换为可见连字符。用于标记允许断裂的位置。
关键数据文件位置
源代码:src/components/home/OptimalTypography.tsx
关键配置常量:
PARAGRAPHS(第8-13行) — 示例文本内容HYPHEN_EXCEPTIONS(第16-132行) — 130+ 异常词典条目PREFIXES(第134-189行) — 55 个前缀列表SUFFIXES(第190-228行) — 37 个后缀列表
外部依赖
| 包名 | 用途 |
|---|---|
@chenglou/pretext | 软连字符预处理,生成 segments 和 widths |
文档更新记录
| 日期 | 版本 | 变更 |
|---|---|---|
| 2026-04-02 | 1.0 | 初始文档创建 |