Font-Vは、Opentype *.otfのテーブルID 5レコードと*.ttfテーブルFONTREVISION RECORDSの読み取り、報告、変更、および書き込みのためのオープンソースFontバージョン文字列ライブラリ( libfv )および実行可能ファイル( font-v )です。
Font-VはPythonで構築されており、Python 2およびPython 3通訳の現在のバージョンを備えたLinux、MacOS、およびWindowsプラットフォームで使用できます。
libfvライブラリとfont-v実行可能ファイルは、次のインストール手順と同時にインストールされます。
PIPパッケージマネージャーとのインストールが推奨されるアプローチです。
次のコマンドを使用してPIPをインストールします。
$ pip install font-v
次のコマンドを使用して、Font-Vの新しいバージョンにアップグレードします。
$ pip install --upgrade font-v
Font-Vは、コマンドライン要求を定義するサブコマンドのセットとオプションで実行されます。
$ font-v [subcommand] (options) [font path 1] ([font path ...])
reportOpentype名のテーブルID 5とヘッドテーブルFONTREVISION RECORDSをレポートする
オプション:
--devすべての名前テーブルIDを含める5 x PlatformIDレコードレポートにwriteヘッドテーブルへのバージョン番号を書き込み、テーブルID 5レコードに名前を付けるバージョン文字列。
オプション:
次のオプションは、ヘッドフォントリビジョンレコードと名前5レコードの両方のバージョン番号を変更するためにwriteとともに使用されます。
--ver=[version #] - コマンドラインに1.000 、または1-000構文を使用して、新しいバージョン番号で現在のバージョン番号を変更1_000ます(期間が特別なシェル文字であるシェルの定義をサポートするために、後者の2つの形式が提供されます)次のオプションは、名前5でバージョン文字列を変更するためにwriteで使用できます。
--dev開発ステータスメタデータをバージョン文字列に追加する( --relで相互に排他的)--relバージョン文字列にリリースステータスメタデータを追加します( --devと相互に排他的)--sha1 -GITコミットSHA1短いハッシュ状態メタデータをバージョン文字列に追加します(GITバージョンコントロールの下でソースが必要です)report付きのバージョン文字列レポート次のように入力して、ヘッドFonTrevisionバージョン番号と名前ID 5 Fontバージョン文字列を表示します。
$ font-v report Example-Regular.ttf
すべてのPlatformIDレコードに含まれるバージョン文字列(nameID 5)を含める--devフラグを含める:
$ font-v report --dev Example-Regular.ttf
writeによるバージョン番号の変更名前ID 5レコードとヘッドフォントリビジョンレコードは、コマンドで--ver=使用されると変更されます。
--ver= flagの後に、 MAJOR.MINOR形式で目的のバージョン番号を入力します。目的のピリオドグリフがコマンドに置き換えられるようにサポートが提供されています。これは、期間が特別なシェルキャラクターであるプラットフォーム上のユーザーのアンダースコア_または-に置き換えられます。
次のすべての結果、バージョン番号が2.020に変更されます。
$ font-v write --ver=2.020 Example-Regular.ttf
$ font-v write --ver=2_020 Example-Regular.ttf
$ font-v write --ver=2-020 Example-Regular.ttf
このリクエストは、状態メタデータとステータスメタデータを同時に含める他のオプションと組み合わせることができます。
writeでコミットします書体ソースがGITバージョン制御下にある場合、アクティブなGITブランチのヘッドでのGITコミットを表すGITコミットを表すことを確認するために、短いSHA1ハッシュダイジェスト(通常はn = 7-8文字、決定される数字)で名前5バージョン文字列にスタンプを押すことができます。 Git Commit Sha1 Hash Digestは、アクティブリポジトリブランチのヘッドにあるgit rev-listコマンドによって定義され、 git logを確認するときに表示されるGit Commit Sha1 Hash Digestの初期n文字と一致します(または、GithubのようなGitリポジトリホスティングプラットフォームのUIでコミットハッシュを確認します)。これは、ビルド時にソースコード状態に関するフォントバイナリにメタデータを維持することを目的としています。
このようなwrite subcommandで--sha1オプションを使用します。
$ font-v write --sha1 Example-Regular.ttf
短いSHA1ハッシュダイジェストは、次のバージョン文字列のフォーマットで追加されます。
Version 1.000;[cf8dc25]
これは、同じコマンドで他のオプション(例:バージョン番号+/-開発ステータスメタデータを変更する)と組み合わせることができます。他のメタデータは、この変更により、セミコロン区切り形式で改訂されたバージョン文字列に維持され、追加されます。
このオプションは、ヘッドフォントリビジョンレコードを変更しません。
writeに追加します名前5バージョン文字列を変更して、ビルドが--devまたは--relフラグを使用した開発ビルドまたはリリースビルドとして意図されていることを示すことができます。これらは相互に排他的なオプションです。コマンドに1つだけを含めます。
開発状況メタデータを追加するには、次のようなコマンドを使用します。
$ font-v write --dev Example-Regular.ttf
バージョン文字列は次の形式に変更されます。
Version 1.000;DEV
リリースステータスメタデータを追加するには、次のようなコマンドを使用します。
$ font-v write --rel Example-Regular.ttf
バージョン文字列は次の形式で変更されます。
Version 1.000;RELEASE
--devまたは--relフラグのいずれかをコマンドに含める--sha1フラグを含めるように、ステータスと状態メタデータの両方をバージョン文字列に含める:
$ font-v write --sha1 --dev Example-Regular.ttf
$ font-v report Example-Regular.ttf
Example-Regular.ttf:
----- name.ID = 5:
Version 1.000;[cf8dc25]-dev
----- head.fontRevision:
1.000
または
$ git write --sha1 --rel Example-Regular.ttf
$ git report Example-Regular.ttf
Example-Regular.ttf:
----- name.ID = 5:
Version 1.000;[cf8dc25]-release
----- head.fontRevision:
1.000
元のバージョン番号のサブストリングに続いたデータは、Sectolonの削除形式でステータスメタデータの後に維持および追加されます。
これらのオプションは、ヘッドフォントリビジョンレコードを変更しません。
LIBFV Pythonライブラリは、 FontVersionオブジェクトを、Opentype Head Fontrevision Recordバージョン番号と名前5レコードバージョン文字列の読み取り、変更、および書き込みの関連する属性およびパブリックメソッドのセットとともに公開します。 font-v実行可能ファイルは、このライブラリで利用可能なパブリックメソッドに基づいて構築されています。
LIBFV APIの完全なドキュメントは、http://font-v.readthedocs.io/で入手できます。
libfvライブラリをプロジェクトにインポートしますLIBFVライブラリを使用するには、上記の手順でFont-Vプロジェクトをインストールし、次のようにPythonスクリプトにFontVersionクラスをインポートします。
from fontv . libfv import FontVersionFontVersionクラスのインスタンスを作成します次に、次のアプローチのいずれかを使用して、 FontVersionクラスのインスタンスを作成します。
# Instantiate with a file path to the .ttf or .otf font
fv = FontVersion ( "path/to/font" )または
# Instantiate with a fontTools TTFont object
# See the fonttools documentation for details (https://github.com/fonttools/fonttools)
fv = FontVersion ( fontToolsTTFont ) LIBFVライブラリは、バージョン文字列の解析を一連のパブリックFontVersionクラス属性に自動化し、バージョン文字列を調べて変更するために使用できるパブリックメソッドを公開します。変更されたバージョン文字列は、フォントファイルまたは別のファイルパスで新しいフォントに書き戻すことができます。
バージョン文字列のすべての変更はメモリで作成されていることに注意してください。これらの変更されたデータを使用してファイルを書き込み、呼び出しコードが書き込みメソッドFontVersion.write_version_string()を明示的に呼び出すと発生します(詳細は以下に入手できます)。
FontVersionオブジェクトでできることフルネームID 5バージョンの文字列とメモリ内のヘッドフォントレビジョンバージョン番号(呼び出しコードで行う後の変更を含む)を以下に調べることができます。
fv = FontVersion ( "path/to/font" )
vs = fv . get_name_id5_version_string () fv = FontVersion ( "path/to/font" )
vs = fv . get_head_fontrevision_version_number ()パブリックメソッドを使用したすべてのバージョンの変更は、メモリで作成されます。それらをフォントファイルに書き出す準備ができたら、次の方法に電話してください。
fv = FontVersion ( "path/to/font" )
# do things to version string
fv . write_version_string () # writes to file used to instantiate FontVersion object
fv . write_version_string ( fontpath = "path/to/differentfont" ) # writes to a different file path FontVersion.write_version_string() FontVersionオブジェクトのインスタンス化に使用されたファイルパスとは異なるファイルパスを定義するために使用できるオプションのパラメーターfontpath=を提供します。
名前テーブルID 5を比較する2つのフォント間の等式を記録します。
fv1 = FontVersion ( "path/to/font1" )
fv2 = FontVersion ( "path/to/font2" )
print ( fv1 == fv2 )
print ( fv1 != fv2 )libfvライブラリによってサポートされているいくつかの一般的なフォントバージョン文字列変更タスクには、以下が含まれます。
名前ID 5にバージョン番号を設定し、ヘッドFONTREVISION RECORDS:
fv = FontVersion ( "path/to/font" )
fv . set_version_number ( "1.001" )Fullバージョン文字列を名前5レコードに設定します。バージョン番号は解析され、ヘッドフォントリビジョンレコードを定義するために使用されます。
fv = FontVersion ( "path/to/font" )
fv . set_version_string ( "Version 2.015; my metadata; more metadata" ) fv = FontVersion ( "path/to/font" )
# version number = "Version 1.234"
vno = fv . get_version_number_tuple ()
print ( vno )
> >> ( 1 , 2 , 3 , 4 )
fv2 = FontVersion ( "path/to/font2" )
# version number = "Version 10.234"
vno2 = fv2 . get_version_number_tuple ()
print ( vno2 )
> >> ( 10 , 2 , 3 , 4 )バージョン文字列からすべてのメタデータを削除します。
fv = FontVersion ( "path/to/font" )
# pre modification version string = "Version 1.000; some metadata; other metadata"
fv . clear_metadata ()
# post modification version string = "Version 1.000" 名前5レコードに開発/リリースステータスサブストリングを追加します。
fv = FontVersion ( "path/to/font" )
# Label as development build
fv . set_development_status ()
# --> adds `DEV` status metadata to version string
# Label as release build
fv . set_release_status ()
# --> adds `RELEASE` status metadata to version string ソースコード状態メタデータを名前5レコードに追加します:
fv = FontVersion ( "path/to/font" )
# Set git commit SHA1 only
fv . set_state_git_commit_sha1 ()
# --> adds "[sha1 hash]" state metadata to build
# Set git commit SHA1 with development status indicator
fv . set_state_git_commit_sha1 ( development = True )
# --> adds "[sha1 hash]-dev" state metadata to build
# Set git commit SHA1 with release status indicator
fv . set_state_git_commit_sha1 ( release = True )
# --> adds "[sha1 hash]-release" state metadata to build libfv APIの完全なドキュメントは、http://font-v.readthedocs.io/で入手できます。
LIBFVライブラリとFont-V実行可能ファイルへのソースの貢献が奨励され、歓迎されます!詳細については、converting.mdドキュメントを参照してください。
素晴らしいフォントツールとGitpython Pythonライブラリで構築されています。
MITライセンス