Ligações de Cython simplificadas para o motor de modelagem de 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 } " )Ao criar o pacote uharfbuzz, ele incorpora automaticamente fontes de Harfbuzz mínimas para que você não precise instalar a biblioteca nativa Harfbuzz.
No entanto, se você deseja usar o UharfBuzz com o seu HarfBuzz fornecido pelo sistema (por exemplo, se você o construiu de fontes com configuração personalizada), poderá definir USE_SYSTEM_LIBS=1 variável de ambiente (veja o exemplo abaixo).
USE_SYSTEM_LIBS=1 pip install uharfbuzz --no-binary :uharfbuzz: A instalação do HarfBuzz é encontrada usando pkg-config , então você deve ter os arquivos .pc do Harfbuzz no seu sistema. Se você o criou a partir de fontes, o Meson as instala automaticamente. Caso contrário, convém instalar o pacote de desenvolvimento Harfbuzz, como harfbuzz-devel nas distros derivadas do Fedora.
NOTA: Você deve criar o HarfBuzz com o suporte experimental da API ativado.
Use git tag -a para criar uma nova tag anotada ou git tag -s para uma tag anotada assinada por GPG, se preferir.
Nomeie a nova tag com um líder 'V' seguido por três dígitos major.Minor.patch, como no versão semântica. Veja as tags existentes para exemplos.
Na mensagem de tag, escreva algumas notas de lançamento curtas que descrevem as alterações desde a tag anterior. A linha de assunto será o nome de liberação e o corpo da mensagem será as notas de liberação.
Por fim, empurre a tag para o repositório remoto (por exemplo, assumindo que a montante é chamada de origem):
$ git push origin v0.4.3
Isso acionará o IC para construir os pacotes de distribuição e o carregar no Índice de Pacote Python automaticamente, se todos os testes passarem com sucesso. O CI também criará automaticamente uma nova liberação do Github e usará o conteúdo da tag git anotada para as notas de versão.