Skip to main content

Google Fonts Tools is a set of command-line tools for testing font projects

Project description

Google Fonts Tools

This project contains tools used for working with the Google Fonts collection, plus Google Fonts Glyph Set Documentation in the /encodings subdirectory. While these tools are primarily intended for contributors to the Google Fonts project, anyone who works with fonts could find them useful.

The tools and files under this directory are available under the Apache License v2.0, for details see LICENSE

Google Fonts Official Glyph Sets (Encodings)

This repo also contains definitions of glyph sets useful for type designers:

https://github.com/googlefonts/glyphsets/tree/main/Lib/glyphsets/encodings/GF%20Glyph%20Sets

Tool Usage Examples

Compare fonts:

gftools compare-font font1.ttf font2.ttf

Add a METADATA.pb to a family directory

gftools add-font ../ofl/newfamily

Sanity check a family directory:

gftools sanity-check --repair_script=/tmp/fix.py ../ofl/josefinsans
gftools sanity-check --repair_script=/tmp/fix.py --fix_type=fsSelection ../ufl

Check a font family against the same family hosted on Google Fonts:

gftools qa [fonts.ttf] -gfb -a -o qa

Check a variable font family against the same family as static fonts:

gftools qa -f [vf_fonts] -fb [static_fonts] --diffenator --diffbrowsers -o ~/path/out

Add a DSIG table to a font

gftools fix-dsig font1.ttf

Fix a non hinted font

gftools fix-nonhinting font_in.ttf font_out.ttf

Package and PR a family update to google/fonts. Much more detailed documentation.

gftools packager "Family Sans" path/to/local/google/fonts -py

Tool Installation

Please note that gftools requires Python 3.7 or later.

Please install these tools using pip:

pip install gftools

(Mac OS users on M1 chips will need to upgrade pip first to support universal wheels: pip install -U pip.)

If you need to use gftools qa, you will need to install Harfbuzz, Cairo, FreeType and pkg-config. These can be installed on OS X using homebrew:

brew install cairo freetype harfbuzz pkg-config

Once you have installed these system packages, install gftools using the following command:

pip install 'gftools[qa]'

Tool Requirements and Dependencies

These tools depend on the submodule GlyphsInfo. Make sure the submodule is up to date by running:

git submodule update --init --recursive

gftool packager needs the command line git program in a version >= Git 2.5 (Q2 2015) in order to perform a shallow clone (--depth 1) of the font upstream repository and branch. This is not supported by pygit2/libgit2 yet.

Google Fonts API Key

In order to use the scripts gftools qa and gftools family-html-snippet, you will need to generate a Google Fonts api key, https://developers.google.com/fonts/. You will then need to create a new text file located on your system at ~/.gf-api-key (where ~ is your home directory), which contains the following:

[Credentials]
key = your-newly-generated-googlefonts-api-key

Upstream project repos

Project details


Release history Release notifications | RSS feed

This version

0.8.8

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gftools-0.8.8.tar.gz (5.8 MB view details)

Uploaded Source

Built Distribution

gftools-0.8.8-py3-none-any.whl (4.0 MB view details)

Uploaded Python 3

File details

Details for the file gftools-0.8.8.tar.gz.

File metadata

  • Download URL: gftools-0.8.8.tar.gz
  • Upload date:
  • Size: 5.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.10.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.2

File hashes

Hashes for gftools-0.8.8.tar.gz
Algorithm Hash digest
SHA256 36127888db9edba899d72833f001729f213dff7c3aead5da03cf16586eb37544
MD5 410b9fbfd1d2c2389de46256258e0ea8
BLAKE2b-256 fcec8524fd137a5ebaa7dad5b60518aeb72ac12939aaccc2e585f779ee04249b

See more details on using hashes here.

File details

Details for the file gftools-0.8.8-py3-none-any.whl.

File metadata

  • Download URL: gftools-0.8.8-py3-none-any.whl
  • Upload date:
  • Size: 4.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.10.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.2

File hashes

Hashes for gftools-0.8.8-py3-none-any.whl
Algorithm Hash digest
SHA256 198cb28a94ed22eb4e052d762df97b987528f142740dd9ddb5ea05c6f475b3c5
MD5 0d1abcd7426b3ecff57c1d2882d7e28d
BLAKE2b-256 6cebc2f2eb6abbc7347a1751f82de7d0e899fd35acc8b94f47ca944077234d5c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page