ITADN
linebender/parley
linebender/parley · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

Parley

富文本布局

Latest published parley version. Documentation build status. Dependency staleness status. Linebender Zulip chat. Apache 2.0 or MIT license.

Parley 提供了一个用于实现富文本布局的 API。

Parley 文本栈

Parley 有四个关键依赖项:Fontique、HarfRust、Skrifa 和 ICU4X。这些 crate 涵盖了文本渲染过程的不同部分。

Fontique

Fontique 提供字体枚举和回退功能。

字体枚举 是指列出(枚举)系统上安装的所有字体。 它还指收集关于这些字体的元数据:它们是否为衬线体、无衬线体、等宽字体,它们的字重,它们覆盖的码点等。 该库负责将字体加载到内存中;它将使用内存映射 IO 懒加载部分数据到内存中,并在系统上的进程之间共享它们。

字体回退 是将文本片段匹配到字体的过程。 这是必要的,因为字体通常不覆盖整个 Unicode 范围:你有用于拉丁文本、中文文本、阿拉伯文本等的不同字体,通常还有一个单独的字体用于表情符号。 但是,如果你例如在拉丁文本中嵌入了阿拉伯文本或表情符号,你通常不会为阿拉伯文本或表情符号指定字体,而是为你选择一个。 字体回退是做出该选择的过程。

HarfRust

HarfRust 是 HarfBuzz 文本整形引擎的 Rust 移植版。文本整形 是指将 Unicode 码点片段映射到字体中的特定字形。 这包括应用连字、解析表情符号修饰符,但也包括某些脚本的更复杂的转换。

Skrifa

Skrifa 读取 TrueType 和 OpenType 字体。

它构建在 read-fonts 底层解析库之上,同时也是 oxidize 项目的一部分。

Skrifa 在 read-fonts 之上提供更高一级的度量信息。 特别是,它将字体文件中的原始字形表示转换为适合光栅化的、经过缩放和提示的矢量路径。

ICU4X

ICU4X 支持文本分析和国际化。对于 Parley,这包括区域设置和语言识别、 双向文本评估、文本分段、表情符号识别、NFC/NFD 规范化以及其他 Unicode 字符信息。

Parley

Parley 本身执行文本布局,并包含用于文本选择和编辑的工具。

文本布局 意味着计算字符串中每个字形的 x/y 坐标。 除了其他库所做的事情之外,这还涉及确定字形大小、换行和双向解析等任务。

最低支持 Rust 版本 (MSRV)

此版本的 Parley 已验证可在 Rust 1.88 及更高版本上编译。

Parley 的未来版本可能会提高 Rust 版本要求。 这不会被视为破坏性更改,因此甚至可能在小补丁版本中发生。

如果编译失败,请单击此处。

随着时间推移,Parley 的某些依赖项可能已发布了具有更高 Rust 要求的版本。 如果您因依赖项遇到编译问题,且不想升级您的 Rust 工具链,则可以降级该依赖项。

# Use the problematic dependency's name and version
cargo update -p package_name --precise 0.1.1

社区

Parley 的讨论在 Linebender Zulip 中进行,具体是 #parley 频道。 所有公开内容无需登录即可阅读。

欢迎通过 pull request 提交贡献。Rust code of conduct 适用。

除非您明确另有说明,否则您有意提交以纳入本作品的任何贡献,如 Apache 2.0 许可证所定义,将按照 License 部分所述进行许可,不附加任何额外条款或条件。

许可证

在以下任一许可证下授权:

供您选择。

用于测试和基准测试的某些文件采用不同的许可证。详见 ./parley_dev/README.md