mapleglyph

Documentation

Mapleglyph is one binary with four commands. Point any of them at a font file.

Install

cargo install mapleglyph          # Rust 1.74+
brew install mapleglyph/tap/mapleglyph
# or grab a binary from the releases page and put it on your PATH

Supported containers: .ttf, .otf, .ttc (pass --index N to pick a face) and .woff2. Parsing is done with ttf-parser; nothing is sent anywhere.

coverage

Summarise the font's codepoints by Unicode block.

mapleglyph coverage FONT [--all] [--json] [--block NAME]
FlagEffect
--allList every block, including 0% ones
--jsonEmit machine-readable output for scripts and CI
--blockRestrict to a single block, e.g. --block "Box Drawing"

show

Draw a codepoint range as a grid, using your terminal font for the preview.

mapleglyph show FONT U+2500..U+257F
mapleglyph show FONT --block "Arrows"

Covered codepoints are shown solid; the ones the font lacks are dimmed, so a gap is obvious at a glance.

diff

Compare two fonts and report the codepoints that differ.

mapleglyph diff Old.ttf New.ttf
  + U+20BF  BITCOIN SIGN            only in New.ttf
  + U+1FAE0 MELTING FACE           only in New.ttf
  - U+2639  FROWNING FACE          only in Old.ttf

Exit code is non-zero when the two sets differ, which makes it drop-in for a regression check on a font build.

missing

Given a sample of text, list everything the font can't draw.

mapleglyph missing --text copy/strings.txt Brand-Bold.otf
  line 12   U+2011  NON-BREAKING HYPHEN
  line 48   U+2009  THIN SPACE

Useful before you commit to a display face for a UI: run it over your real strings, not a pangram.

Exit codes

CodeMeaning
0Ran cleanly; for diff/missing, nothing to report
1Differences found (diff) or missing glyphs (missing)
2Could not read or parse the font file