Skip to content

Latest commit

 

History

History
156 lines (90 loc) · 6.13 KB

README.md

File metadata and controls

156 lines (90 loc) · 6.13 KB

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