优雅 / web字体仓库
简单的网络字体托管。适用于您自己的字体的Google字体替代品。
Requires
- php: >=7.0
- apix/log: ^1.0
- psr/log: ^1.0
- slim/php-view: ^2.0
- slim/slim: ^3.1
Requires (Dev)
- mockery/mockery: ^1.0
- phpunit/phpunit: ^6.2
README
受Google字体启发的简单网络字体托管。它在您的服务器上运行,存储和分发网络字体文件,并为嵌入网页中的字体生成CSS。
快速开始
要求
- 支持PHP ≥ 7.0的HTTP服务器
- Composer(安装所需的)
安装
1. 下载源代码
在控制台运行以下代码
composer create-project finesse/web-fonts-repository webfonts
其中 webfonts
是仓库应安装的目录的路径。
或者,您可以手动做一些事情
- 从GitHub下载源代码并解压。
- 打开终端并转到源代码根目录。
- 在终端中运行以安装库
composer install
- 在终端中运行以准备仓库
composer run-script post-create-project-cmd
2. 文件权限
授予Web服务器运行的用户的权限,允许写入logs
目录。
您只需在控制台中运行此命令即可
# Don't do it in production!
chmod 777 logs
3. Web服务器
使目录public
成为Web服务器的文档根。或者,如果您将仓库安装到Web服务器根目录,可以直接打开https:///public。
确保所有请求不存在文件时都由public/index.php
处理。如果您的服务器是Apache,这已经完成了。
确保服务器向字体文件添加Access-Control-Allow-Origin: *
HTTP头。否则,一些浏览器将拒绝使用仓库中的字体。
- Apache:您需要确保
mod_header.c
模块已启用(运行a2enmod headers
命令并重启服务器以启用它)。 - Nginx:使用此说明。
设置
将您的字体文件(woff,woff2,ttf,otf,eot,svg)放在public/fonts
目录中。您可以使用子目录进行分离。您可以使用Transfonter转换网络字体文件。
所有设置都在文件config/settings-local.php
中。如果您没有它,可以从文件config/settings-local.php.example
中复制它。
参数
displayErrorDetails
是否应将错误详细信息发送到浏览器。无论如何,错误都会写入到文件logs/app.log
中。您应该在生产服务器上将其关闭。
logger
/level
应将多少消息记录到文件中。值是\Psr\Log\LogLevel
常量之一。您可以在此处了解更多关于日志级别的信息。
fonts
仓库中可用的字体列表。简单示例
return [ // ... 'fonts' => [ 'Open Sans' => [ 'styles' => [ '300' => 'OpenSans/opensans-light.*', '300i' => 'OpenSans/opensans-light-italic.*', '400' => 'OpenSans/opensans-regular.*', '400i' => 'OpenSans/opensans-regular-italic.*', ] ], 'Roboto' => [ 'styles' => [ '300' => 'Roboto/roboto-light.*', '400' => 'Roboto/roboto-regular.*', '500' => 'Roboto/roboto-medium.*', '700' => 'Roboto/roboto-bold.*', ] ] ] ];
字体数组fonts
的键是字体族名称。样式数组styles
的键是样式名称。样式名称中的数字是字体粗细,i
表示斜体。
字体文件路径相对于public/fonts
目录给出。文件路径是glob搜索模式。这意味着仓库应将符合该模式的文件视为字体文件。
更多示例和可能性请参阅这里。
用法
将一个<link>
标签添加到您想要嵌入字体的页面的HTML代码中
<link rel="stylesheet" href="http://web-fonts-repository.local/css?family=Open+Sans:400,400i,700,700i|Roboto:300,400" />
其中http://web-fonts-repository.local
是已安装的Web字体仓库的根URL。
字体与Google Fonts中的指定方式相同。字体族由|
分隔,字体族样式由,
分隔,字体族名称与样式列表使用:
分隔。
您可以省略样式列表。在这种情况下,使用常规样式(400
)。
<link rel="stylesheet" href="http://web-fonts-repository.local/css?family=Open+Sans" />
您可以使用display
参数为font-display样式属性指定一个值。例如
<link rel="stylesheet" href="http://web-fonts-repository.local/css?family=Open+Sans&display=swap" />
然后在CSS代码中嵌入字体
body { font-family: 'Open Sans', sans-serif; }
版本兼容性
本项目遵循语义版本控制。
这意味着补丁版本完全兼容(即1.2.1和1.2.2),小版本向后兼容(即1.2.1和1.3.2),而主版本不兼容(即1.2.1和3.0)。预发布版本(0.*)略有不同:补丁版本向后兼容,小版本不兼容。
许可证
MIT。有关详细信息,请参阅LICENSE文件。