Font-V est une bibliothèque de chaînes de versions de police open source ( libfv ) et exécutable ( font-v ) pour la lecture, la déclaration, la modification et la rédaction des enregistrements de la table de la table de la table 5 et de la table de tête dans *.otf et *.ttf Polices.
Font-V est construit avec Python et peut être utilisé sur les plates-formes Linux, MacOS et Windows avec des versions actuelles des interprètes Python 2 et Python 3.
La bibliothèque libfv et l'exécutable font-v sont installées simultanément avec les instructions d'installation suivantes.
L'installation avec le gestionnaire de packages PIP est l'approche recommandée.
Installez avec PIP en utilisant la commande suivante:
$ pip install font-v
Mettre à niveau vers une nouvelle version de Font-V avec la commande suivante:
$ pip install --upgrade font-v
Font-V est exécuté avec un ensemble de sous-communs et d'options qui définissent votre demande de ligne de commande.
$ font-v [subcommand] (options) [font path 1] ([font path ...])
reportRapport OpenType Name Table ID 5 et Head Table FonTRevision Records
Option :
--dev - Inclure tous les noms de table ID 5 x plate-forme des enregistrements dans le rapport writeÉcrivez le numéro de version dans les enregistrements de la table de tête FonTRevision et la chaîne de version pour nommer ID de table 5 enregistrements.
Options :
L'option suivante est utilisée avec write pour modifier le numéro de version dans l'enregistrement de la tête de la tête et le (s) enregistrement (s) de nom de nom de l'ID 5:
--ver=[version #] - Modifiez le numéro de version actuel avec un nouveau numéro de version en utilisant 1.000 , 1_000 ou 1-000 syntaxe sur la ligne de commande (les deux derniers formats sont fournis pour prendre en charge les définitions dans les shells où la période est un caractère spécial de coquille) Les options suivantes peuvent être utilisées avec write pour modifier la chaîne de version dans le nom ID 5:
--dev - Ajouter des métadonnées d'état de développement à la chaîne de version (mutuellement exclusive avec --rel )--rel - Ajouter des métadonnées d'état de libération à la chaîne de version (mutuellement exclusive avec --dev )--sha1 - Ajouter les métadonnées Git Commit SHA1 Sha1 Hash Hash à la chaîne de version (nécessite une source sous le contrôle de la version GIT)reportEntrez ce qui suit pour afficher la chaîne de version de la version FontreVision Head et ID de nom 5 de la police pour l'exemple de police-régulier.ttf:
$ font-v report Example-Regular.ttf
Inclure l'indicateur --dev pour inclure la chaîne de version (NameID 5) contenu dans tous les enregistrements PlatformId:
$ font-v report --dev Example-Regular.ttf
write Le (s) enregistrement (s) et l'enregistrement de la tête de la tête est modifié lorsque --ver= est utilisé dans votre commande.
Entrez le numéro de version souhaité au format MAJOR.MINOR après le --ver= drapeau. La prise en charge est fournie pour que les glyphes de période prévus soient remplacés dans la commande par un trait de soulignement _ ou un tableau de bord - pour les utilisateurs sur les plates-formes où la période est un caractère spécial de shell.
Tous les résultats suivants par la modification du numéro de version à 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
Cette demande peut être combinée avec d'autres options pour inclure simultanément les métadonnées d'état et d'état.
write Si votre source de face de type est sous le contrôle de la version GIT, vous pouvez tamponner la chaîne de version ID 5 avec un court hachage SHA1 (généralement n = 7-8 caractères, un nombre qui est déterminé afin de confirmer qu'il représente une valeur unique pour le commit du référentiel) qui représente le commit GIT en tête de la branche GIT active. Le digest de hachage GIT Commit COMMISS est défini par la commande git rev-list à la tête de votre branche de référentiel actif et correspondra aux n caractères initiaux du Git Commit Sha1 Hash Digest qui s'affiche lorsque vous passez en revue votre git log (ou examinez les hachages de commis dans l'interface utilisateur des plateformes d'hébergement de référentiel GIT comme GitHub). Ceci est destiné à maintenir les métadonnées dans le binaire de police sur l'état du code source au moment de la construction.
Utilisez l'option --sha1 avec la sous-commande write comme ceci:
$ font-v write --sha1 Example-Regular.ttf
Le court hachage SHA1 est ajouté avec la formatage de chaîne de version suivante:
Version 1.000;[cf8dc25]
Cela peut être combiné avec d'autres options (par exemple pour modifier le numéro de version +/- Ajouter des métadonnées d'état de développement ou de libération) dans la même commande. D'autres métadonnées sont maintenues et annexées à la chaîne de version révisée dans un format délimité par les demi-finales avec cette modification.
Cette option ne modifie pas l'enregistrement FontreVision Head.
write Vous pouvez modifier la chaîne de version Name ID 5 pour indiquer qu'une version est destinée à une version de développement ou à une version de version avec l'indicateur --dev ou --rel . Ce sont des options mutuellement exclusives. N'inclure qu'un seul dans votre commande.
Pour ajouter des métadonnées d'état de développement, utilisez une commande comme celle-ci:
$ font-v write --dev Example-Regular.ttf
et la chaîne de version est modifiée au format suivant:
Version 1.000;DEV
Pour ajouter des métadonnées d'état de libération, utilisez une commande comme celle-ci:
$ font-v write --rel Example-Regular.ttf
et la chaîne de version est modifiée avec le format suivant:
Version 1.000;RELEASE
Incluez le drapeau --sha1 avec l'indicateur --dev ou --rel dans la commande pour inclure à la fois les métadonnées d'état et d'état dans la chaîne de version:
$ 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
Toutes les données qui ont suivi la sous-chaîne de numéro d'origine sont maintenues et annexées après les métadonnées d'état dans un format délimité par les demi-finales.
Ces options ne modifient pas l'enregistrement FontreVision Head.
La bibliothèque LIBFV Python expose l'objet FontVersion avec un ensemble associé d'attributs et de méthodes publiques pour les lectures, les modifications et les écritures de la chaîne de version OpenType Head FontreVision et la chaîne de version d'enregistrement ID 5 ID 5. L'exécutable font-v est construit sur les méthodes publiques disponibles dans cette bibliothèque.
La documentation complète de l'API LIBFV est disponible sur http://font-v.readthedocs.io/
libfv dans votre projet Pour utiliser la bibliothèque LIBFV, installez le projet Font-V avec les instructions ci-dessus et importez la classe FontVersion dans votre script Python avec les suivants:
from fontv . libfv import FontVersionFontVersion Ensuite, créez une instance de la classe FontVersion avec l'une des approches suivantes:
# 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 ) La bibliothèque LIBFV automatisera l'analyse de la chaîne de version à un ensemble d'attributs de classe de FontVersion publiques et exposera les méthodes publiques que vous pouvez utiliser pour examiner et modifier la chaîne de version. Les chaînes de version modifiées peuvent ensuite être réécrites dans le fichier de police ou sur une nouvelle police sur un chemin de fichier différent.
Notez que toutes les modifications de la chaîne de version sont effectuées en mémoire. Les écritures de fichiers avec ces données modifiées se produisent lorsque le code d'appel appelle explicitement la méthode d'écriture FontVersion.write_version_string() (les détails sont disponibles ci-dessous).
FontVersion Vous pouvez examiner la chaîne complète de la version Nom ID 5 et le numéro de version de la tête FontreVision en mémoire (y compris après les modifications que vous apportez avec le code d'appel) avec les suivantes:
fv = FontVersion ( "path/to/font" )
vs = fv . get_name_id5_version_string () fv = FontVersion ( "path/to/font" )
vs = fv . get_head_fontrevision_version_number ()Toutes les modifications de la version avec les méthodes publiques sont effectuées en mémoire. Lorsque vous êtes prêt à les écrire dans un fichier de police, appelez la méthode suivante:
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() fournit un paramètre facultatif fontpath= qui peut être utilisé pour définir un chemin de fichier différent de celui qui a été utilisé pour instancier l'objet FontVersion .
Comparez Nom Table ID 5 Enregistrer l'égalité entre deux polices:
fv1 = FontVersion ( "path/to/font1" )
fv2 = FontVersion ( "path/to/font2" )
print ( fv1 == fv2 )
print ( fv1 != fv2 ) Certaines tâches de modification de chaîne de version de police commune qui sont prises en charge par la bibliothèque libfv incluent les éléments suivants:
Définissez le numéro de version dans le nom ID 5 et les enregistrements de FonTRevision de tête:
fv = FontVersion ( "path/to/font" )
fv . set_version_number ( "1.001" )Définissez la chaîne de version complète dans l'enregistrement ID du nom 5. Le numéro de version est analysé et utilisé pour définir l'enregistrement FontreVision Head.
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 )Supprimer toutes les métadonnées de la chaîne de version:
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" Ajoutez une sous-chaîne d'état de développement / version à l'enregistrement ID du nom 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 Ajoutez des métadonnées d'état du code source au nom ID 5 Enregistrement:
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 documentation complète de l'API libfv est disponible sur http://font-v.readthedocs.io/
Les contributions à la source à la bibliothèque LIBFV et à l'exécutable Font-V sont encouragées et accueillies! Veuillez consulter la documentation Contributing.MD pour plus de détails.
Construit avec les fantastiques bibliothèques Fonttools et Gitpython Python.
Licence MIT