Harfbuzz shapingエンジン用の合理化されたCythonバインディング。
import sys
import uharfbuzz as hb
fontfile = sys . argv [ 1 ]
text = sys . argv [ 2 ]
blob = hb . Blob . from_file_path ( fontfile )
face = hb . Face ( blob )
font = hb . Font ( face )
buf = hb . Buffer ()
buf . add_str ( text )
buf . guess_segment_properties ()
features = { "kern" : True , "liga" : True }
hb . shape ( font , buf , features )
infos = buf . glyph_infos
positions = buf . glyph_positions
for info , pos in zip ( infos , positions ):
gid = info . codepoint
glyph_name = font . glyph_to_string ( gid )
cluster = info . cluster
x_advance = pos . x_advance
x_offset = pos . x_offset
y_offset = pos . y_offset
print ( f" { glyph_name } gid { gid } = { cluster } @ { x_advance } , { y_offset } + { x_advance } " )Uharfbuzzパッケージを構築するときは、最小限のHarfbuzzソースが自動的に組み込まれているため、ネイティブHarfbuzzライブラリをインストールする必要はありません。
ただし、システムが提供するHarfbuzzでUharfbuzzを使用する場合(たとえば、カスタム構成を備えたソースから構築した場合)、 USE_SYSTEM_LIBS=1環境変数を設定できます(以下の例を参照)。
USE_SYSTEM_LIBS=1 pip install uharfbuzz --no-binary :uharfbuzz: Harfbuzzのインストールは、 pkg-configを使用して見つかっているため、システムにHarfbuzzの.pcファイルが必要です。ソースから作成した場合、Mesonはそれらを自動的にインストールします。それ以外の場合は、Fedora由来のディストリビューションのharfbuzz-develのように、Harfbuzz開発パッケージをインストールすることをお勧めします。
注:実験的なAPIサポートを有効にして、Harfbuzzを構築する必要があります。
git tag -a使用して、新しい注釈付きタグを作成するか、gpgに署名した注釈付きタグのgit tag -sします。
主要な「V」で新しいタグに名前を付けた後、3つのMajor.minor.patch桁、セマンティックバージョン化のように。例については、既存のタグを見てください。
タグメッセージに、前のタグ以降の変更を説明する短いリリースノートを書いてください。件名はリリース名であり、メッセージ本文はリリースノートになります。
最後に、タグをリモートリポジトリにプッシュします(たとえば、上流が原点と呼ばれると仮定):
$ git push origin v0.4.3
これにより、すべてのテストが正常に渡された場合、CIが配布パッケージを構築してPythonパッケージインデックスに自動的にアップロードします。 CIはまた、新しいGitHubリリースを自動的に作成し、リリースノートに注釈付きGitタグのコンテンツを使用します。