GoForum🌐 V2EX

在 web 和 gpui 中实现印刷级别的字体排版精度

P233 · 2026-08-15 23:22 · 0 次点赞 · 2 条回复

前几天看到 @imeoer 大佬用 gpui 写 markdown editor ,正好有个老的 web 英文排版项目特别适合移植到 gpui ,跟 web 相比 rust 可以读取字体文件的元数据,能做的更多,也更适合。

原理是通过读取字体度量表中的 ascent ,descent 与 units-per-em 推导字体的 baseline ratio 计算当前字号的基线的偏移量,然后将文本基线对齐到 vertical rhythm 的网格上,实现印刷排版级别的精度。并且不同字体,不同字号混合排版,drop cap 等等都能轻松处理。

https://i.v2ex.co/f0XuM4q2.png

项目地址: https://github.com/p233/rhythm-gpui

原 sass 版本也一并做了更新,地址: https://github.com/p233/rhythm-sass

有写 markdown editor 的一些设想,下周尝试一下,能走通就继续,走不通就放弃。

2 条回复
imeoer · 2026-08-16 00:22
#1

关注了,看起来很优雅啊,漂亮的效果。感觉这个特别适合富文本编辑器,纯 markdown 语法的排版还是太局限了。

P233 · 2026-08-16 00:47
#2

@imeoer 感谢!这个方案适合大段的纯文本排版要求,单从垂直角度几乎能达到杂志的排版要求,实施过程也更加麻烦。曾经遇到过追求这个精度的设计师,研究了一套比较轻松的实现方案。

想要尝试以这种排版精度做实时 markdown 编辑,有点挑战。

添加回复
你还需要 登录 后发表回复

登录后可发帖和回复

登录 注册
主题信息
作者: P233
发布: 2026-08-15
点赞: 0
回复: 0