Skip to content

Generate rich Unicode open fonts with custom annotations, transliterations, pronunciations.

Notifications You must be signed in to change notification settings

catusf/ruby-font-creator

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ruby Font Creator

Font creator to help students learn and read foreign languages faster by appending pronunciation or meaning to each glyph.

Font Samplers

This archive contains additional font files used in the samplers: PinyinFonts.zip

The base fonts they are created from are shown in font_summary.md.

Pinyin-Tigris-Bottom-Handwritten

Pinyin-Tigris-Bottom-Handwritten

Pinyin-Tigris-Left-Handwritten

Pinyin-Tigris-Left-Handwritten

Pinyin-Tigris-Top-Handwritten

Pinyin-Tigris-Top-Handwritten

Pinyin-Leo-Bottom-Serif

Pinyin-Leo-Bottom-Serif

Pinyin-Leo-Left-Serif

Pinyin-Leo-Left-Serif

Pinyin-Leo-Top-Serif

Pinyin-Leo-Top-Serif

Pinyin-Onca-Bottom-Serif

Pinyin-Onca-Bottom-Serif

Pinyin-Onca-Left-Serif

Pinyin-Onca-Left-Serif

Pinyin-Onca-Top-Serif

Pinyin-Onca-Top-Serif

Pinyin-Catus-Bottom-Sans

Pinyin-Catus-Bottom-Sans

Pinyin-Catus-Left-Sans

Pinyin-Catus-Left-Sans

Pinyin-Catus-Top-Sans

Pinyin-Catus-Top-Sans

Known issues

  • The code runs tvery slowly. In Windows or GitHub Codespaces or Google Colab, cannot finish. Only ways to build full fonts is using GitHub Action.

  • On Windows, best to use VS Code WLS Extension, and connect to Window Subsysem Linux to develop. Otherwise, Node and Python code is hard to run together.

Features

languages preview state repository base-font
Chinese top ✔️ hanzi-pinyin-font DroidSansFallbackFull
Tifinagh - 🏃‍ hanzi-pinyin-font DroidSansFallbackFull
🗣️ request new one - - - Please provide an open-source font

Legend: 🏃‍✔️

Install

Requirements: nodejs, yarn or npm.

yarn install

Usage

Requirements: a JSON file describing codepoint-glyph-gloss tuple (e.g. src/data.json).

yarn build

Custom config:

yarn build --config ./src/config/default.js

Custom data:

yarn build --data ./path-to/data.json

Custom Font Name:

yarn build --font-name 'custom-font-name'

ℹ️ maintenance tasks available are in the [makefile][./makefile], run make to see possible actions.

Data Structure

A list of objects, each describing a glyph, with the following 3 elements:

  1. a unicode codepoint ;
  2. a base glyph ;
  3. a ruby text.

Example:

[
  {
    "codepoint": "U+03B1",
    "glyph": "α",
    "ruby": "alpha"
  }
]

Font

This project use fonts under open-source licenses : DejaVuSans, DroidSansFallbackFull, Noto Sans CJK.

License

Apache License 2.0

Contributors

About

Generate rich Unicode open fonts with custom annotations, transliterations, pronunciations.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 64.0%
  • JavaScript 29.5%
  • Shell 5.4%
  • Other 1.1%