MCPcopy Index your code
hub / github.com/briangonzalez/fontprep

github.com/briangonzalez/fontprep @v3.1.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v3.1.1 ↗ · + Follow
401 symbols 854 edges 43 files 20 documented · 5%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

FontPrep

The missing font generator for Mac OSX. Download here.

About

FontPrep takes your TTF and OTF font files and generates all of the respective font-formats for the web: WOFF, EOT, and SVG.

How it works

FontPrep uses a slightly modified version of cocoa-rack (https://github.com/briangonzalez/cocoa-rack). In essence, when you start FontPrep, you're starting a little Sinatra app on port 7500 then instantiating a webview pointing at that server.

Commands are sent from the webview back down to the Sinatra server as you interact with FontPrep, and commands are piped to stdout (be it FontForge, ttf2eot, etc.) to complete the given task. We use a little Applescript magic when necessary.

The main Sinatra logic lives inside of fontprep/server. The sinatra server is daemonized, meanings its process will persist across closing/opening of FontPrep. To kill FontPrep's server outright, visit http://127.0.0.1:7500/kill in your browser.

Building FontPrep

Simply open up FontPrep.xcodeproj with the latest version of XCode, go to Product -> Clean then Product -> Run or Product -> Archive to create a binary.

Updating FontPrep

Be sure to increment the Version and Bundle inside XCode to update FontPrep correctly. Incrementing these values is what tells FontPrep to kill old daemonized server processes.

A word of caution

This code has not been incredibly well maintained over the years. Tread lightly and have fun breaking FontPrep.

Demo

Watch a demo here.

Author

twitter/brianmgonzalez
Brian Gonzalez

Core symbols most depended-on inside this repo

$
called by 74
fontprep/server/application/assets/javascripts/lib/webfont.js
css
called by 53
fontprep/server/application/lib/export.rb
jQuery
called by 50
fontprep/server/application/assets/javascripts/lib/jquery-1.9.1.js
data
called by 48
fontprep/server/application/lib/database.rb
tinycolor
called by 43
fontprep/server/application/assets/javascripts/lib/spectrum.js
A
called by 34
fontprep/server/application/assets/javascripts/lib/webfont.js
exists?
called by 24
fontprep/server/application/lib/installed_font.rb
F
called by 22
fontprep/server/application/assets/javascripts/lib/webfont.js

Shape

Function 232
Method 133
Class 36

Languages

TypeScript55%
Ruby41%
Python3%

Modules by API surface

fontprep/server/application/assets/javascripts/lib/jquery-1.9.1.js83 symbols
fontprep/server/application/lib/installed_font.rb69 symbols
fontprep/server/application/assets/javascripts/lib/spectrum.js59 symbols
fontprep/server/application/assets/javascripts/lib/webfont.js53 symbols
fontprep/server/application/lib/runner.rb18 symbols
fontprep/server/external/scripts/eotlitetool.py14 symbols
fontprep/server/application/lib/export.rb14 symbols
fontprep/server/application/assets/javascripts/lib/spinners.js13 symbols
fontprep/server/application/lib/database.rb11 symbols
fontprep/server/application/helpers/app_helpers.rb8 symbols
fontprep/server/application/assets/javascripts/lib/underscore.js8 symbols
fontprep/server/application/lib/sinatra/misc.rb7 symbols

For agents

$ claude mcp add fontprep \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page