A book about how to design new typefaces with FontForge
HTML CSS Shell JavaScript
Latest commit 25d1551 Jun 15, 2017 @davelab6 davelab6 committed on GitHub Merge pull request #163 from fontforge/davelab6-kerning
Update Spacing_Metrics_and_Kerning.md
Permalink
Failed to load latest commit information.
_includes Update html-start.html Apr 26, 2017
_layouts Initial structure in place for French site Jan 29, 2017
assets Match Source Serif x-height with Heuristica Italic Feb 7, 2016
ebook French and Chinese ebooks update Jun 11, 2017
en-US Spacing_Metrics_and_Kerning.md Fix Typos Jun 15, 2017
fr-FR French and Chinese ebooks update Jun 11, 2017
zh-CN Chinese translation improved. May 15, 2017
zh-TW Pages now storing by weight again, Added Weight lists for reference Mar 31, 2015
.gitignore Resolving conflicts Apr 19, 2017
AUTHORS.txt Create AUTHORS.txt Dec 9, 2014
CNAME Create CNAME Dec 11, 2013
CONTRIBUTING.md Updated CONTRIBUTING.md Jun 24, 2015
CONTRIBUTORS.txt Update CONTRIBUTORS.txt Dec 9, 2014
Gruntfile.js Completed chapters 28 through to 31 and moved the French images to US… Feb 25, 2017
README.md Fixed typo in book creation command Apr 19, 2017
_config.yml Fixed non-typographic quotes getting converted by kramdown Apr 16, 2017
en-US-weightlist.md Enhanced ebook creation scripts + cleanup of files showing in the index Apr 19, 2017
fr-FR-weightlist.md Enhanced ebook creation scripts + cleanup of files showing in the index Apr 19, 2017
index.html Cleanups May 25, 2014
package.json Completed chapters 9 through to 18 Feb 11, 2017
params.json Create gh-pages branch via GitHub Jan 17, 2013
zh-CN-weightlist.md Enhanced ebook creation scripts + cleanup of files showing in the index Apr 19, 2017
zh-TW-weightlist.md Enhanced ebook creation scripts + cleanup of files showing in the index Apr 19, 2017

README.md

DesignWithFontforge.com

This is a book project, about how to design new typefaces with FontForge.

How To Contribute

If you wish to contribute to this website, you are very welcome to! Here are a few ways you can do so:

  1. Report an issue for someone else to resolve, by clicking the ‘Issues’ button at the top of this page, in the main navigation bar.

  2. Contribute a change directly, by forking it on GitHub and editing the plain text files, then send a pull request. (If that sounds unfamiliar, learn how with GitHub’s excellent interactive introduction).

  3. Discuss general topics on the fontforge-devel email discussion list

License

The book and this site is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.

How This Site Is Made

This site is made with the Jekyll content management system, and hosted on GitHub pages.

If you’re not familiar with GitHub, they have excellent help pages.

Directory Layout

  • _layouts/*.html: HTML template files
  • _includes/*.html: snippets of HTML that are included in pages and templates
  • assets/: CSS, JS and image files
  • _config.yml: Configuration for Jekyll (ignore this file)
  • en-US/: the site’s contents, in US English
  • en-US/images/precompressed/: Directory of the original, pre-compressed content images

File Formats

Each page is in Markdown format, with a .md file extension. These files are converted into corresponding .html files by Jekyll when they start with these lines:

  • published: if the page should not be published, set this to false
  • layout: bookpage is the default
  • weight: an integer value starts from 1 that effects the ordering of the page in the sidebar and homepage lists
  • category: the category the page belongs in
  • title: the page title used in the title tag and h1 of the page

Example:

    ---
    published: true
    layout: bookpage
    category: Workflow
    weight: 3
    title: Page Title
    ---

Weight list

Weight lists are used to help contributors determine and document the weight of all pages. Please follow the following rules:

  1. Please update the according list if any chapter/page is added or removed.
  2. If the new chapter is in between existing chapters, Just add a weight between existing weights.
  3. If the new chapter is after any exising chapters, Add the weight number by 3.
  4. If no more full numbers can be add between the exising weights, start using decimals.
  5. Only edit the weight list for your chapter's language.

Example:

Weight Page
0 Index
1 Introduction
3 What Is a Font

How to build the site

For Linux, ensure that ruby-dev is installed on your system: e.g. for Ubuntu 14.04:

sudo apt-get install ruby-dev

First install Jekyll, with gem:

sudo gem install jekyll

To see the site as it will appear after processing by Jekyll and review your edits live in a browser layout, run:

jekyll serve --watch

Now browse http://localhost:4000/.

How to compress images with Grunt

Put all the raw images inside en-US/images/precompressed/

Make sure npm is already installed in your computer, then install all the dependencies with:

npm install

Once the installations are done, you can go ahead to minify all the images with this Grunt command:

grunt

Wait for Grunt to notify you, and all the compressed images will be inside en-US/images/

How to create ebooks

sudo apt-get install calibre ghostscript
sudo npm install gitbook-cli svgexport -g
cd ebook
./create_books.sh en-US fr-FR zh-CN