Font-V는 오픈 소스 글꼴 버전 문자열 라이브러리 ( libfv ) 및 OpenType 이름 테이블 ID 5 레코드 및 헤드 테이블 *.ttf 레코드 *.otf 읽기,보고, 수정 및 쓰기위한 실행 파일 ( font-v )입니다.
Font-V는 Python으로 제작되었으며 현재 버전의 Python 2 및 Python 3 통역사가있는 Linux, MacOS 및 Windows 플랫폼에서 사용할 수 있습니다.
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 ...])
reportOpenType 이름 테이블 ID 5 및 헤드 테이블 Fontrevision Records 보고서
옵션 :
--dev 보고서에 모든 이름 테이블 ID 5 X PlatformID 레코드 포함 write헤드 테이블에 버전 번호를 작성하여 테이블 ID 5 레코드를 지명하려면 버전 문자열을 지정하십시오.
옵션 :
다음 옵션은 write 와 함께 사용하여 Head Fontrevision 레코드와 이름 ID 5 레코드에서 버전 번호를 수정합니다.
--ver=[version #] -명령 줄에서 1.000 , 1_000 또는 1-000 구문을 사용하여 새 버전 번호로 현재 버전 번호를 수정합니다 (후자의 두 형식은 기간이 특수한 쉘 문자 인 쉘의 정의를 지원하기 위해 제공됩니다) 다음 옵션은 write 와 함께 사용하여 이름 ID 5에서 버전 문자열을 수정할 수 있습니다.
--dev 버전 문자열에 개발 상태 메타 데이터 추가 ( --rel 과 상호 배타)--rel 버전 문자열에 릴리스 상태 메타 데이터 추가 ( --dev 와 상호 배타)--sha1 git 커밋 추가 SHA1 Short 해시 상태 메타 데이터 추가 버전 문자열 (GIT 버전 제어 하에서 소스가 필요함)report 와 함께 버전 문자열보고다음을 입력하여 헤드 Fontrevision 버전 번호와 이름 ID 5 글꼴 example-Regular.ttf의 글꼴 버전 문자열을 표시하십시오.
$ font-v report Example-Regular.ttf
모든 PlatformID 레코드에 포함 된 버전 문자열 (nameid 5)을 포함하도록 --dev 플래그를 포함시킵니다.
$ font-v report --dev Example-Regular.ttf
write 로 버전 번호 수정 이름 ID 5 레코드와 헤드 Fontrevision 레코드는 명령에 --ver= 사용될 때 수정됩니다.
원하는 버전 번호를 MAJOR.MINOR --ver= 으로 입력하십시오. 기간이 특수한 쉘 문자 인 플랫폼의 사용자를 위해 _ 또는 - 로 명령으로 Glyph를 대체 할 의도 된 기간에 대한 지원이 제공됩니다.
버전 번호를 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 버전 컨트롤에있는 경우 활성 GIT 브랜치의 헤드에서 GIT 커밋을 나타내는 짧은 SHA1 해시 다이제스트 (일반적으로 n = 7-8 자, 리포지토리 커밋의 고유 값을 나타내는 것을 확인하기 위해 결정된 숫자)로 이름 ID 5 버전 문자열을 찍을 수 있습니다. Git Commit SHA1 HASH DIGEST는 활성 리포지토리 브랜치 헤드의 git rev-list 명령에 의해 정의되며 git log 검토 할 때 표시되는 GIT Commit SHA1 HASH DIGEST의 초기 N 문자와 일치합니다 (또는 GitHub와 같은 GIT 리포지토리 호스팅 플랫폼의 UI에서 커밋 해시를 검토하십시오). 이것은 빌드 시점에서 소스 코드 상태에 대한 글꼴 바이너리에서 메타 데이터를 유지하기위한 것입니다.
다음과 같은 write 부드러운 명령과 함께 --sha1 옵션을 사용하십시오.
$ font-v write --sha1 Example-Regular.ttf
짧은 SHA1 해시 다이제스트는 다음 버전 문자열 형식으로 추가됩니다.
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
원래 버전 번호 하위 문자열을 따르는 모든 데이터는 Semicolon Delimited 형식으로 상태 메타 데이터 후에 유지 관리 및 추가됩니다.
이 옵션은 헤드 Fontrevision 레코드를 수정하지 않습니다.
LIBFV Python 라이브러리는 FontVersion 객체와 관련된 속성 세트 및 OpenType Head Fontrevision 레코드 버전 번호 및 이름 ID 5 레코드 문자열의 읽기, 수정 및 쓰기에 대한 관련 속성 세트 및 공개 메소드를 노출시킵니다. 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 클래스 속성 세트로 자동화하고 버전 문자열을 검사하고 수정하는 데 사용할 수있는 공개 메소드를 노출시킵니다. 그런 다음 수정 된 버전 문자열을 글꼴 파일 또는 다른 파일 경로의 새 글꼴로 다시 작성할 수 있습니다.
버전 문자열에 대한 모든 수정은 메모리에서 이루어집니다. 파일은 호출 코드가 Write Method FontVersion.write_version_string() 명시 적으로 호출 할 때 발생하는 수정 된 데이터로 작성됩니다 (자세한 내용은 아래에서 사용할 수 있음).
FontVersion 객체로 할 수있는 일 전체 이름 ID 5 버전 문자열과 메모리의 헤드 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= 제공합니다. 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 레코드에서 버전 번호를 설정하십시오.
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 실행 파일에 대한 소스 기여가 권장되고 환영받습니다! 자세한 내용은 Contributing.md 문서를 참조하십시오.
환상적인 fonttools와 Gitpython Python 라이브러리로 제작되었습니다.
MIT 라이센스