フォルダーにフォントを表示するためのDockerコンテナ

フォントを閲覧およびプレビューしてからダウンロードできる一種のフォントレポジトリとして機能するシンプルなDockerコンテナはありません。だから私はただそれを作ることにしました。このDockerコンテナは、PHP:Apache、Composer、およびPHP-Font-LIBを使用して、ディレクトリからフォントのリストを取得し、メタデータを読み、情報をキャッシュし、ユーザーがダウンロードできるWebページに名前とプレビューを表示します。このプロジェクトは非常に早い段階にあるので、見つけた問題やバグを報告してください。私はプログラマーではなくグラフィックデザイナーであるため忍耐してください!
gitクローンを使用してリポジトリをコンピューターにコピーするか、このページの上部にあるグリーン「コード」ボタンをクリックして、zipファイルをどこにでもダウンロードして抽出します。 fontshowを構築および起動するには、docker-compose.ymlと同じフォルダーでコマンドプロンプト(またはOSでこれらのコマンドを実行する)を開き、実行します。
docker-compose up --build
コンテナを構築して起動すると、これには少し時間がかかります。 http:// localhost:8090を確認して、コンテナが正しく起動されていることを確認してください。再構築せずに将来それを起動するには:
docker-compose up -d
Fontshowが使用するポート番号を変更するには、ポートを8090からDocker-Compose.ymlファイルの他のポート番号に変更するだけです。
ports:
- 8090:80
docker-compose.ymlファイルは、データベースのデフォルトの資格情報として「ユーザー」と「パスワード」を設定します。セキュリティ上の理由からこれらを変更してください。変更したら、PHP/www/config.phpで変更してください。ルートパスワードは、Fontshowがどこにも使用していませんが、セキュリティ上の理由で変更する必要があります。
environment:
MYSQL_ROOT_PASSWORD: CHANGEME
MYSQL_DATABASE: fontshowDB
MYSQL_USER: user
MYSQL_PASSWORD: password
サイトの色からフッターの内容までほとんどすべてをPHP/www/config.phpで変更できます。
PHP/www/config.phpには、デフォルトのデータベース資格情報があります。 Composeファイルで以前に変更した場合(必要です! )、構成ファイルで変更する必要があります。
キャッシュは毎日更新するように設定されていますが、テキストプレビューボックスの横にあるフロントエンドのボタンでトリガーできます。この持続時間の長さは、すぐに更新するための更新ボタンがあるため、ほとんどの人が変更する必要があるものではないため、構成できません。リフレッシュの期間を変更するには、この行をPHP/www/get-fonts.phpで編集します:
$cacheTime = 86400; // Cache for 1 day
フォントを追加するには、フォントファイルを / fonts /ディレクトリにドロップするだけで、ブラウザを開いてfontshowを開き、[キャッシュの更新]ボタンをクリックします。 Fontshowは、 / fonts /ディレクトリ内のサブフォルダーをサポートするようになりました。フォントが表示されるサイトのフロントエンドは区別しません。これにより、 /フォント /ディレクターをよりきれいに整理し、すでにフォルダーにネストされているフォントを使用することができます。
/ fonts / folderのフォントをスキャンするための最初の起動である程度の時間を与えます。これは、新しいフォントを追加し、更新キャッシュボタンを押した後にfontshowに表示される場合です。バックグラウンドでは、php/www/get-fonts.phpが各フォントからメタデータを引き出し、PHP/www/index.phpのデータベースに追加して引きます。これは、持っているフォントの量に応じて、かなり遅い場合があります。ボタンテキストは更新され、フェッチングがバックグラウンドで行われていることを知らせます。
変数フォントは、私が使用しているPHP-Font-Libライブラリによってサポートされていないため、PHP-Font-Libに追加されない限り、Fontshowによってサポートされません。機能しない他のフォントタイプがあるかもしれませんが、OTFやTTFのような主要なタイプはそうです。バグは発見されたときに解決されます。問題が発生した場合は、問題を残してください!