FONT-V เป็นไลบรารีสตริงเวอร์ชันแบบฟอนต์โอเพนซอร์ส ( libfv ) และ Executable ( font-v ) สำหรับการอ่านการรายงานการแก้ไขและการเขียนชื่อ Opentype Table Table ID 5 บันทึกและบันทึก FONTREVISION TABLE ใน *.otf และ *.ttf FONTS
Font-V ถูกสร้างขึ้นด้วย Python และสามารถใช้กับแพลตฟอร์ม Linux, MacOS และ Windows ที่มีล่าม Python 2 และ Python 3 รุ่นปัจจุบัน
ไลบรารี libfv และการดำเนินการแบบ font-v ได้รับการติดตั้งพร้อมกันพร้อมคำแนะนำการติดตั้งต่อไปนี้
การติดตั้งด้วย PIP Package Manager เป็นวิธีที่แนะนำ
ติดตั้งด้วย 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 Records
ตัวเลือก :
--dev -รวมชื่อตารางทั้งหมด ID 5 X Records PlatformID ในรายงาน writeเขียนหมายเลขเวอร์ชันไปยังตาราง head fontrevision ระเบียนและสตริงเวอร์ชันเป็นชื่อตารางชื่อ ID 5 ระเบียน
ตัวเลือก :
ตัวเลือกต่อไปนี้ใช้กับ write เพื่อแก้ไขหมายเลขเวอร์ชันทั้งในระเบียน Fontrevision Head และ Name ID 5 Record (S):
--ver=[version #] -แก้ไขหมายเลขเวอร์ชันปัจจุบันด้วยหมายเลขเวอร์ชันใหม่โดยใช้ไวยากรณ์ 1.000 , 1_000 หรือ 1-000 บนบรรทัดคำสั่ง (สองรูปแบบหลังมีให้เพื่อรองรับคำจำกัดความในเชลล์ที่ระยะเวลาเป็นอักขระเชลล์พิเศษ) ตัวเลือกต่อไปนี้สามารถใช้กับ write เพื่อแก้ไขสตริงเวอร์ชันในชื่อ ID 5:
--dev -เพิ่มข้อมูลเมตาสถานะการพัฒนาไปยังสตริงเวอร์ชัน (พิเศษร่วมกันกับ --rel )--rel -เพิ่มข้อมูลเม --dev สถานะการเปิดตัวลงในสตริงเวอร์ชัน--sha1 -เพิ่ม git commit sha1 short hash state metadata ลงในสตริงเวอร์ชัน (ต้องใช้แหล่งที่มาภายใต้การควบคุมเวอร์ชัน GIT)reportป้อนต่อไปนี้เพื่อแสดงหมายเลข head fontrevision หมายเลขและชื่อ id id 5 ฟอนต์เวอร์ชันสำหรับตัวอักษรตัวอย่าง-regular.ttf:
$ font-v report Example-Regular.ttf
รวมค่าสถานะ --dev เพื่อรวมสตริงเวอร์ชัน (NameID 5) ที่มีอยู่ในบันทึก PlatformID ทั้งหมด:
$ font-v report --dev Example-Regular.ttf
write บันทึกชื่อ ID 5 บันทึกและบันทึก fontrevision head ได้รับการแก้ไขเมื่อ --ver= ใช้ในคำสั่งของคุณ
ป้อนหมายเลขเวอร์ชันที่ต้องการในรูปแบบ MAJOR.MINOR หลังจาก --ver= Flag การสนับสนุนมีให้สำหรับระยะเวลาที่กำหนดไว้ใน Glyph ที่จะถูกแทนที่ในคำสั่งด้วย Underscore _ หรือ 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 คุณสามารถประทับตราสตริงชื่อ ID 5 ชื่อด้วย sha1 hash digest สั้น ๆ (โดยทั่วไป n = 7-8 อักขระตัวเลขที่ถูกกำหนดเพื่อยืนยันว่ามันแสดงถึงค่าที่ไม่ซ้ำกันสำหรับการกระทำที่เก็บ) Git commit sha1 hash digest ถูกกำหนดโดยคำสั่ง git rev-list ที่หัวของสาขาที่เก็บที่ใช้งานของคุณและจะจับคู่อักขระ n เริ่มต้นของ Git commit sha1 hash digest ที่แสดงเมื่อคุณตรวจสอบ git log ของคุณ สิ่งนี้มีวัตถุประสงค์เพื่อรักษาข้อมูลเมตาในแบบอักษรไบนารีเกี่ยวกับสถานะซอร์สโค้ดในเวลาที่สร้าง
ใช้ตัวเลือก --sha1 กับคำสั่งย่อย write เช่นนี้:
$ font-v write --sha1 Example-Regular.ttf
SHA1 Hash Digest สั้น ๆ จะถูกเพิ่มด้วยการจัดรูปแบบสตริงเวอร์ชันต่อไปนี้:
Version 1.000;[cf8dc25]
สิ่งนี้สามารถรวมกับตัวเลือกอื่น ๆ (เช่นเพื่อแก้ไขหมายเลขเวอร์ชัน +/- เพิ่มการพัฒนาหรือข้อมูลเมตาสถานะการเปิดตัว) ในคำสั่งเดียวกัน ข้อมูลเมตาอื่น ๆ จะได้รับการดูแลและต่อท้ายกับสตริงเวอร์ชันที่แก้ไขในรูปแบบที่คั่นด้วยเครื่องหมายอัฒภาคด้วยการปรับเปลี่ยนนี้
ตัวเลือกนี้ไม่ได้ปรับเปลี่ยนการบันทึก HEAD FONTREVISION
write คุณสามารถแก้ไขสตริงชื่อ ID 5 ชื่อเพื่อระบุว่าบิลด์นั้นมีวัตถุประสงค์เพื่อสร้างการพัฒนาหรือสร้างการสร้างด้วย --dev หรือ --rel Flag เหล่านี้เป็นตัวเลือกพิเศษร่วมกัน รวมเพียงหนึ่งเดียวในคำสั่งของคุณ
ในการเพิ่มข้อมูลเมตาสถานะการพัฒนาให้ใช้คำสั่งเช่นนี้:
$ font-v write --dev Example-Regular.ttf
และสตริงเวอร์ชันได้รับการแก้ไขเป็นรูปแบบต่อไปนี้:
Version 1.000;DEV
ในการเพิ่มข้อมูลเมตาสถานะการเปิดตัวให้ใช้คำสั่งเช่นนี้:
$ font-v write --rel Example-Regular.ttf
และสตริงเวอร์ชันได้รับการแก้ไขด้วยรูปแบบต่อไปนี้:
Version 1.000;RELEASE
รวมการตั้งค่าสถานะ --sha1 ที่มี --dev หรือ --rel Flag ในคำสั่งเพื่อรวมทั้งสถานะและข้อมูลเมตาของสถานะไปยังสตริงเวอร์ชัน:
$ 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
ข้อมูลใด ๆ ที่ตามมาจากสตริงย่อยหมายเลขเวอร์ชันดั้งเดิมจะได้รับการดูแลและต่อท้ายหลังจากข้อมูลเมตาสถานะในรูปแบบที่คั่นด้วยเครื่องหมายอัฒภาค
ตัวเลือกเหล่านี้ไม่ได้ปรับเปลี่ยนการบันทึก HEAD FONTREVISION
ไลบรารี Libfv Python เปิดเผยวัตถุ FontVersion พร้อมกับชุดแอตทริบิวต์ที่เกี่ยวข้องและวิธีการสาธารณะสำหรับการอ่านการดัดแปลงและการเขียนหมายเลขเวอร์ชันบันทึก Fontrevision Opentype HEAD 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 จะทำการแยกวิเคราะห์สตริงเวอร์ชันเป็นชุดของแอตทริบิวต์คลาส FontVersion สาธารณะและเปิดเผยวิธีการสาธารณะที่คุณสามารถใช้เพื่อตรวจสอบและแก้ไขสตริงเวอร์ชัน สตริงเวอร์ชันที่แก้ไขแล้วสามารถเขียนกลับไปยังไฟล์ตัวอักษรหรือไปยังแบบอักษรใหม่ที่เส้นทางไฟล์อื่น
โปรดทราบว่าการปรับเปลี่ยนทั้งหมดในสตริงเวอร์ชันนั้นทำในหน่วยความจำ ไฟล์เขียนด้วยข้อมูลที่แก้ไขเหล่านี้เกิดขึ้นเมื่อรหัสการโทรเรียกใช้วิธีการเขียน FontVersion.write_version_string() (รายละเอียดมีอยู่ด้านล่าง)
FontVersion คุณสามารถตรวจสอบสตริงเวอร์ชัน ID ชื่อเต็มชื่อและหมายเลขเวอร์ชัน Fontrevision Head ในหน่วยความจำ (รวมถึงหลังจากการแก้ไขที่คุณทำด้วยรหัสการโทร) ด้วยสิ่งต่อไปนี้:
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 และ Head Fontrevision Records:
fv = FontVersion ( "path/to/font" )
fv . set_version_number ( "1.001" )ตั้งค่าสตริงเวอร์ชันเต็มในบันทึกชื่อ ID 5 หมายเลขเวอร์ชันจะถูกแยกวิเคราะห์และใช้เพื่อกำหนดระเบียน 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 )ลบข้อมูลเมตาทั้งหมดออกจากสตริงเวอร์ชัน:
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 Record:
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 Library และ Font-V ที่ได้รับการสนับสนุนและยินดีต้อนรับ! โปรดดูเอกสารประกอบที่มีส่วนร่วมสำหรับรายละเอียด
สร้างขึ้นด้วยห้องสมุด Fonttools และ Gitpython Python ที่ยอดเยี่ยม
ใบอนุญาต MIT