Optimierte Cython -Bindungen für den Harbuzz -Formungsmotor.
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 } " )Beim Erstellen des Uharfbuzz -Pakets werden automatisch minimale Harbuzz -Quellen enthalten, sodass Sie die native Harfbuzz -Bibliothek nicht installieren müssen.
Wenn Sie jedoch Uharfbuzz mit Ihrem systembereiteten Harfbuzz verwenden möchten (z. B. wenn Sie es aus Quellen mit benutzerdefinierter Konfiguration erstellt haben), können Sie die Variable " USE_SYSTEM_LIBS=1 festlegen (siehe Beispiel unten).
USE_SYSTEM_LIBS=1 pip install uharfbuzz --no-binary :uharfbuzz: Die Installation von Harfbuzz wird mit pkg-config gefunden, sodass Sie die .pc Dateien von Harfbuzz in Ihrem System befinden müssen. Wenn Sie es aus Quellen erstellt haben, installiert Meson es automatisch. Andernfalls möchten Sie möglicherweise das Harbuzz-Entwicklungspaket wie harfbuzz-devel auf Fedora-abgeleiteten Distributionen installieren.
Hinweis: Sie müssen Harbbuzz mit aktivierter API -Unterstützung erstellen.
Verwenden Sie git tag -a um ein neues kommentiertes Tag oder git tag -s für ein mit GPG -Signal annotierter Tag zu erstellen, falls Sie es vorziehen.
Nennen Sie das neue Tag mit einem führenden 'V', gefolgt von drei Digits von Major.minor.patch, wie in der semantischen Version. Schauen Sie sich die vorhandenen Tags für Beispiele an.
Schreiben Sie in der Tag -Nachricht einige kurze Versionshinweise, in denen die Änderungen seit dem vorherigen Tag beschrieben werden. Die Betreffzeile ist der Release -Name und das Meldungsgremium sind die Versionshinweise.
Drücken Sie schließlich das Tag in das Remote -Repository (zB der Annahme, dass stromaufwärts als Ursprung bezeichnet wird):
$ git push origin v0.4.3
Dadurch wird der CI für die Erstellung der Verteilungspakete ausgelöst und sie automatisch in den Python -Paketindex hochgeladen, wenn alle Tests erfolgreich bestehen. Der CI erstellt automatisch eine neue GitHub -Version und verwendet den Inhalt des kommentierten Git -Tags für die Versionshinweise.