Обтекаемые привязки цинтона для двигателя формирования Harfbuzz.
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.
Однако, если вы хотите использовать Uharfbuzz с помощью вашего предоставленного системой Harfbuzz (например, если вы создали его из источников с пользовательской конфигурацией), вы можете установить переменную USE_SYSTEM_LIBS=1 (см. Пример ниже).
USE_SYSTEM_LIBS=1 pip install uharfbuzz --no-binary :uharfbuzz: Установка Harfbuzz находится с использованием pkg-config , поэтому в вашей системе должны быть файлы .pc Harfbuzz. Если вы построили его из источников, Meson устанавливает их автоматически. В противном случае вы можете установить пакет разработки Harfbuzz, такой как harfbuzz-devel на дистрибуциях, полученных из Fedora.
Примечание. Вы должны построить Harfbuzz с помощью экспериментальной поддержки API.
Используйте git tag -a , чтобы сделать новый аннотированный тег, или git tag -s для аннотированного тега, подписанного GPG, если вы предпочитаете.
Назовите новый тег с ведущими «V», за которыми следуют три цифры Major.minor.patch, такие как в семантической версии. Посмотрите на существующие теги для примеров.
В сообщении тега напишите несколько коротких заметок, описывающих изменения с момента предыдущего тега. Строка темы будет именем выпуска, и тело сообщения будет примечаниями.
Наконец, нажмите метку в удаленный репозиторий (например, предполагая, что вверх по течению называется происхождение):
$ git push origin v0.4.3
Это заставит CI создать пакеты распределения и автоматически загрузить их в индекс пакетов Python, если все тесты успешно проходят. CI также автоматически создаст новый релиз GitHub и использует содержимое аннотированного тега GIT для примечаний.