Git Product home page Git Product logo

liga-diga's Introduction

Liga Diga

Liga Diga in action

Liga Diga is a font that uses ligatures to automagically translate the top 300 most common English words into Spanish. Your days of using Google Translate are over!

Download it here: Downloads

How the build process works

npm start will run the build process. It works in 3 phases:

  1. Copies the source code for a simple base font from src/Liga-Diga.ufo.base into a temp folder, tmp/Liga-Diga.ufo
  2. Adds and modifies files in the tmp folder to add the ligatures and their metadata. Those files are based on templates that live in src/templates
  3. Uses Google Fontmake (which is a dependency of this project) to compile the source files into .ttf/.otf font files.

...all of this logic can be found in src/index.js

The build process requires Node >=11.4 because it requires readline.Interface[Symbol.asyncIterator]

Notes

The font is a very simplified version of Fira Sans Regular. To simplify things for myself, I've removed all kerning data and most characters that can't easily be created via US keyboard or that aren't requried for Spanish.

src/index.js has some constants you can fiddle with at the top of the file the most important being the max number of ligatures generated.

The word list was translated in chunks via Google Translate, and then manually tweaked to remove words with punctuation. It includes over 5000 words, but Fontmake couldn't handle that many. It exists in this repo as 2 parallel text files, en.txt and es.txt where each line represents a word.

Credits

liga-diga's People

Contributors

mrjacobbloom avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

liga-diga's Issues

Explore parallellism

We're doing a lot of serial awaiting right now. I don't know how fast Node can do fs writes but it might be worth a shot

Give assertion clear message

I think there's only one assertion:

assert.equal(process.cwd().endsWith('liga-diga'), true);

...so we can probably rip out the assertion library anyway. But give a more useful error than expected false to equal true when attempting to run from the wrong location

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.