优雅/web字体仓库

简单的网络字体托管。适用于您自己的字体的Google字体替代品。

v0.2.3 2020-03-01 10:38 UTC

This package is auto-updated.

Last update: 2024-08-29 04:20:01 UTC


README

Latest Stable Version Total Downloads PHP from Packagist Test Status Maintainability Test Coverage

受Google字体启发的简单网络字体托管。它在您的服务器上运行,存储和分发网络字体文件,并为嵌入网页中的字体生成CSS。

快速开始

要求

  1. 支持PHP ≥ 7.0的HTTP服务器
  2. Composer(安装所需的)

安装

1. 下载源代码

在控制台运行以下代码

composer create-project finesse/web-fonts-repository webfonts

其中 webfonts 是仓库应安装的目录的路径。

或者,您可以手动做一些事情

  1. GitHub下载源代码并解压。
  2. 打开终端并转到源代码根目录。
  3. 在终端中运行以安装库
    composer install
  4. 在终端中运行以准备仓库
    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文件。