FONT-V es una biblioteca de cadena de la versión de fuente de código abierto ( libfv ) y ejecutable ( font-v ) para leer, informar, modificar y escribir opentipo de nombre de la tabla ID 5 registros y registros de fontevision de la tabla en *.otf y *.ttf fonts.
Font-V está construido con Python y se puede usar en plataformas Linux, MacOS y Windows con versiones actuales de los intérpretes Python 2 y Python 3.
La biblioteca libfv y el ejecutable font-v se instalan simultáneamente con las siguientes instrucciones de instalación.
La instalación con el Administrador de paquetes PIP es el enfoque recomendado.
Instale con PIP usando el siguiente comando:
$ pip install font-v
Actualice a una nueva versión de Font-V con el siguiente comando:
$ pip install --upgrade font-v
FONT-V se ejecuta con un conjunto de subcomandos y opciones que definen su solicitud de línea de comando.
$ font-v [subcommand] (options) [font path 1] ([font path ...])
reportInforme Nombre de la tabla de nombre de OpenType ID 5 y Registros de fontevisión de la tabla principal
Opción :
--dev -Incluya todos los registros de plataforma de la tabla de la tabla del nombre en el informe writeEscriba el número de versión en la tabla principal de registros de fontevision y cadena de versión para nombrar registros de la ID de la tabla 5.
Opciones :
La siguiente opción se usa con write para modificar el número de versión tanto en el registro de fontevision de cabeza como en el registro (s) de ID 5 del nombre:
--ver=[version #] -Modifique el número de versión actual con un nuevo número de versión que usa la sintaxis 1.000 , 1_000 o 1-000 en la línea de comando (los dos últimos formatos se proporcionan para admitir definiciones en shells donde el período es un carácter de shell especial) Las siguientes opciones se pueden usar con write para modificar la cadena de la versión en el nombre ID 5:
--dev -Agregar metadatos de estado de desarrollo a la cadena de la versión (mutuamente excluyente con --rel )--rel -Agregar metadatos de estado de lanzamiento a la cadena de la versión (mutuamente excluyente con --dev )--sha1 -Agregar git commit sha1 corta metadatos de estado de hash a la cadena de versión (requiere fuente bajo control de la versión Git)reportIngrese lo siguiente para mostrar el número de versión de fontevisión de la cabeza y la cadena de la versión de la fuente de identificación de Nombre para el ejemplo de fuente-regular.ttf:
$ font-v report Example-Regular.ttf
Incluya la bandera --dev para incluir la cadena de versión (nameID 5) contenida en todos los registros de plataforma:
$ font-v report --dev Example-Regular.ttf
write El registro (s) de nombre ID 5 y el registro de fontecratación de cabeza se modifican cuando --ver= se usa en su comando.
Ingrese el número de versión deseado en el formato MAJOR.MINOR después de --ver= flag. El soporte se proporciona para que el glifo del período previsto se reemplazará en el comando con un _score _ o tablero - para los usuarios en plataformas donde el período es un carácter especial de shell.
Todo el siguiente resultado en la modificación del número de versión a 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
Esta solicitud se puede combinar con otras opciones para incluir metadatos de estado y estado simultáneamente.
write Si la fuente de su tipo de letra está bajo el control de la versión GIT, puede sellar la cadena de la versión Name ID 5 con un resumen de hash SHA1 corto (generalmente n = 7-8 caracteres, un número que se determina para confirmar que representa un valor único para la confirmación del repositorio) que representa el comodidad GIT en la cabeza de la rama activa. El comando Git Commit Sha1 hash se define mediante el comando git rev-list en el cabezal de su rama de repositorio activo y coincidirá con los caracteres N iniciales de la digestión de hash Git Sha1 que se muestra cuando revisa su git log (o revisa los hashes de comandos en la UI de las plataformas de hosting de repositorio de GIT como Gorgithub). Esto está destinado a mantener metadatos en el binario de fuentes sobre el estado del código fuente en el momento de la compilación.
Use la opción --sha1 con el subcomando write como este:
$ font-v write --sha1 Example-Regular.ttf
El resumen de hash sha1 corto se agrega con el siguiente formato de cadena de la versión:
Version 1.000;[cf8dc25]
Esto se puede combinar con otras opciones (por ejemplo, para modificar el número de versión +/- Agregar metadatos de estado de desarrollo o liberación) en el mismo comando. Otros metadatos se mantienen y se adhieren a la cadena de versión revisada en un formato delimitado de semicolon con esta modificación.
Esta opción no modifica el registro de fontevision de cabeza.
write Puede modificar la cadena de la versión Name ID 5 para indicar que una compilación está destinada a una compilación de compilación o lanzamiento de desarrollo con el indicador --dev o --rel . Estas son opciones mutuamente excluyentes. Incluya solo uno en su comando.
Para agregar metadatos de estado de desarrollo, use un comando como este:
$ font-v write --dev Example-Regular.ttf
y la cadena de versión se modifica en el siguiente formato:
Version 1.000;DEV
Para agregar metadatos de estado de lanzamiento, use un comando como este:
$ font-v write --rel Example-Regular.ttf
y la cadena de versión se modifica con el siguiente formato:
Version 1.000;RELEASE
Incluya el indicador --sha1 con el indicador --dev o --rel en el comando para incluir tanto el estado como los metadatos de estado en la cadena de la versión:
$ 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
o
$ 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
Cualquier datos que siguieran la subcadena de número de versión original se mantienen y se adhieren después de los metadatos de estado en un formato delimitado de semicolon.
Estas opciones no modifican el registro de fontevision de cabeza.
La biblioteca Libfv Python expone el objeto FontVersion junto con un conjunto asociado de atributos y métodos públicos para lecturas, modificaciones y escrituras del número de versión de registro de fontevisión de OpenType y la cadena de la versión del Nombre ID 5 Registro (s). El ejecutable font-v se basa en los métodos públicos disponibles en esta biblioteca.
La documentación completa de la API libfv está disponible en http://font-v.readthedocs.io/
libfv en su proyecto Para usar la biblioteca libfv, instale el proyecto Font-V con las instrucciones anteriores e importe la clase de FontVersion en su script de Python con lo siguiente:
from fontv . libfv import FontVersionFontVersion A continuación, cree una instancia de la clase FontVersion con uno de los siguientes enfoques:
# Instantiate with a file path to the .ttf or .otf font
fv = FontVersion ( "path/to/font" )o
# Instantiate with a fontTools TTFont object
# See the fonttools documentation for details (https://github.com/fonttools/fonttools)
fv = FontVersion ( fontToolsTTFont ) La biblioteca LibFV automatizará el análisis de la cadena de la versión a un conjunto de atributos de clase de FontVersion pública y expondrá métodos públicos que puede usar para examinar y modificar la cadena de la versión. Las cadenas de versión modificadas se pueden volver a escribir en el archivo de fuentes o a una nueva fuente en una ruta de archivo diferente.
Tenga en cuenta que todas las modificaciones a la cadena de versión se realizan en la memoria. El archivo escribe con estos datos modificados ocurren cuando el código de llamada llama explícitamente el método de escritura FontVersion.write_version_string() (los detalles están disponibles a continuación).
FontVersion Puede examinar la cadena de la versión de Nombre completo ID 5 y el número de versión de FonreVision Head en la memoria (incluso después de las modificaciones que realiza con el código de llamadas) con lo siguiente:
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 las modificaciones de la versión con los métodos públicos se realizan en la memoria. Cuando esté listo para escribirlos en un archivo de fuentes, llame al siguiente 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() proporciona un parámetro opcional fontpath= que puede usarse para definir una ruta de archivo diferente que la que se usó para instanciar el objeto FontVersion .
Compare el nombre de la tabla ID 5 Registro de igualdad entre dos fuentes:
fv1 = FontVersion ( "path/to/font1" )
fv2 = FontVersion ( "path/to/font2" )
print ( fv1 == fv2 )
print ( fv1 != fv2 ) Algunas tareas de modificación de cadena de versión de fuente común que son compatibles con la biblioteca libfv incluyen lo siguiente:
Establezca el número de versión en el nombre ID 5 y los registros de fontevision de cabeza:
fv = FontVersion ( "path/to/font" )
fv . set_version_number ( "1.001" )Establezca la cadena de la versión completa en el registro del nombre ID 5. El número de versión se analiza y se usa para definir el registro de fontecratación de cabeza.
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 )Eliminar todos los metadatos de la cadena de la versión:
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" Agregue una subcadena de estado de desarrollo/lanzamiento al registro de Nombre ID 5:
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 Agregue los metadatos de estado de código fuente al registro de Nombre ID 5:
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 La documentación completa de la API libfv está disponible en http://font-v.readthedocs.io/
¡Las contribuciones de origen a la Biblioteca LibFV y el ejecutable de Font-V se alientan y sean bienvenidos! Consulte la documentación de MD Contributing.MD para más detalles.
Construido con las fantásticas bibliotecas FontTools y Gitpython Python.
Licencia de MIT