{% extends "base.html" %} {% block meta_title %}Glyphviewer Documentation{% endblock %} {% block main %}

Documentation

What is Glyphviewer?

Glyphviewer is a web application that analyses web font files.

For those unsure about the meaning of "glyph", "font", and "web font", a small glossary is provided at the end.

Glyphviewer Usage

Glyphviewer analyses font files, not fonts per se. (A font may consist of multiple files.) Permissible formats are TrueType (.ttf), OpenType (.otf), and best of all, Web Open Font Format (.woff). WOFF is preferred, because font data is compressed by design, resulting in quicker download.

Other controls present are:

To finish, users hit the Submit button.

On Success

If Glyphviewer succeeds, it will generate a page with the following sections.

On Failure

Glyphviewer will display an error message when it fails. There are several reasons for failure.

Limitations

These are several limitations built in to Glyphviewer.

Installation and Dependencies

Glyphviewer depends on the following software:

Once these libraries have been installed, the next stage is to install Glyphviewer via the following command:

pip install glyphviewer

The next stage is to add "glyphviewer" to your INSTALLED_APPS list in settings.py, and add the desired URL in one of the urls.py files.

The final stage is to populate the directory with fonts where you display your chosen font or fonts. Choose one directory from STATICFILES_DIRS, and add the subdirectory 'glyphviewer/fonts/'. The Glyphviewer application comes with its own set of fonts adapted from the Free UCS Outline Fonts; they have been converted to WOFF form for quicker download. These can be moved into the correct directory via the following shell command:

python manage.py collectstatic

The HTML template files in this application have been redesigned to work with the Mezzanine CMS. The redesign removed any explicit references to particular stylesheets found with earlier versions. The app (and the fonts) are released under a GNU general public license.

Why Glyphviewer?

I created Glyphviewer as a tool to examine the character repetoire of web fonts. It is easy to find fonts online; it is harder to find out exactly what characters they support. Almost all contain standard capital letters like "A", "B" and "C", and that's not hard to discover, because those are among the first characters to be advertised by the foundries. It's harder to find out how much support a font has for more unusual characters like (say) "ŋ". One could install a fonts on the computer, and inspect it in a tool like "Character Map", but this is laborous and time-wasting.

So I created a tool that could analyse a font if it was located somewhere on the World Wide Web. Font makers often display their fonts using web pages, and even provide a place where people can type text and see it displayed using the typeface. All one has to do to analyse it is examine the attached cascading stylesheet for a link to the font file, and place its URL in Glyphviewer.

This application was designed in response to and in reaction to Google Web Fonts, which came out in 2011. The idea is wonderful: tens of web fonts available for access and download. A laudatory effort - except that it doesn't accurately show the full repertoire of characters for each font. Take Lato - a lovely font, and comes in 10 variants too. Now look at the character set Google Web Fonts displays for it. Does it show the "Ł" and "ł" it supports? This omission is inexcusable two years later, given that the creator goes by the name of Łukasz Dziedzic. Google – lift your game.

Acknowledgements

The primary inspiration for this is Mark Pilgrim, who wrote a blog post called "Fuck the foundries" in 2009 (before yanking it off the net two years later). His essay and/or rant got me interested in web fonts in the first place, as did his use of the utterly superb web font Essays 1743 in Dive into HTML5. Thanks to John Stracke for coming up with the "Essays" typeface in the first place.

I also have to acknowledge the developers of the libraries used in the making of Glyphviewer. A special shout out goes to the folk at TypeSupply who decided to open-source their code. It wouldn't have been possible without them. I must also acknowledge the Free UCS Outline Fonts project for providing the fonts used in this application.

Glossay

Font
A file, or a set of files, that is used to specify the appearance of computer text. Common Windows fonts are "Times New Roman", "Arial" and "Courier New"; Mac OS X and Linux have their own equivalents. The "Times New Roman" font consists of 4 files: one for representing regular text, one for Bold text, one for Italic text and one for Bold Italic text.
Web font
A font that is designed to be downloaded with a web page only for the purpose of viewing it, and then discarded afterwards. Historically, most web designers assumed that users had a limited repertoire of fonts already installed on their machine, and would style accordingly. For example, it would be a safe bet to have either Helvetica or Arial on the viewer's computer, and if not, there would be some sort of sans-serif equivalent available instead. One problem with this is that it gets boring to see the same fonts all the time. So the W3C had a sit down with industry folk from Microsoft and Adobe and Mozilla and other companies, and worked out their own technology for embedding fonts on the fly.
Glyph
Glyphs are the shapes used to represent characters in a font. For example, the character "I" is (more or less) shaped a horizontal line - in contrast to an "o" character, which resembles (roughly) a hollow circle. Terms like "more or less" and "roughly" are used here, because the same character would be generally represented by different glyphs in different fonts, and even within them. Continuing the example above, an "I" in a italic version of a font would be inclined relative to a regular version of "I", while an "I" in a serif font would have serifs coming out at the front and the bottom. In short, there are many ways to create a glyph for the same characters.
{% endblock %}