All Projects → i-tu → Hasklig

i-tu / Hasklig

Licence: ofl-1.1
Hasklig - a code font with monospaced ligatures

Programming Languages

python
139335 projects - #7 most used programming language
clojure
4091 projects
Rich Text Format
576 projects
shell
77523 projects
Batchfile
5799 projects

Projects that are alternatives of or similar to Hasklig

Haack
Hæck
Stars: ✭ 142 (-97.24%)
Mutual labels:  font, ligatures, otf
Firacode
Free monospaced font with programming ligatures
Stars: ✭ 60,943 (+1084.51%)
Mutual labels:  font, ligatures
Typography
C# Font Reader (TrueType / OpenType / OpenFont / CFF / woff / woff2) , Glyphs Layout and Rendering
Stars: ✭ 246 (-95.22%)
Mutual labels:  font, otf
Acy-Font
自制手写字体。A hand-writing font set.
Stars: ✭ 20 (-99.61%)
Mutual labels:  font, otf
Pokemon Font
GAME BOY font from Pokémon R/G/B/Y/G/S/C, Unicode extended.
Stars: ✭ 437 (-91.51%)
Mutual labels:  font, ligatures
Consolas Ligaturized
Standard Consolas font with FiraCode ligatures.
Stars: ✭ 198 (-96.15%)
Mutual labels:  font, ligatures
FontRegister
FontRegister is a small Windows utility to install fonts and/or repair the font registry via commandline.
Stars: ✭ 17 (-99.67%)
Mutual labels:  font, otf
Ligaturizer
Programming Fonts with Ligatures added (& a script to add them to other fonts)
Stars: ✭ 1,734 (-66.3%)
Mutual labels:  font, ligatures
chiron-sans-hk
昭源黑體:現代筆形風格,平衡標準字形和印刷體慣用筆形的免費開源黑體字型
Stars: ✭ 131 (-97.45%)
Mutual labels:  font, otf
font-v
Font version string reporting and modification library + executable tool
Stars: ✭ 15 (-99.71%)
Mutual labels:  font, otf
fontfacegen-webpack-plugin
A plugin for webpack that allows you to convert .ttf and .otf files into various other font formats such as .eot, .ttf, .svg, .woff and .woff2 using the existing NPM package fontfacegen.
Stars: ✭ 20 (-99.61%)
Mutual labels:  font, otf
Iosevka
Versatile typeface for code, from code.
Stars: ✭ 13,137 (+155.34%)
Mutual labels:  font, ligatures
Lilex
🤘Open source programming font
Stars: ✭ 143 (-97.22%)
Mutual labels:  font, ligatures
Operator Mono Lig
Add ligatures to Operator Mono similar to Fira Code
Stars: ✭ 2,683 (-47.85%)
Mutual labels:  font, ligatures
Opentype.js
Read and write OpenType fonts using JavaScript.
Stars: ✭ 3,393 (-34.05%)
Mutual labels:  font, otf
Iosevka-Mayukai
Font based on Iosevka Custom Build, with combination from Iosevka SS04 Menlo, SS07 Monaco, SS09 Source Code Pro, SS12 Ubuntu Mono, SS14 Jetbrains Mono, Hack Style, and some Nerd Font Patching.
Stars: ✭ 149 (-97.1%)
Mutual labels:  font, ligatures
Adobe Variable Font Prototype
Variable font example in OpenType-CFF2 & TrueType formats
Stars: ✭ 116 (-97.75%)
Mutual labels:  font, otf
Operator Mono Atom
Free Operator Mono clone for Atom
Stars: ✭ 120 (-97.67%)
Mutual labels:  font, ligatures
SUIT
SUIT―수트는 반복되는 노력을 기울이지 않아도 완성도 높은 형태를 유지하며, 소모적인 커뮤니케이션도 줄일 수 있도록 제작한 UI 본문용 폰트입니다.
Stars: ✭ 168 (-96.73%)
Mutual labels:  font, otf
Source Sans
Sans serif font family for user interface environments
Stars: ✭ 3,059 (-40.54%)
Mutual labels:  otf, afdko

Hasklig – Ligatures for code

Programming languages are limited to relatively few characters. As a result, combined character operators surfaced quite early, such as the widely used arrow (->), comprised of a hyphen and greater sign. It looks like an arrow if you know the analogy and squint a bit.

Composite glyphs are problematic in languages such as Haskell which utilize these complicated operators (=> -< >>= etc.) extensively. The readability of such complex code improves with pretty printing. Academic articles featuring Haskell code often use lhs2tex to achieve an appealing rendering, but it is of no use when programming.

Some Haskellers have resorted to Unicode symbols (, etc.), which are valid in the ghc. However they are one-character-wide and therefore eye-strainingly small. Furthermore, when displayed as substitutes to the underlying multi-character representation, as vim2hs does, the characters go out of alignment.

Hasklig solves the problem the way typographers have always solved ill-fitting characters which co-occur often: ligatures. The underlying code stays the same — only the representation changes.

Not only can multi-character glyphs be rendered more vividly, other problematic things in monospaced fonts, such as spacing can be corrected.

Hasklig

Hasklig Sample

Source Code Pro

Source Code Pro Sample

Currently implemented symbols

<* <*> <+> <$> *** <| |> <|> !! || === ==> <<< >>> <> +++ <- -> => >> << >>= =<< .. ... :: -< >- -<< >>- ++ /= ==

Building the fonts from source

Requirements

To build the binary font files from source, you need to have installed the Adobe Font Development Kit for OpenType (AFDKO). The AFDKO tools are widely used for font development today, and are part of most font editor applications.

Some SVG glyphs are inserted into the fonts using Python FontTools.

Building font instances from masters

This repository only includes so-called master weights of the fonts (effectively extralight and black). The shapes of the weights in between these extremities are calculated by makeInstancesUFO supplied with .designspace files. For convenience, the shell script makeInstances is provided, which executes makeInstancesUFO, calculating all the italic and regular font weight shapes.

$ ./makeInstances.sh

Building one font

The key to building OTF or TTF fonts is makeotf, which is part of the AFDKO toolset. Information and usage instructions can be found by executing makeotf -h.

In this repository, all necessary files are in place for building the OTF and TTF fonts. For example, build a binary OTF font for the Regular style like this:

$ cd Roman/Regular/
$ makeotf -r

Building all fonts

For convenience, a shell script named build is provided in the root directory. It builds all OTFs and TTFs, and can be executed by typing:

$ ./build.sh

or this on Windows:

> build.cmd

Credits

Original idea, design and implementation of code ligatures by Ian Tuomi 2014-2015. This typeface extends Source Code Pro with ligatures.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].