fdiffは、フォントファイル間のOpentypeテーブルデータの粒度の違いを評価するためのPythonコマンドライン比較ツールです。このツールは、Python V3.7+インタープリターを備えたMacO、Windows、およびGNU/LinuxシステムのローカルおよびリモートフォントDiffのクロスプラットフォームサポートを提供します。
低レベルの変更ではなく、OpenTypeテーブルの違いの高レベルの概要をお探しですか? Van Rossumのfbdiffツールだけをご覧ください。
--includeまたは--excludeオプションを使用してOpenTypeテーブルをフィルターします-lまたは--linesオプションでdiffに表示されるコンテキスト行の数を変更する--headオプションを使用して、diff出力の最初のn行を表示します--tailオプションを使用して、diff出力の最後のn行を表示します--externalオプションを使用して外部diffツールでdiffを実行するfdiff --help利用可能なすべてのオプションを表示します。
fdiffには、Python 3.7+インタープリターが必要です。
Python3仮想環境へのインストールをお勧めします。
次のインストールアプローチのいずれかを使用します。
$ pip3 install fdiff
$ git clone https://github.com/source-foundry/fdiff.git
$ cd fdiff
$ pip3 install -r requirements.txt .
次のアプローチにより、プロジェクトと関連するオプションの開発者依存関係がインストールされるため、再インストールを必要とせずにソースの変更を利用できます。
$ git clone https://github.com/source-foundry/fdiff.git
$ cd fdiff
$ pip3 install --ignore-installed -r requirements.txt -e ".[dev]"
$ fdiff [OPTIONS] [PRE-FONT FILE PATH] [POST-FONT FILE PATH]
fdiff 、公開されているリモートフォントファイルのGETリクエストをサポートしています。ファイルパス引数をURLに置き換えます。
$ fdiff [OPTIONS] [PRE-FONT FILE URL] [POST-FONT FILE URL]
fdiff 、ローカルフォントファイルとリモートフォントファイルの任意の組み合わせで動作します。たとえば、ローカルポストフォントファイルをリモートプリフォントファイルと比較するには、以前にリモートにプッシュされたフォントファイルに対するローカル変更を評価するには、次の構文を使用してください。
$ fdiff [OPTIONS] [PRE-FONT FILE URL] [POST-FONT FILE FILE PATH]
ヒント:Remote Git Repository Hosting Services(GitHubなど)は、URLによるさまざまなGitブランチ上のファイルへのアクセスをサポートしています。これらのリポジトリブランチURLを使用して、リポジトリのgitブランチ全体のフォントを比較します。
DIFFに指定されたテーブルのみを含めるには、テーブル名のコンマ区切りリストを使用して、 --includeオプションを使用します。
$ fdiff --include head,post [PRE-FONT FILE PATH] [POST-FONT FILE PATH]
DIFFで指定されたテーブルを除外するには、テーブル名のコンマ区切りリストを使用して、 --excludeオプションを使用します。
$ fdiff --exclude glyf,OS/2 [PRE-FONT FILE PATH] [POST-FONT FILE PATH]
コンマ区切りのテーブル名値の間にスペースを含めないでください!
違いがある線の上/下のコンテキストの行の数を変更するには、希望する行数の整数値を持つ-lまたは--linesオプションを使用します。次のコマンドは、コンテキスト情報を違いを持つ線の上と下の単一行に削減します。
$ fdiff -l 1 [PRE-FONT FILE PATH] [POST-FONT FILE PATH]
--headオプションを使用して、出力の開始時に行数の整数を使用します。たとえば、次のコマンドには、diffの最初の20行が表示されます。
$ fdiff --head 20 [PRE-FONT FILE PATH] [POST-FONT FILE PATH]
--tailオプションを使用して、出力の最後に行数の整数を使用します。たとえば、次のコマンドには、diffの最後の20行が表示されます。
$ fdiff --tail 20 [PRE-FONT FILE PATH] [POST-FONT FILE PATH]
注:この機能は、サポートされているすべてのプラットフォームでテストされていません。 Project Issue Trackerで出会った問題を報告してください。
デフォルトでは、FDIFFはPythonソースを使用してDIFFを実行します。このアプローチでパフォーマンスの問題に遭遇した場合、プラットフォームで利用可能なコンパイルされたDIFF実行可能ファイルを使用できます。 fdiffは、TTXファイルをダンプし、コマンドラインで提供するコマンドを実行して、フォントTTXダンプファイルパスを最初と2番目の位置の引数として実行します。
たとえば、gnu/linuxまたはこのようなmacosでdiff -uコマンドを実行できます。
$ fdiff --external="diff -u" [PRE-FONT FILE PATH] [POST-FONT FILE PATH]
FDIFFは、外部DIFFツールで使用すると、組み込みのカラーフォーマットとOpenTypeテーブルフィルタリングをサポートします。コンテキストライン、ヘッド、およびテールオプションは、外部DIFFツールを使用してサポートされていません。
ANSIエスケープコードカラーDiffは、デフォルトでターミナル環境で実行されます。
端末にANSIエスケープコードのないDIFFを表示するには、コマンドに--nocolorオプションを含めます。
$ fdiff --nocolor [PRE-FONT FILE PATH] [POST-FONT FILE PATH]
fdiff -hを使用して、利用可能なすべてのオプションを表示します。
プロジェクトの問題トラッカーに関する問題を報告してください。
貢献は温かく歓迎されています。開発者インストールドキュメントを使用して、開発依存環境を編集モードでインストールできます。
標準のGithub Pull Requestアプローチを使用して、ソースの変更を提案してください。
Pythonソースファイルには、 flake8が並んでいます。詳細については、MakeFile test-lintターゲットを参照してください。
このプロジェクトは、 pytest Toolchainを使用してGitHub Actions Serviceで継続的な統合テストを実行します。テストモジュールは、リポジトリのtestsディレクトリにあります。
Pythonインタープリターバージョンによるローカルテストは、リポジトリのルートから実行された次のコマンドで実行できます。
$ tox -e [PYTHON INTERPRETER VERSION]
詳細については、 toxドキュメントをご覧ください。
単位テストのカバレッジは、 coverageツールで実行されます。詳細については、MakeFile test-coverage Targetを参照してください。
fdiff 、Fantastic Fonttools Free Software Libraryで構築され、Fonttoolsライブラリで定義されているTTX Opentype Table Data Serialization Formatのダンプを使用して、バイナリフォントファイルのテキストDIFFを実行します。
Copyright 2019 Source Foundryの著者および貢献者
Apacheライセンス、バージョン2.0(「ライセンス」)に基づいてライセンスされています。ライセンスに準拠している場合を除き、このファイルを使用することはできません。ライセンスのコピーを取得できます
http://www.apache.org/licenses/license-2.0
適用法で要求されていないか、書面で合意されていない限り、ライセンスに基づいて配布されたソフトウェアは、明示または黙示のいずれかの保証または条件なしに、「現状のまま」に基づいて配布されます。ライセンスに基づく権限と制限を管理する特定の言語のライセンスを参照してください。