Font-V é uma biblioteca de string de versão para fonte de código aberto ( libfv ) e executável ( font-v ) para leitura, relatórios, modificação e gravação do nome OpenType ID da tabela 5 Registros e tabela de cabeças FONTES FONTES *.otf e *.ttf Fontes.
O FONT-V é construído com Python e pode ser usado em plataformas Linux, MacOS e Windows com versões atuais dos interpretadores Python 2 e Python 3.
A biblioteca libfv e o executável font-v são instalados simultaneamente com as seguintes instruções de instalação.
A instalação com o gerenciador de pacotes PIP é a abordagem recomendada.
Instale com PIP usando o seguinte comando:
$ pip install font-v
Atualize para uma nova versão do Font-V com o seguinte comando:
$ pip install --upgrade font-v
O FONT-V é executado com um conjunto de subcomandos e opções que definem sua solicitação de linha de comando.
$ font-v [subcommand] (options) [font path 1] ([font path ...])
reportRelatório OpenType Nome Tabela ID 5 e tabela de cabeça Fontrevição Records
Opção :
--dev -Inclua todo o nome da tabela ID 5 x registros de plataforma no relatório writeEscreva o número da versão para a tabela de cabeça Fontrevição Records e a String de versão para nomear a tabela ID 5 Registros.
Opções :
A opção a seguir é usada com write para modificar o número da versão no registro da Fontrevição Head e no (s) registro (s) do nome ID 5:
--ver=[version #] -Modifique o número da versão atual com um novo número de versão usando 1.000 , 1_000 ou 1-000 sintaxe na linha de comando (os dois últimos formatos são fornecidos para suportar definições em conchas em que o período é um caractere de shell especial) As seguintes opções podem ser usadas com write para modificar a string de versão no nome ID 5:
--dev -Adicione os metadados do status de desenvolvimento à string de versão (mutuamente exclusiva com --rel )--rel -Adicione os metadados do status de liberação à string de versão (mutuamente exclusiva com --dev )--sha1 -Adicione o Git Commit SHA1 Short Hash State Metadados à string de versão (requer fonte sob controle da versão Git)reportDigite o seguinte para exibir o número da versão da cabeça Fontrevição e o nome da string 5 da versão da fonte para a fonte de exemplo-regular.ttf:
$ font-v report Example-Regular.ttf
Inclua o sinalizador --dev para incluir a string de versão (nameId 5) contida em todos os registros da plataforma:
$ font-v report --dev Example-Regular.ttf
write O registro (s) e o registro (s) e o registro da Fontrevição da cabeça são modificados quando --ver= é usado em seu comando.
Digite o número da versão desejado no formato MAJOR.MINOR após o --ver= sinalizador. O suporte é fornecido para que o glifo do período pretendido seja substituído no comando por um sublinhado _ ou traço - para usuários em plataformas onde o período é um caractere de shell especial.
Todo o seguinte resultado na modificação do número da versão para 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
Essa solicitação pode ser combinada com outras opções para incluir metadados de estado e status simultaneamente.
write Se a sua fonte do tipo de letra estiver no controle da versão Git, você poderá carimbar a string da versão Nome ID 5 com um resumo de hash SHA1 (geralmente n = 7-8 caracteres, um número que é determinado para confirmar que representa um valor único para o comprometimento do repositório) que representa o comprometimento do GIT na cabeça do ramo ativo do Git. O Digest Sha1 com comprometimento do Git é definido pelo comando git rev-list à frente do seu ramo de repositório ativo e corresponderá aos caracteres iniciais do N do Git Commit SHA1 Hash Digest que é exibido ao revisar seu git log (ou revisar as hashes da interface do usuário do Git Repository Hosting Platform como Github). Isso se destina a manter metadados no binário da fonte sobre o estado do código -fonte no horário de construção.
Use a opção --sha1 com o subcomando write como este:
$ font-v write --sha1 Example-Regular.ttf
O resumido SHA1 Hash Digest é adicionado com a seguinte versão String formating:
Version 1.000;[cf8dc25]
Isso pode ser combinado com outras opções (por exemplo, para modificar o número da versão +/- Adicionar metadados de desenvolvimento ou status de liberação) no mesmo comando. Outros metadados são mantidos e anexados à string de versão revisada em um formato Delimitado de Semicolon com esta modificação.
Esta opção não modifica o registro da Fontrevisão da cabeça.
write Você pode modificar a sequência de versão do nome ID 5 para indicar que uma compilação é destinada a uma compilação de desenvolvimento ou versão de liberação com o sinalizador --dev ou --rel . Essas são opções mutuamente exclusivas. Inclua apenas um em seu comando.
Para adicionar metadados de status de desenvolvimento, use um comando como este:
$ font-v write --dev Example-Regular.ttf
e a string de versão é modificada para o seguinte formato:
Version 1.000;DEV
Para adicionar metadados de status de liberação, use um comando como este:
$ font-v write --rel Example-Regular.ttf
e a string de versão é modificada com o seguinte formato:
Version 1.000;RELEASE
Inclua o sinalizador --sha1 com o sinalizador --dev ou --rel no comando para incluir os metadados do status e o estado na string da versão:
$ 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
ou
$ 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
Quaisquer dados que se seguissem à substring do número de versão original são mantidos e anexados após os metadados do status em um formato delimitado de Semicolon.
Essas opções não modificam o registro da Fontrevisão da cabeça.
A biblioteca Libfv Python expõe o objeto FontVersion , juntamente com um conjunto associado de atributos e métodos públicos para leituras, modificações e gravações da string de versão da versão Record (s) da versão (s) da versão (s) da versão do nome. O executável font-v é construído sobre os métodos públicos disponíveis nesta biblioteca.
A documentação completa da API da libfv está disponível em http://font-v.readthedocs.io/
libfv para o seu projeto Para usar a biblioteca LibFV, instale o projeto FONT-V com as instruções acima e importe a classe FontVersion para o seu script python com o seguinte:
from fontv . libfv import FontVersionFontVersion Em seguida, crie uma instância da classe FontVersion com uma das seguintes abordagens:
# Instantiate with a file path to the .ttf or .otf font
fv = FontVersion ( "path/to/font" )ou
# Instantiate with a fontTools TTFont object
# See the fonttools documentation for details (https://github.com/fonttools/fonttools)
fv = FontVersion ( fontToolsTTFont ) A biblioteca LIBFV automatizará a análise da string de versão para um conjunto de atributos públicos da classe FontVersion e exporá métodos públicos que você pode usar para examinar e modificar a sequência da versão. As cadeias de versão modificadas podem ser gravadas novamente no arquivo de fontes ou em uma nova fonte em um caminho de arquivo diferente.
Observe que todas as modificações na sequência da versão são feitas na memória. As gravações de arquivo com esses dados modificados ocorrem quando o código de chamada chama explicitamente o método de gravação FontVersion.write_version_string() (os detalhes estão disponíveis abaixo).
FontVersion Você pode examinar a sequência de versões da versão 5 Nome ID 5 e o número da versão da Fontrevição na memória (incluindo modificações que você faz com o código de chamada) com o seguinte:
fv = FontVersion ( "path/to/font" )
vs = fv . get_name_id5_version_string () fv = FontVersion ( "path/to/font" )
vs = fv . get_head_fontrevision_version_number ()Todas as modificações da versão com os métodos públicos são feitas na memória. Quando você estiver pronto para escrevê -los em um arquivo de fonte, ligue para o seguinte método:
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() fornece um parâmetro opcional fontpath= que pode ser usado para definir um caminho de arquivo diferente daquele que foi usado para instanciar o objeto FontVersion .
Compare o nome da tabela ID 5 Registre a igualdade entre duas fontes:
fv1 = FontVersion ( "path/to/font1" )
fv2 = FontVersion ( "path/to/font2" )
print ( fv1 == fv2 )
print ( fv1 != fv2 ) Algumas tarefas de modificação de string de versão de fonte comum que são suportadas pela biblioteca libfv incluem o seguinte:
Defina o número da versão no nome ID 5 e Head Fontrevincie Records:
fv = FontVersion ( "path/to/font" )
fv . set_version_number ( "1.001" )Defina a string de versão completa no registro do nome ID 5. O número da versão é analisado e usado para definir o registro da Fontrevição da cabeça.
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 )Remova todos os metadados da string da versão:
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" Adicione uma substring de status de desenvolvimento/liberação ao nome ID 5 registro:
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 Adicione os metadados do estado do código -fonte ao nome ID 5 registro:
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 A documentação completa da API libfv está disponível em http://font-v.readthedocs.io/
As contribuições da fonte para a biblioteca LibFV e o executável Font-V são incentivadas e bem-vindas! Consulte a documentação contribuindo.md para obter detalhes.
Construído com as fantásticas bibliotecas Fonttools e Gitpython Python.
MIT Licença