#字体 #Web字体 #TrueType #分割 #转换 #OTF

bin+lib mkwebfont

将 .ttf/.otf 文件转换为 Web 字体的简单工具

4 个版本

0.2.0-alpha22024 年 6 月 28 日
0.2.0-alpha12024 年 5 月 19 日
0.1.1 2024 年 4 月 8 日
0.1.0 2024 年 4 月 8 日

#598 in 命令行工具

每月 33 次下载

Apache-2.0

580KB
8K SLoC

Rust 5K SLoC // 0.0% comments C++ 3K SLoC // 0.1% comments

mkwebfont

mkwebfont 是一个简单地将 .ttf/.otf 文件转换为 Web 字体的工具,用于自托管,没有预包装 Web 字体或托管 Web 字体的复杂性和缺乏灵活性。它设计成一个简单的单命令解决方案,不需要复杂的脚本或对 .woff2 或字体的特定理解。

类似于 Google Fonts,它将字体分割成子集,只加载所需的部分,通常基于使用的语言。

用法

安装

要安装它,只需运行以下命令

cargo +nightly install mkwebfont

或者,从 发行页面 下载 AppImage。

基本用法

运行以下命令以创建基本的 Web 字体

# Assumes that you serve `https://example.com/` from a directory of `/srv/http/webroot`.
# Adjust these paths for your use case
mkdir -p /srv/http/webroot/static/webfonts
mkwebfont \
    --store /srv/http/webroot/static/webfonts --store-uri "https://example.com/static/webfonts/" \
    -o /srv/http/webroot/static/fonts.css fonts/* 

之后,您只需在 https://example.com/static/fonts.css 中包含样式表,然后您就可以在网站上使用您在命令行中包含的任何字体(例如,示例中的 fonts)。

静态网站的用法

mkwebfont 对 完全静态 网站(仅使用 HTML 和 CSS,没有动态功能)有特殊支持。对于这些网站,它可以自动创建只包含网站实际使用的符号的 Web 字体,并自动从互联网下载 CSS 中请求的任何字体(可在 Google Fonts 上找到)。

运行以下命令以创建静态网站的 Web 字体

# Assumes that you serve `https://example.com/` from a directory of `/srv/http/webroot`.
# Adjust these paths for your use case
mkdir -p /srv/http/webroot/static/webfonts
mkwebfont --store /srv/http/webroot/static/webfonts --webroot /srv/http/webroot/ --subset --write-to-webroot

不建议使用许多高级 CSS 功能,如果使用这些功能,则会收到警告。作为一个基本的规则,不要为字体相关的 CSS 属性使用 var(--xx)、或特殊值如 inheritrevert。如果可能,请考虑使用 CSS 生成器如 SCSS 来帮助避免这种情况。

警告: 许多这些警告在 alpha 版本中尚未实现。此外,一些较少使用(但仍然常见)的功能,如对 style= 属性的支持,既未实现也没有警告。

警告:此功能修改webroot,而不是简单地将其作为参考。通常,此功能是为了在构建过程中调用而设计的,而不是手动构建webroot时调用。对于那种用途,基本使用说明更为合适。

许可证

本项目采用Apache许可证第2版。

贡献

除非你明确表示,否则,你根据Apache-2.0许可证定义,有意提交给mkwebfont的任何贡献,将按上述方式许可,不附加任何额外条款或条件。

依赖项

~36-54MB
~1M SLoC