Font-V adalah Library String Versi Font Open Source ( libfv ) dan Executable ( font-v ) untuk membaca, melaporkan, memodifikasi, dan menulis nama OpenType Table ID 5 Records dan Head Table Fontrevision Records di *.otf dan *.ttf font.
Font-V dibangun dengan Python dan dapat digunakan pada platform Linux, MacOS, dan Windows dengan versi saat ini dari penerjemah Python 2 dan Python 3.
Perpustakaan libfv dan font-v Executable diinstal secara bersamaan dengan instruksi instalasi berikut.
Instalasi dengan PIP Package Manager adalah pendekatan yang disarankan.
Instal dengan PIP menggunakan perintah berikut:
$ pip install font-v
Tingkatkan ke versi baru Font-V dengan perintah berikut:
$ pip install --upgrade font-v
Font-V dieksekusi dengan satu set sub-perintah dan opsi yang menentukan permintaan baris perintah Anda.
$ font-v [subcommand] (options) [font path 1] ([font path ...])
reportLaporkan Nama OpenType ID Tabel 5 dan Tabel Kepala Catatan Fontrevision
Opsi :
--dev -Sertakan semua nama Tabel ID 5 X PlatformID Records dalam Laporan writeTulis Nomor Versi ke Head Table Fontrevision Records Dan Versi String Untuk Nama Tabel ID 5 Records.
Opsi :
Opsi berikut digunakan dengan write untuk memodifikasi nomor versi di kedua catatan head fontrevision dan catatan id 5 catatan:
--ver=[version #] -Ubah nomor versi saat ini dengan nomor versi baru menggunakan sintaks 1.000 , 1_000 atau 1-000 pada baris perintah (dua format terakhir disediakan untuk mendukung definisi dalam shell di mana periode adalah karakter shell khusus) Opsi berikut dapat digunakan dengan write untuk memodifikasi string versi di ID Nama 5:
--dev -Tambahkan metadata status pengembangan ke string versi (saling eksklusif dengan --rel )--rel -Tambahkan metadata status rilis ke string versi (saling eksklusif dengan --dev )--sha1 -Tambahkan GIT Commit SHA1 Metadata Hash State Pendek ke String Versi (Membutuhkan Sumber Di Bawah Kontrol Versi Git)reportMasukkan yang berikut untuk menampilkan nomor versi head fontrevision dan name ID 5 Font Version String untuk font example-regular.ttf:
$ font-v report Example-Regular.ttf
Sertakan -bendera --dev untuk menyertakan string versi (nameId 5) yang terkandung dalam semua catatan platformID:
$ font-v report --dev Example-Regular.ttf
write Catatan nama ID 5 dan catatan head fontrevision dimodifikasi ketika --ver= digunakan dalam perintah Anda.
Masukkan nomor versi yang diinginkan dalam format MAJOR.MINOR setelah flag --ver= . Dukungan disediakan untuk periode yang dimaksudkan untuk diganti dalam perintah dengan garis bawah _ atau dasbor - untuk pengguna di platform di mana periode tersebut adalah karakter shell khusus.
Semua hasil berikut dalam modifikasi nomor versi menjadi 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
Permintaan ini dapat dikombinasikan dengan opsi lain untuk memasukkan metadata status dan status secara bersamaan.
write Jika sumber jenis huruf Anda berada di bawah kontrol versi Git, Anda dapat mencap nama ID 5 Version String dengan Digest Hash Sha1 pendek (umumnya n = 7-8 karakter, angka yang ditentukan untuk mengkonfirmasi bahwa itu mewakili nilai unik untuk komit repositori) yang mewakili komit git di kepala cabang GIT yang aktif. Git Commit SHA1 Hash Digest didefinisikan oleh perintah git rev-list di kepala cabang repositori aktif Anda dan akan cocok dengan karakter awal n dari git commit commit sha1 hash digest yang ditampilkan ketika Anda meninjau git log Anda (atau meninjau hash komit di UI dari platform hosting git git seperti github). Ini dimaksudkan untuk mempertahankan metadata dalam biner font tentang status kode sumber pada waktu pembangunan.
Gunakan opsi --sha1 dengan sub -perintah write seperti ini:
$ font-v write --sha1 Example-Regular.ttf
Digest hash sha1 pendek ditambahkan dengan format string versi berikut:
Version 1.000;[cf8dc25]
Ini dapat dikombinasikan dengan opsi lain (misalnya untuk memodifikasi nomor versi +/- Tambahkan pengembangan atau status rilis metadata) dalam perintah yang sama. Metadata lain dipertahankan dan ditambahkan ke string versi yang direvisi dalam format yang dibatasi titik koma dengan modifikasi ini.
Opsi ini tidak memodifikasi catatan head fontrevision.
write Anda dapat memodifikasi nama string Versi ID 5 untuk menunjukkan bahwa build dimaksudkan sebagai pembangunan pengembangan atau rilis build dengan -flag --dev atau --rel . Ini adalah opsi yang saling eksklusif. Sertakan hanya satu dalam perintah Anda.
Untuk menambahkan metadata status pengembangan, gunakan perintah seperti ini:
$ font-v write --dev Example-Regular.ttf
dan string versi dimodifikasi ke format berikut:
Version 1.000;DEV
Untuk menambahkan metadata status rilis, gunakan perintah seperti ini:
$ font-v write --rel Example-Regular.ttf
dan string versi dimodifikasi dengan format berikut:
Version 1.000;RELEASE
Sertakan bendera --sha1 dengan bendera --dev atau --rel dalam perintah untuk memasukkan status dan metadata status ke string versi:
$ 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
atau
$ 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
Data apa pun yang mengikuti substring nomor versi asli dipertahankan dan ditambahkan setelah metadata status dalam format yang dibatasi titik koma.
Opsi -opsi ini tidak memodifikasi catatan head fontrevision.
Perpustakaan Libfv Python memperlihatkan objek FontVersion bersama dengan set atribut yang terkait dan metode publik untuk baca, modifikasi, dan menulis nomor versi rekaman head fontrevision OpenType dan string versi Name ID 5. font-v Executable dibangun di atas metode publik yang tersedia di perpustakaan ini.
Dokumentasi Lengkap API LIBFV tersedia di http://font-v.readthedocs.io/
libfv ke dalam proyek Anda Untuk menggunakan pustaka libfv, instal proyek Font-V dengan instruksi di atas dan impor kelas FontVersion ke skrip python Anda dengan yang berikut:
from fontv . libfv import FontVersionFontVersion Selanjutnya, buat instance dari kelas FontVersion dengan salah satu pendekatan berikut:
# Instantiate with a file path to the .ttf or .otf font
fv = FontVersion ( "path/to/font" )atau
# Instantiate with a fontTools TTFont object
# See the fonttools documentation for details (https://github.com/fonttools/fonttools)
fv = FontVersion ( fontToolsTTFont ) Pustaka LIBFV akan mengotomatiskan penguraian string versi ke satu set atribut kelas FontVersion publik dan mengekspos metode publik yang dapat Anda gunakan untuk memeriksa dan memodifikasi string versi. String versi yang dimodifikasi kemudian dapat ditulis kembali ke file font atau ke font baru di jalur file yang berbeda.
Perhatikan bahwa semua modifikasi pada string versi dibuat dalam memori. File menulis dengan data yang dimodifikasi ini terjadi ketika kode panggilan secara eksplisit memanggil metode tulis FontVersion.write_version_string() (detail tersedia di bawah).
FontVersion Anda dapat memeriksa string Versi ID 5 Versi Lengkap dan Nomor Versi Kepala Fontrevision dalam memori (termasuk setelah modifikasi yang Anda buat dengan kode panggilan) dengan yang berikut:
fv = FontVersion ( "path/to/font" )
vs = fv . get_name_id5_version_string () fv = FontVersion ( "path/to/font" )
vs = fv . get_head_fontrevision_version_number ()Semua modifikasi versi dengan metode publik dibuat dalam memori. Ketika Anda siap untuk menuliskannya ke file font, hubungi metode berikut:
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() memberikan parameter opsional fontpath= yang dapat digunakan untuk mendefinisikan jalur file yang berbeda dari yang digunakan untuk instantiate objek FontVersion .
Bandingkan nama Tabel ID 5 Rekam Kesetaraan antara dua font:
fv1 = FontVersion ( "path/to/font1" )
fv2 = FontVersion ( "path/to/font2" )
print ( fv1 == fv2 )
print ( fv1 != fv2 ) Beberapa tugas modifikasi string versi font umum yang didukung oleh pustaka libfv termasuk yang berikut:
Atur nomor versi di Name ID 5 dan Head Fontrevision Records:
fv = FontVersion ( "path/to/font" )
fv . set_version_number ( "1.001" )Atur string versi lengkap di catatan nama ID 5. Nomor versi diuraikan dan digunakan untuk menentukan catatan head fontrevision.
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 )Hapus semua metadata dari string versi:
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" Tambahkan Substring Status Pengembangan/Pelepasan ke Rekaman Nama 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 Tambahkan Kode Sumber Metadata Negara ke Rekaman ID Nama 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 Dokumentasi Lengkap API libfv tersedia di http://font-v.readthedocs.io/
Kontribusi Sumber ke Perpustakaan Libfv dan Font-V Executable didorong dan disambut! Silakan lihat dokumentasi Contributing.MD untuk detailnya.
Dibangun dengan fonttools yang fantastis dan perpustakaan Gitpython Python.
Lisensi MIT