$ show yuru7/udev-gothic
This repository implements a font synthesis pipeline that merges BIZ UD Gothic (Japanese) with JetBrains Mono (Latin) to produce the UDEV Gothic family of programming fonts. The build process ingests source .ttf and .sfd files, uses FontForge for glyph preprocessing (size adjustment, duplicate handling, Nerd Font integration) and fonttools for hinting, merging, and table patching (OS/2, post, cmap with IVS). It generates 16+ variants with configurable width ratios, ligatures, and symbol sets via a config-driven, parallel build system (PowerShell on Windows, shell scripts on Linux). While primarily a font engineering pipeline, its well-structured Python scripts and configuration approach offer reusable patterns for similar font merging projects. The source fonts and dependencies are included, but cross-platform reproducibility is limited by hardcoded paths and lack of containerization.
The LLM identified 4 files worth highlighting for reuse:
Core FontForge Python script for preprocessing source fonts: adjusts glyph metrics, handles duplicate glyph names (by appending encoding suffixes), merges Nerd Font glyphs, and applies width scaling. It is parameterized via build.ini and can be extracted to a reusable font preprocessing utility for any FontForge-based font synthesis project.
Handles ttfautohint for glyph hinting, merges English/Japanese font halves using fontTools.merge, and patches OS/2, post, and cmap tables (including IVS). Implements robust duplicate glyph ID resolution and conditional GSUB/GPOS lookup removal for ligature variants. A strong example of programmatic font manipulation with fonttools.
PowerShell orchestration script that builds all 16 UDEV Gothic variants concurrently using Foreach-Object -Parallel. Defines variant matrix by combining width, ligature, hidden space, and Nerd Font flags. Adapted from old_script/make.sh, this demonstrates a clean, reusable pattern for parallelizing multi-variant font generation across Windows environments.
Central configuration file for version, font names, em metrics, width constants, and variant suffix strings. Used by both Python scripts and the PowerShell build script. Its key-value structure is easily adaptable to other font projects, enabling quick retargeting of the entire pipeline without code changes.