FONT-V ist eine Open Source Font Version String Library ( libfv ) und ausführbare Datei ( font-v ) zum Lesen, Berichten, Ändern und Schreiben von OpenType-Namenstabellen-ID 5-Datensätzen und Headtable Fontrevision Records in *.otf und *.ttf -Schriftarten.
FONT-V wurde mit Python erstellt und kann unter Linux-, MacOS- und Windows-Plattformen mit aktuellen Versionen der Dolmetscher Python 2 und Python 3 verwendet werden.
Die libfv Bibliothek und die ausführbare font-v Datei werden gleichzeitig mit den folgenden Installationsanweisungen installiert.
Die Installation mit dem PIP -Paketmanager ist der empfohlene Ansatz.
Installieren Sie mit PIP mit dem folgenden Befehl:
$ pip install font-v
Upgrade auf eine neue Version von Font-V mit dem folgenden Befehl:
$ pip install --upgrade font-v
FONT-V wird mit einer Reihe von Unterbewohnern und Optionen ausgeführt, die Ihre Befehlszeilenanforderung definieren.
$ font-v [subcommand] (options) [font path 1] ([font path ...])
reportMelden Sie OpenType Name Tabelle ID 5 und Head Table Fontrevision Records
Option :
--dev -Fügen Sie alle Namenstabellen ID 5 x Plattformid -Datensätze in den Bericht ein writeSchreiben Sie die Versionsnummer in Headtable Fontrevision -Datensätze und Versionszeichenfolge, um Tabellen -ID 5 -Datensätze zu nennen.
Optionen :
Die folgende Option wird mit write verwendet, um die Versionsnummer sowohl im Kopf -Fontrevision -Datensatz als auch in den Datensatzdatensatz (n) zu ändern:
--ver=[version #] -Die aktuelle Versionsnummer mit einer neuen Versionsnummer mit 1.000 , 1_000 oder 1-000 Syntax in der Befehlszeile ändern (die beiden letzten Formate werden bereitgestellt, um Definitionen in Shells zu unterstützen, bei denen der Zeitraum ein spezieller Shell-Zeichen ist) Die folgenden Optionen können mit write verwendet werden, um die Versionszeichenfolge in der Namens -ID 5 zu ändern:
--dev -Dev -Fügen Sie den Versionsstatus -Metadaten zur Versionszeichenfolge hinzu (gegenseitig ausschließend mit --rel )--rel -Release -Status -Metadaten in die Versionszeichenfolge hinzufügen (gegenseitig ausschließend mit --dev )--sha1 -Git Commit SHA1 Short Hash State Metadata zur Versionszeichenfolge (erfordert Quelle unter Git -Versionskontrolle)reportGeben Sie Folgendes ein, um die Versionsnummer und die Namensnummer des Kopfes Fontrevision für die Font-Beispiel-Regular.ttf anzeigen zu können.
$ font-v report Example-Regular.ttf
Fügen Sie das Flag --dev ein, um die Versionszeichenfolge (NameID 5) in allen Plattformdatensätzen einzuschließen:
$ font-v report --dev Example-Regular.ttf
write Die Namensdatensatz von ID 5 und der Datensatz für den Kopf -Fontrevision -Datensatz werden geändert, wenn --ver= in Ihrem Befehl verwendet wird.
Geben Sie die gewünschte Versionsnummer in MAJOR.MINOR -Format nach dem --ver= Flag ein. Die Unterstützung wird für die beabsichtigte Glyphe der Glyphe ermöglicht, die im Befehl durch einen Unterstrich _ oder Dash ersetzt wird - für Benutzer auf Plattformen, auf denen der Zeitraum ein spezieller Shell -Zeichen ist.
Alle folgenden Ergebnissen führen zu einer Änderung der Versionsnummer auf 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
Diese Anfrage kann mit anderen Optionen kombiniert werden, um staatliche und status -Metadaten gleichzeitig einzuschließen.
write Wenn sich Ihre Schriftquelle unter der Git-Versionskontrolle befindet, können Sie die Namenszeichenfolge der Namen ID 5 mit einem kurzen SHA1-Hash-Digest (im Allgemeinen n = 7-8 Zeichen, eine Zahl, die bestimmt wird, um zu bestätigen, dass sie einen eindeutigen Wert für das Repository-Commit darstellt), der das Git-Commit am Leiter des aktiven GIT-Zweigs darstellt. Der Git Commit SHA1 Hash Digest wird durch den Befehl git rev-list von Ihrem aktiven Repository-Zweig definiert und entspricht den ersten N-Zeichen des Git Commit SHA1-Hash-Digest, das angezeigt wird, wenn Sie Ihr git log überprüfen (oder die Commit-Hashes in der UI von GIT-Repository-Hosting-Plattformen wie Github überprüfen). Dies soll Metadaten in der Schriftart Binary über den Quellcode -Status zum Bauzeit aufrechterhalten.
Verwenden Sie die Option --sha1 mit dem write wie folgt:
$ font-v write --sha1 Example-Regular.ttf
Der kurze SHA1 -Hash -Digest wird mit der folgenden Versions -String -Formatierung hinzugefügt:
Version 1.000;[cf8dc25]
Dies kann mit anderen Optionen kombiniert werden (z. B. um die Versionsnummer +/- -Metadaten für die Entwicklung oder den Release-Status im selben Befehl zu ändern. Andere Metadaten werden mit dieser Modifikation in einem Semikolon -Abgrenzungsformat an die überarbeitete Versionszeichenfolge gepflegt und angehängt.
Diese Option ändert nicht den Kopf -Fontrevision -Datensatz.
write hinzu Sie können die Name ID 5 -Versionszeichenfolge ändern, um anzuzeigen, dass ein Build als Entwicklungsbau oder Veröffentlichung mit dem Flag --dev oder --rel vorgesehen ist. Dies sind sich gegenseitig ausschließende Optionen. Fügen Sie nur einen in Ihren Befehl ein.
Verwenden Sie einen Befehl wie diesen, um Entwicklungsstatus -Metadaten hinzuzufügen:
$ font-v write --dev Example-Regular.ttf
und die Versionszeichenfolge wird in das folgende Format geändert:
Version 1.000;DEV
Verwenden Sie einen Befehl wie diesen, um den Release -Status -Metadaten hinzuzufügen:
$ font-v write --rel Example-Regular.ttf
und die Versionszeichenfolge wird mit dem folgenden Format geändert:
Version 1.000;RELEASE
Fügen Sie das Flag --sha1 mit dem Flag --dev oder --rel in den Befehl ein, um sowohl Status als auch Statusmetadaten in die Versionszeichenfolge einzubeziehen:
$ 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
oder
$ 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
Alle Daten, die dem Substring der Originalversionsnummer folgten, werden nach den Statusmetadaten in einem Semikolon -Abgrenzungsformat gewartet und angehängt.
Diese Optionen ändern den Kopf -Fontrevision -Datensatz nicht.
Die LIBFV -Python -Bibliothek enthält das FontVersion -Objekt zusammen mit einem zugehörigen Satz von Attributen und öffentlichen Methoden für Lesevorgänge, Änderungen und schreibt die Versionsnummer des OpenType -Head -Fontrevision -Datensatzes und die Name ID 5 -Aufzeichnung (en) Versionszeichenfolge. Die ausführbare font-v Datei basiert auf den in dieser Bibliothek verfügbaren öffentlichen Methoden.
Die vollständige Dokumentation der LIBFV-API ist unter http://font-v.readthedocs.io/ verfügbar
libfv -Bibliothek in Ihr Projekt Um die LIBFV-Bibliothek zu verwenden, installieren Sie das FONT-V-Projekt mit den obigen Anweisungen und importieren Sie die FontVersion mit Folgendem in Ihr Python-Skript:
from fontv . libfv import FontVersionFontVersion Erstellen Sie als nächstes eine Instanz der FontVersion mit einem der folgenden Ansätze:
# Instantiate with a file path to the .ttf or .otf font
fv = FontVersion ( "path/to/font" )oder
# Instantiate with a fontTools TTFont object
# See the fonttools documentation for details (https://github.com/fonttools/fonttools)
fv = FontVersion ( fontToolsTTFont ) Die LIBFV -Bibliothek automatisiert die Parsen der Versionszeichenfolge in eine Reihe von Attributen für öffentliche FontVersion und enthüllt öffentliche Methoden, mit denen Sie die Versionszeichenfolge untersuchen und ändern können. Geänderte Versionszeichenfolgen können dann in die Schriftart oder in eine neue Schriftart auf einem anderen Dateipfad zurückgeschrieben werden.
Beachten Sie, dass alle Änderungen an der Versionszeichenfolge im Speicher vorgenommen werden. Datei schreibt mit diesen geänderten Daten, wenn der aufrufende Code die Schreibmethode FontVersion.write_version_string() (Details sind unten verfügbar).
FontVersion tun können Sie können den vollständigen Namens -ID 5 -Versionszeichenfolge und die Kopf -Fontrevision -Versionsnummer im Speicher (einschließlich nach Änderungen, die Sie mit dem Aufrufcode vornehmen) untersuchen:
fv = FontVersion ( "path/to/font" )
vs = fv . get_name_id5_version_string () fv = FontVersion ( "path/to/font" )
vs = fv . get_head_fontrevision_version_number ()Alle Versionsänderungen mit den öffentlichen Methoden werden im Speicher vorgenommen. Wenn Sie bereit sind, sie in eine Schriftart zu schreiben, rufen Sie die folgende Methode an:
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() liefert einen optionalen Parameter fontpath= , mit dem ein anderer Dateipfad definiert werden kann als der, der verwendet wurde, um das FontVersion -Objekt zu instanziieren.
Vergleichen Sie die Namenstabelle ID 5 Aufzeichnung Gleichheit zwischen zwei Schriftarten:
fv1 = FontVersion ( "path/to/font1" )
fv2 = FontVersion ( "path/to/font2" )
print ( fv1 == fv2 )
print ( fv1 != fv2 ) Einige gemeinsame Modifikationsaufgaben der Schriftversions -String, die von der libfv -Bibliothek unterstützt werden, enthalten Folgendes:
Legen Sie die Versionsnummer in den Namen ID 5 und Head Fontrevision Records fest:
fv = FontVersion ( "path/to/font" )
fv . set_version_number ( "1.001" )Legen Sie die Vollversionszeichenfolge im Namen der Namens -ID 5 ein. Die Versionsnummer wird analysiert und verwendet, um den Kopf -Fontrevision -Datensatz zu definieren.
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 )Entfernen Sie alle Metadaten aus der Versionszeichenfolge:
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" Fügen Sie dem Namens -ID 5 -Datensatz einen Aufzeichnungen zur Entwicklung/Release -Status hinzu:
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 Quellcode -Status -Metadaten zum Namen ID 5 Daten hinzufügen:
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 Die vollständige Dokumentation der libfv -API ist unter http://font-v.readthedocs.io/ verfügbar
Quellenbeiträge zur LIBFV-Bibliothek und der ausführbaren Schriftart-V werden gefördert und begrüßt! Weitere Einzelheiten finden Sie in der Dokumentation für den Beitrag.
Erbaut mit den fantastischen Fonttools und den Gitpython Python -Bibliotheken.
MIT -Lizenz