FONT-V是一個開源字體版本字符串庫( libfv )和可執行文件( font-v ),用於讀取,報告,修改和編寫OPENTYPE名稱表ID 5記錄5記錄和Head Table Fontrevision Records在*.otf和*.ttf FONTS中。
Font-V是使用Python構建的,可在Linux,MacOS和Windows平台上使用,並帶有Python 2和Python 3解釋器的當前版本。
libfv庫和font-v可執行文件同時安裝以下安裝說明。
使用PIP軟件包管理器安裝是建議的方法。
使用以下命令與PIP安裝:
$ pip install font-v
升級到具有以下命令的新版本的Font-V:
$ pip install --upgrade font-v
FONT-V使用一組子命令和選項執行,以定義您的命令行請求。
$ font-v [subcommand] (options) [font path 1] ([font path ...])
report報告Opentype名稱表ID 5和Head Table Fontrevision記錄
選項:
--dev在報告中包括所有名稱表ID 5 x PlatformID記錄write將版本編號寫入頭表fontrevision記錄和版本字符串到名稱表ID 5記錄。
選項:
以下選項用於write以修改Head Fontrevision記錄和名稱ID 5記錄中的版本號:
--ver=[version #] - 使用1.000或1-000語法在命令行上修改當前版本編號(後兩種格式提供了以支持週期為特殊外殼字符1_000外殼中的支持定義)以下選項可以與write一起使用以修改名稱ID 5中的版本字符串:
--dev -DEV-將開發狀態元數據添加到版本字符串(與--rel rel相互排斥)中--rel REL-將發布狀態元數據添加到版本字符串(與--dev相互排斥)--sha1將Git Commit Sha1添加SHA1短哈希狀態元數據到版本字符串(需要GIT版本控制下的源)report版本字符串報告輸入以下顯示以顯示字體示例example-regular.ttf:
$ font-v report Example-Regular.ttf
包括--dev標誌以包含所有PlatformID記錄中包含的版本字符串(名稱5):
$ font-v report --dev Example-Regular.ttf
write修改版本號當您的命令中使用--ver=時,將修改名稱ID 5記錄和Head Fontrevision記錄。
在--ver= flag之後以MAJOR.MINOR格式輸入所需的版本號。為要在命令中替換的預期時期字形提供了支持,該命令_或dash在命令中-對於該期間是特殊外殼字符的平台上的用戶。
所有以下所有結果都將版本編號修改為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
該請求可以與其他選項合併,以同時包括狀態和狀態元數據。
write簡短的哈希州元數據如果您的字體源處於GIT版本控件之下,則可以用短SHA1 HASH DIGEST(通常n = 7-8個字符)將名稱ID 5版本字符串(通常為n = 7-8個字符)蓋章,該數字是為了確認它代表代表git distion的唯一值代表了Active Git Branch的負責人的唯一值。 Git Commit Sha1 Hash Digest由您的Active存儲庫分支頭部的git rev-list命令定義,並將匹配Git Commit Sha1 Hash Digest的初始n個字符,該字符在您查看git log (或查看Git Reposority Hashes of Git Reposority Hashes of Git Reposority Hoshes of Git Reposority Hoshes of Git Reposority Host tossotting Host tossing Platferts ins of GiThubs等)時會顯示。這旨在在構建時間內有關源代碼狀態的字體二進制中維護元數據。
--sha1選項與這樣的write命令一起使用:
$ font-v write --sha1 Example-Regular.ttf
添加了以下版本字符串格式:Sha1 Hash Digest:
Version 1.000;[cf8dc25]
可以將此與其他選項(例如修改版本號+/-添加開發或發布狀態元數據)結合使用。其他元數據以這種修改為半脫符格式,維護並將其附加到修訂版的字符串上。
此選項不會修改Head Fontrevision記錄。
write添加開發 /發布狀態元數據您可以修改名稱ID 5版本字符串,以表明構建目的是使用--dev或--rel標誌作為開發構建或發布構建。這些是相互排斥的選擇。在您的命令中僅包含一個。
要添加開發狀態元數據,請使用這樣的命令:
$ font-v write --dev Example-Regular.ttf
並且版本字符串已修改為以下格式:
Version 1.000;DEV
要添加發布狀態元數據,請使用這樣的命令:
$ font-v write --rel Example-Regular.ttf
並且版本字符串通過以下格式修改:
Version 1.000;RELEASE
在命令中包含帶有--dev或--rel標誌的--sha1標誌,以將狀態和狀態元數據包括在版本字符串中:
$ 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
或者
$ 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
在狀態元數據之後,以半元素劃界格式維護和附加了遵循原始版本號substring的任何數據。
這些選項不會修改head fontrevision記錄。
libfv Python庫將FontVersion對像以及一組相關的屬性和公共方法集,用於讀取,修改和opentype Head Fontrevision記錄版本編號以及名稱ID 5記錄(S)版本字符串。 font-v可執行文件是基於本庫中可用的公共方法構建的。
LIBFV API的完整文檔可在http://font-v.readthedocs.io/上獲得
libfv庫導入您的項目要使用LIBFV庫,請使用上面的說明安裝FONT-V項目,並將FontVersion類導入您的Python腳本,並使用以下內容:
from fontv . libfv import FontVersionFontVersion類的實例接下來,使用以下方法之一創建一個FontVersion的實例:
# Instantiate with a file path to the .ttf or .otf font
fv = FontVersion ( "path/to/font" )或者
# Instantiate with a fontTools TTFont object
# See the fonttools documentation for details (https://github.com/fonttools/fonttools)
fv = FontVersion ( fontToolsTTFont ) LIBFV庫將自動解析版本字符串到一組public FontVersion類屬性,並揭示可用於檢查和修改版本字符串的公共方法。然後,可以將修改版本的字符串寫回字體文件或在其他文件路徑上的新字體。
請注意,對版本字符串的所有修改都是在內存中進行的。當調用代碼明確調用寫入方法FontVersion.write_version_string() (詳細信息如下)時,文件使用這些修改後的數據寫入。
FontVersion對像做什麼您可以在內存中檢查全名ID 5版本字符串和Head Fontrevision版本編號(包括您使用調用代碼進行的修改之後):
fv = FontVersion ( "path/to/font" )
vs = fv . get_name_id5_version_string () fv = FontVersion ( "path/to/font" )
vs = fv . get_head_fontrevision_version_number ()使用公共方法進行的所有版本修改都是在內存中進行的。當您準備將它們寫入字體文件時,請調用以下方法:
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()提供了可選的參數fontpath=該參數可用於定義與用於實例化FontVersion對象的文件路徑不同的文件路徑。
比較名稱表ID 5記錄兩個字體之間的平等:
fv1 = FontVersion ( "path/to/font1" )
fv2 = FontVersion ( "path/to/font2" )
print ( fv1 == fv2 )
print ( fv1 != fv2 )libfv庫支持的一些常見字體版本修改任務包括以下內容:
在名稱ID 5中設置版本號,並在Fontrevision記錄中設置版本號:
fv = FontVersion ( "path/to/font" )
fv . set_version_number ( "1.001" )在名稱ID 5記錄中設置完整版字符串。版本號被解析並用於定義頭部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 )從版本字符串中刪除所有元數據:
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" 將開發/發布狀態子字符串添加到名稱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 將源代碼狀態元數據添加到名稱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 libfv API的完整文檔可在http://font-v.readthedocs.io/上獲得
鼓勵和歡迎對LIBFV庫和FONT-V可執行文件的源貢獻!有關詳細信息,請參見貢獻。 md文檔。
由奇妙的Fonttools和Gitpython Python圖書館建造。
麻省理工學院許可證