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:
-
Report an issue for someone else to resolve, by clicking the ‘Issues’ button at the top of this page, in the main navigation bar.
-
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).
-
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 templatesassets/
: CSS, JS and image files_config.yml
: Configuration for Jekyll (ignore this file)en-US/
: the site’s contents, in US Englishen-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:
- Please update the according list if any chapter/page is added or removed.
- If the new chapter is in between existing chapters, Just add a weight between existing weights.
- If the new chapter is after any exising chapters, Add the weight number by 3.
- If no more full numbers can be add between the exising weights, start using decimals.
- 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
cd ebook
npm install
./create_books.sh