1
0
Fork 0
mirror of synced 2024-05-14 17:43:16 +12:00

Compare commits

...

76 commits
6.2 ... master

Author SHA1 Message Date
Cyrill Küttel 34cced2a12 link to gnome-terminal issue for Ligatures 2024-02-29 17:53:30 +01:00
Nikita Prokopov ef565289eb Symbols for Legacy Computing: Set color to blue #1566 2024-01-02 17:09:24 +01:00
Nikita Prokopov 40fc56fc4e Add Block elements from the Symbols for Legacy Computing #1566 2024-01-02 17:08:12 +01:00
Josh McKinney f70e21b6e5 Remove makefile edit 2024-01-02 16:27:00 +01:00
Josh McKinney 2b2de1d7a0 Add rest of legacy block elements 2024-01-02 16:27:00 +01:00
Josh McKinney 525f223010 Add horizontal eighth combination blocks 2024-01-02 16:27:00 +01:00
Josh McKinney ea1a77ce75 Add combination one eighth blocks 2024-01-02 16:27:00 +01:00
Josh McKinney 6dfa7e2385 Add horizontal one eighth blocks 2024-01-02 16:27:00 +01:00
Josh McKinney 122cf42d40 Add Vertical eighth blocks and upper quarter block 2024-01-02 16:27:00 +01:00
Nikita Prokopov 747fab5be7 user.clj, nrepl -> socket repl 2024-01-02 16:26:52 +01:00
Nikita Prokopov f064e54c06
Update Notepad++ instructions link #1555 2023-11-09 14:41:46 +01:00
Ikko Eltociear Ashimine ba21c00cdf minor fix 2023-06-19 19:28:30 +02:00
Ikko Eltociear Ashimine 6f05dc2018 Add Japanese README 2023-06-19 19:28:30 +02:00
jim-p 5de1abb167 Update Compatibility List. Fixes #1532
* Adds several entries to Editors and Terminals lists
* Fixes some broken formatting and ordering in the
  second column of Editor list
2023-05-28 15:18:40 +02:00
matan h ee125da078 move Arduino IDE 2.0 to the Works list 2023-05-16 16:07:09 +02:00
matan h a47db68a73 add arduino-ide 2.0 to the explain message of arduino in editor compatibility list 2023-05-16 16:07:09 +02:00
Björn Kautler 79b02adef1 Add an example Docker call for MSYS2 based shells 2023-04-27 06:55:58 -07:00
Nikita Prokopov 20f11a21e0
Merge pull request #1514 from ecerulm/patch-1
Update README with cv01, ss01 , zero, onum, etc
2023-03-16 03:34:27 -07:00
Ruben Laguna f61975c306
Update README with cv01, ss01 , zero, onum, etc
Those are already reference in the images, but they are not searchable. 
By putting in the text is easier to find as you can search for calt, onum, zero, cv01, ss01, 
and find the relevant documentation
2023-03-16 08:36:54 +01:00
Nikita Prokopov b94cc3e0de
Merge pull request #1512 from snan/master
I don't understand why some are red and some are black.
2023-03-08 08:07:46 -08:00
Sandra Snan db910e4cd6 I don't understand why some are red and some are black.
Let's make it a little bit more consistent.
2023-03-08 10:08:02 +01:00
Nikita Prokopov 22c5754289
Tilix doesn’t work (closes #1506) 2023-02-22 16:42:08 +01:00
Nikita Prokopov 63976dd129
Minor tweaks #1501 2023-01-26 13:23:39 -08:00
Goooler a696ca56b0 Ignore IDEA files 2023-01-26 18:20:34 +08:00
Goooler f7a8ac72f2 Bump GHA versions 2023-01-26 18:20:02 +08:00
Nikita Prokopov a03fb501d3 Update scripts for fresh gftools and cross-platform mktemp 2023-01-17 18:35:09 +00:00
Nikita Prokopov e19f63e0e9
Merge pull request #1471 from ollicle/master
Docs: BBEdit support
2022-10-05 00:56:28 +02:00
Oliver Boermans 9f01d4d376 Docs: BBEdit support
[Latest version of BBEdit](https://www.barebones.com/support/bbedit/notes-14.6.html) supports ligatures once more.

BBEdit no longer requires expert preferences to enable ligatures

TextWrangler is no more – replaced by the unlicenced version of BBEdit.

Update the README files to reflect these changes.
2022-10-04 21:47:36 +10:30
Nikita Prokopov ab2aaf3e73 Misspelling of Haskell in Spanish README (closes #1463) 2022-09-01 17:32:32 +02:00
Nikita Prokopov 4cabdfdfb3
Merge pull request #1452 from ACnoway/master
Update README_CN.md
2022-08-03 15:53:16 +02:00
ACnoway aaafcd3702 update README_CN.md 2022-08-03 10:25:35 +08:00
ACnoway 4926aeac29 wiki Chinese translation 2022-08-02 19:13:50 +08:00
Nikita Prokopov c9d4324d90
Merge pull request #1446 from HyunseungLee-Travis/master
Update quotes to single quote
2022-07-23 02:12:56 +02:00
Hyunseung Lee 3b2506cd31
Update quotes to single quote 2022-07-23 08:33:34 +09:00
Nikita Prokopov caf00206a7
Merge pull request #1440 from xgdgsc/patch-1
fix cn translation regarding sponser
2022-07-13 20:52:58 +02:00
Nikita Prokopov 16de164e66
Merge pull request #1438 from ShalokShalom/patch-1
Move Godot to supported
2022-07-13 20:52:38 +02:00
xgdgsc a0130c91fa
fix cn translation 2022-07-12 22:41:22 +08:00
ShalokShalom c44df2bc5f
Correct order in compability list 2022-07-11 21:11:46 +02:00
ShalokShalom db40758747
Move Godot to supported
Godot resolved the hindering issue 2 years ago. 
Godot 4 ships by default with ligatures.
Issue https://github.com/godotengine/godot-proposals/issues/1180
2022-07-11 17:03:03 +02:00
Nikita Prokopov ad43187d10
Merge pull request #1429 from habere-et-dispertire/patch-1
Raku IDE Comma supports FiraCode
2022-06-30 16:39:04 +02:00
habere-et-dispertire 2a95184394
Raku IDE Comma supports FiraCode
Select installed FiraCode under Preferences... > Editor > Font
and toggle the checkbox Enable ligatures in the same place.
2022-06-29 23:59:46 +01:00
Nikita Prokopov 022693f6f0 Fixed overlap in U+2573 ╳ #1414 2022-05-22 22:58:46 +02:00
Nikita Prokopov 164956350f
Merge pull request #1400 from holazz/patch-readme-cn
docs: improve README_CN.md
2022-04-13 14:54:30 +02:00
holazz 7b20ec1e3b docs: improve README_CN.md 2022-04-13 16:35:22 +08:00
Nikita Prokopov ab6e682f93 Reformatted terminal compatibility list, added Wez’s terminal (closes #1397) 2022-04-01 16:55:14 +02:00
Nikita Prokopov d80b0f07f1 Fixed building on the latest fontmake 2022-03-15 18:11:40 +01:00
Nikita Prokopov 390c41cc94 Fixed build.sh to work on macOS, regen glyphs from *.fea 2022-03-15 15:51:00 +01:00
Fabian Preuß 31adb247e5 feat: allow hardcoding of features via arguments to build script
All features that were not already in their own files were pulled out of
FiraCode.glyphs into individual files. There is no way I will write
a parser for the glyphs file to do that at runtime. The build script
will then read the code in these feature files and appends it to the
`calt` property inside the glyphs file. Features to be baked in can be
given to build.sh as a comma separated list with the `-f / --features`
flag.

To more easily generate multiple font versions with different features
baked in, there are flags `-n / --family-name` for build.sh that will
allow users to set a custom family name for the font. The special value
"features" will append the feature list to the font name. The family
name is exported and used by the other build scripts as a directory to
separate different font versions. The filenames were not changed, the
directory name is enough separation.

The flag `-g / --generate-glyphs-only` will cause the script to exit
after the custom glyphs file has been created without actually building
the font. The custom .glyphs file will be saved as
`${family_name}.glyphs`.

Via another flag, `-w / --weights`, a comma separated list of font
weights to be generated can be given to build.sh.

The README received a hint to the new capabilities.

Fixed a mixup of cv25 and cv32.

The .gitignore was adjusted to better deal with the new directories and
files.
2022-03-15 15:34:25 +01:00
Nikita Prokopov 82180459c9 Removed accidental backgroundImage 2022-03-15 15:29:30 +01:00
Nikita Prokopov 8f4cc97fd5 Removed Docker build from Makefile 2022-03-15 15:29:30 +01:00
Nikita Prokopov a712db6f47
Merge pull request #1385 from VladWinner/master
README.md: Correcting the aspect ratio of images on phones
2022-03-06 20:31:28 +01:00
Vlad a258200a13
Correcting the aspect ratio of images on phones 2022-03-05 04:49:56 +03:00
Vlad 37855f9cf8
Correcting the aspect ratio of images on phones 2022-03-05 04:49:03 +03:00
Nikita Prokopov 4488dc4a66
Update WorkOS link 2022-02-09 17:40:30 +01:00
Nikita Prokopov dc096591b0
WorkOS sponsorship 2022-02-09 15:50:05 +01:00
Nikita Prokopov 383835769c
Merge pull request #1366 from jsoref/spelling
Spelling
2022-02-07 19:33:55 +01:00
Josh Soref f1725b4b4a spelling: to
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2022-02-06 19:19:50 -05:00
Josh Soref e4d1280121 spelling: successfully
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2022-02-06 16:27:49 -05:00
Josh Soref 2c78d18533 spelling: similar
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2022-02-06 16:27:49 -05:00
Josh Soref 8c616ac0dd spelling: proportion
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2022-02-06 16:27:49 -05:00
Josh Soref f2fa4431b8 spelling: postscript
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2022-02-06 16:27:49 -05:00
Josh Soref e6d6ecfcdf spelling: metadata
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2022-02-06 16:27:49 -05:00
Josh Soref 54f1c04b68 spelling: intellij
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2022-02-06 16:27:49 -05:00
Josh Soref 6d3291e32f spelling: inferred
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2022-02-06 16:27:49 -05:00
Josh Soref b95464577a spelling: glyphs
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2022-02-06 16:27:49 -05:00
Josh Soref 7b29086fd2 spelling: conjunction
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2022-02-06 16:27:48 -05:00
Josh Soref 894d462c02 spelling: characters
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2022-02-06 16:27:48 -05:00
Josh Soref 9f66ca846f spelling: aren't
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2022-02-06 16:27:48 -05:00
Josh Soref 6462d0d3d3 spelling: apply
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2022-02-06 16:27:48 -05:00
Josh Soref f2b14f6dd8 spelling: amount
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2022-02-06 16:27:48 -05:00
Diego Sejas-Viscarra 5b90f15c94
Spanish improvements (#1360)
- Corrected a typo in one of the images in Spanish
- Improved the look of one of the images in Spanish

Co-authored-by: Diego Sejas-Viscarra <dsejas.math@m.me>
2022-01-31 19:08:35 +01:00
Keiran Harcombe 3de2fda715 Updated README.md to include TeXShop 2022-01-31 12:57:27 +01:00
Diego Sejas-Viscarra 1ecbc3ac56 Add Spanish README (LEEME) 2022-01-26 09:11:26 +01:00
Pablo 4c21593495 Fixed link to GNOME issue.
GNOME moved from Bugzilla to Gitlab. Fixed the link to the corresponding issue there.
2022-01-19 16:53:02 +01:00
墨抒颖 6cdf4a0583
Update README.md (#1341)
* Update README.md

加入简体中文翻译

* Update README.md

Co-authored-by: Nikita Prokopov <niki@tonsky.me>
2021-12-20 12:59:31 +01:00
墨抒颖 0d88d99bb1 Create README_CN.md
加入中文翻译
2021-12-20 12:57:15 +01:00
78 changed files with 15306 additions and 12850 deletions

View file

@ -14,12 +14,12 @@ jobs:
runs-on: ubuntu-latest
container: tonsky/firacode:latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- if: startsWith(github.ref, 'refs/tags/')
run: python3 ./script/update_version.py
- run: ./script/build.sh
- run: echo "hash=$(git rev-parse --short $GITHUB_SHA)" >> $GITHUB_ENV
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: Fira_Code_${{ env.hash }}
path: distr

19
.gitignore vendored
View file

@ -1,18 +1,19 @@
*.zip
FiraCode_liga.glyphs
FiraCode_mess.glyphs
target
clojure/*.edn
FiraCode\ (Autosaved).glyphs
FiraCode_VF.glyphs
.cpcache
.repl-port
master_ufo
instance_ufo
venv
.DS_Store
*.numbers
distr/ttf
distr/otf
distr/woff
distr/woff2
distr/variable_ttf
distr/*/
*.glyphs
!FiraCode.glyphs
.idea
.fleet
*.iml

View file

@ -2,6 +2,10 @@
All notable changes to this project will be documented in this file.
### 7.0
- Fixed overlap in U+2573 #1414
### 6.2
- Fixed monospaced property #1325
@ -21,7 +25,7 @@ Unicode:
- Added U+220E End of Proof `∎` #1115
- Added U+FFFD Replacement Character `<60>` #1137, thanks @gjvnq
- Added U+EE00..U+EE0B Progress Bar `` #1182
- Added U+2237 Propotion `∷` #1219
- Added U+2237 Proportion `∷` #1219
- Added U+21AA Rightwards Arrow with Hook `↪` #1307
Changed:
@ -265,7 +269,7 @@ Removed 44 individual arrow ligatures, replaced with four universal, combinative
#### 1.102
- Support for IntelliJ-based IDEs ([instructions](https://github.com/tonsky/FiraCode/wiki/Intellij-products-instructions))
- Support for IntelliJ-based IDEs ([instructions](https://github.com/tonsky/FiraCode/wiki/IntelliJ-products-instructions))
- Turned on autohinting
#### 1.101

File diff suppressed because one or more lines are too long

240
LEEME.md Normal file
View file

@ -0,0 +1,240 @@
## Fira Code: la fuente monoespaciada con ligaduras gratuita para programación
![Fira Code](./extras/logo.svg)
Leer en [English](./README.md) | [简体中文](./README_CN.md) | [日本語](./README_JA.md)
### El problema
Los programadores usamos muchos símbolos, frecuentemente codificados con varios caracteres. Para el cerebro humano, sucesiones como `->`, `<=` o `:=` son unidades lógicas individuales, incluso si requieren dos o más caracteres en pantalla. Nuestros ojos utilizan una cantidad no nula de energía para leer, analizar y unir caracteres mútiples en una sola unidad lógica. Idealmente, todos los lenguajes de programación deberían estar diseñados para representar los operadores con símbolos Unicode; pero ese no es el caso aún.
### La solución
Fira Code es una fuente monoespaciada gratuita que contiene ligaduras para combinaciones multicaracter comunes en programación. Esta es simplemente una característica del renderizado de la fuente: el código subyacente permanece compatible con el estándar ASCII. Esto ayuda a leer y comprender más rápido el código. Para algunas sucesiones comunes, como `..` o `//`, las ligaduras nos permiten hacer correcciones en el espaciado.
### Descarga e instalación
<a href="https://github.com/tonsky/FiraCode/releases/download/6.2/Fira_Code_v6.2.zip"><img alt="Fira_Code_v6.2.zip - Diciembre 6 de 2021 - 2.5 MB" src="./extras/download_es.png" width="520" height="130"></a>
Recursos adicionales (en inglés):
- [Cómo instalar](https://github.com/tonsky/FiraCode/wiki)
- [Resolución de problemas](https://github.com/tonsky/FiraCode/wiki#troubleshooting)
- [Noticias e información](https://twitter.com/FiraCode)
### Contribuyendo
<a href="https://github.com/sponsors/tonsky" target="_blank"><img alt="Contribuye" src="./extras/sponsor_es.png"></a>
Fira Code es un proyecto personal desarrollado en mi tiempo libre, sin financiamiento y con una enorme [lista de solicitudes](https://github.com/tonsky/FiraCode/issues). Si el resultado es de tu agrado, por favor considera apoyar a su desarrollo por medio de [GitHub Sponsors](https://github.com/sponsors/tonsky) o [Patreon](https://patreon.com/tonsky). ¡Cualquier ayuda cuenta!
### ¿Qué ofrece?
Izquierda: ligaduras renderizadas en Fira Code. Derecha: las mismas secuencias de caracteres sin ligaduras.
<img src="./extras/ligatures_es.png" width="812" height="1326">
Fira Code viene con una gran variedad de flechas. Mejor aun, ¡estas pueden hacerse tan largas como se desee y se pueden combinar los fragmentos incial/medio/final de la forma que se quiera!
<img src="./extras/arrows_es.png" width="754" height="799">
Fira Code no solo se trata de las ligaduras. Algunos ajustes se han hecho a la puntuación y a pares de letras frecuentes.
<img src="./extras/typographics_es.png" width="754" height="649">
Fira Code viene con algunas variantes de caracteres, de manera que cada uno puede escoger lo que mejor le convenga. [Cómo activar (en inglés)](https://github.com/tonsky/FiraCode/wiki/How-to-enable-stylistic-sets)
<img src="./extras/character_variants_es.png" width="754" height="391">
Algunas ligaduras pueden alterarse o activarse usando conjuntos estilísticos/variantes de caracteres:
<img src="./extras/ligature_variants_es.png" width="754" height="561">
Siendo una fuente para programación, Fira Code tiene un soporte fantástico para dibujos ASCII/de cajas, powerline y otras formas de interfaz de usuario para terminal:
<img src="./extras/console_es.png" width="754" height="459">
Fira Code es la primera fuente para programación en ofrecer glifos dedicados al dibujo de barras de progreso:
<img src="./extras/progress.png" width="754" height="282">
En acción:
<img src="./extras/progress_es.gif" width="594" height="181">
Esperamos que más fuentes adopten esta convención y definan sus propias versiones.
La covertura del estándar Unicode hace de Fira Code una gran elección para la escritura matemática:
<img src="./extras/math_es.png" width="754" height="323">
### ¿Cómo luce?
<img src="./extras/samples.png" width="754" height="1068">
<img src="./extras/samples2.png" width="754" height="1257">
### Lista de compatibilidad con editores
| Funciona | No funciona |
|----------|-------------|
| **Abricotine** | **Arduino IDE** |
| **Android Studio** (2.3+, [instrucciones](https://github.com/tonsky/FiraCode/wiki/Intellij-products-instructions)) | **Adobe Dreamweaver** |
| **Anjuta** (excepto con EOF) | **Delphi IDE** |
| **AppCode** (2016.2+, [instrucciones](https://github.com/tonsky/FiraCode/wiki/Intellij-products-instructions)) | **Emacs** por sí solo ([solución alternativa](https://github.com/tonsky/FiraCode/wiki/Emacs-instructions)) |
| **Atom** 1.1 o más nuevo ([instrucciones](https://github.com/tonsky/FiraCode/wiki/Atom-instructions)) | **Godot** ([reporte](https://github.com/godotengine/godot/issues/9961)) |
| **BBEdit** (14.6+, [instrucciones](https://github.com/tonsky/FiraCode/wiki/BBEdit-instructions)) | **IDLE** |
| **Brackets** (con [este plugin](https://github.com/polo2ro/firacode-in-brackets)) | **KDevelop 4** |
| **Chocolat** | **Monkey Studio IDE** |
| **CLion** (2016.2+, [instrucciones](https://github.com/tonsky/FiraCode/wiki/Intellij-products-instructions)) | **UltraEdit** |
| **Cloud9** ([instrucciones](https://github.com/tonsky/FiraCode/wiki/Cloud9-Instructions)) |
| **Coda 2** |
| **CodeLite** |
| **CodeRunner** |
| **CotEditor** |
| **Eclipse** |
| **elementary Code** |
| **Geany** (1.37+) |
| **gEdit / Pluma** |
| **GNOME Builder** |
| **GoormIDE** ([instrucciones](https://github.com/tonsky/FiraCode/wiki/GoormIDE-Instructions)) |
| **gVim** ([Windows](https://github.com/tonsky/FiraCode/issues/462), [GTK](https://vimhelp.org/options.txt.html#%27guiligatures%27)) |
| **IntelliJ IDEA** (2016.2+, [instrucciones](https://github.com/tonsky/FiraCode/wiki/Intellij-products-instructions)) |
| **Kate, KWrite** |
| **KDevelop 5+** |
| **Komodo** |
| **Leafpad** |
| **LibreOffice** |
| **LightTable** ([instrucciones](https://github.com/tonsky/FiraCode/wiki/LightTable-instructions)) |
| **LINQPad** |
| **MacVim** 7.4 o más nuevo ([instrucciones](https://github.com/tonsky/FiraCode/wiki/MacVim-instructions)) |
| **Mancy** |
| **MATLAB** ([instrucciones](https://github.com/tonsky/FiraCode/wiki/MATLAB-for-Windows-Instructions)) |
| **Meld** |
| **Mousepad** |
| **NeoVim-gtk** |
| **NetBeans** |
| **Notepad** (Windows) |
| **Notepad++** (con una [solución alternativa](https://github.com/notepad-plus-plus/notepad-plus-plus/issues/2287#issuecomment-256638098)) |
| **Notepad3** ([instrucciones](https://github.com/rizonesoft/Notepad3/issues/361#issuecomment-365977420))|
| **Nova** |
| **PhpStorm** (2016.2+, [instrucciones](https://github.com/tonsky/FiraCode/wiki/Intellij-products-instructions)) |
| **PyCharm** (2016.2+, [instrucciones](https://github.com/tonsky/FiraCode/wiki/Intellij-products-instructions)) |
| **QOwnNotes** (21.16.6+) |
| **QtCreator** |
| **Rider** |
| **RStudio** ([instrucciones](https://github.com/tonsky/FiraCode/wiki/RStudio-instructions)) |
| **RubyMine** (2016.2+, [instrucciones](https://github.com/tonsky/FiraCode/wiki/Intellij-products-instructions)) |
| **Scratch** |
| **Scribus** (1.5.3+) |
| **SublimeText** (3146+) |
| **Spyder IDE** (solamente con Qt5) |
| **SuperCollider 3** |
| **TeXShop** |
| **TextAdept** (Linux, macOS) |
| **TextEdit** |
| **TextMate 2** |
| **VimR** ([instrucciones](https://github.com/qvacua/vimr/wiki#ligatures)) |
| **Visual Studio** (2015+, [instrucciones](https://github.com/tonsky/FiraCode/wiki/Visual-Studio-Instructions)) |
| **Visual Studio Code** ([instrucciones](https://github.com/tonsky/FiraCode/wiki/VS-Code-Instructions)) |
| **WebStorm** (2016.2+, [instrucciones](https://github.com/tonsky/FiraCode/wiki/Intellij-products-instructions)) |
| **Xamarin Studio/Monodevelop** |
| **Xcode** (8.0+, alternativamente con [este plugin](https://github.com/robertvojta/LigatureXcodePlugin)) |
| **Xi** |
| Probablemente: **Smultron, Vico** | En duda: **Code::Blocks IDE** |
### Lista de compatibilidad con terminales
| Plataforma | Funciona | No funciona |
|----------------|----------|-------------|
| macOS | Hyper (ver [#3607](https://github.com/vercel/hyper/issues/3607))<br>iTerm 2<br>Kitty<br>Terminal.app<br>ZOC | Alacritty |
| Windows | Hyper (ver [#3607](https://github.com/vercel/hyper/issues/3607))<br>Mintty<br>Token2Shell<br>Windows Terminal | Alacritty<br>Cmder<br>ConEmu<br>PuTTY<br>Windows Console<br>ZOC |
| Linux | Hyper (ver [#3607](https://github.com/vercel/hyper/issues/3607))<br>Kitty<br>Konsole<br>QTerminal<br>Termux<br>st ([parche](https://st.suckless.org/patches/ligatures/)) | Alacritty<br>GNOME Terminal<br>Terminales basadas en libvte ([reporte](https://gitlab.gnome.org/GNOME/vte/-/issues/1661)): <ul><li>gtkterm<li>guake<li>LXTerminal<li> sakura<li>Terminator<li>xfce4-terminal</ul>mate-terminal<br>rxvt<br>terminology<br>xterm
| ChromeOS | crosh ([instrucciones](https://github.com/tonsky/FiraCode/wiki/ChromeOS-Terminal)) | |
### Soporte en el navegador web
```html
<!-- HTML -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/firacode@6.2.0/distr/fira_code.css">
```
```css
/* CSS */
@import url(https://cdn.jsdelivr.net/npm/firacode@6.2.0/distr/fira_code.css);
```
```css
/* Especificar en el CSS */
code { font-family: 'Fira Code', monospace; }
@supports (font-variation-settings: normal) {
code { font-family: 'Fira Code VF', monospace; }
}
```
- IE 10+, Edge Legacy: activar con `font-feature-settings: "calt";`
- Firefox
- Safari
- Navegadores basados en Chromium (Chrome, Opera)
- ACE
- CodeMirror (activar con `font-variant-ligatures: contextual;`)
### Proyectos que usan Fira Code
- [CodePen](https://codepen.io/)
- [Blink Shell](http://www.blink.sh/)
- [Klipse](http://app.klipse.tech/)
- [IlyaBirman.net](http://ilyabirman.net/)
- [EvilMartians.com](https://evilmartians.com/)
- [Web Maker](https://webmakerapp.com/)
- [FromScratch](https://fromscratch.rocks/)
- [PEP20.org](https://pep20.org/)
### Alternativas
Fuentes monoespaciadas con ligaduras gratuitas:
- [Hasklig](https://github.com/i-tu/Hasklig)
- [Monoid](http://larsenwork.com/monoid/)
- [Fixedsys Excelsior](https://github.com/kika/fixedsys)
- [Iosevka](https://be5invis.github.io/Iosevka/)
- [DejaVu Sans Code](https://github.com/SSNikolaevich/DejaVuSansCode)
- [Victor Mono](https://rubjo.github.io/victor-mono/)
- [Cascadia Code](https://github.com/microsoft/cascadia-code)
- [JetBrains Mono](https://github.com/JetBrains/JetBrainsMono)
Fuentes monoespaciadas con ligaduras no gratuitas:
- [PragmataPro](http://www.fsd.it/fonts/pragmatapro.htm)
- [Mono Lisa](https://www.monolisa.dev/)
### Compilando Fira Code localmente
En caso que se quiera modificar el código en FiraCode.glyphs y compilar archivos OTF/TTF/WOFF propios, estas son las instrucciones que uso en macOS:
```bash
# instalar las herramientas requeridas para la compilación
./script/bootstrap_macos.sh
# compilar los archivos de la fuente
./script/build.sh
# instalar los OTFs en ~/Library/Fonts
cp distr/otf/*.otf ~/Library/Fonts
```
Alternativamnete, se puede compilar Fira Code usando Docker:
```bash
# instalar las dependencias en un contenedor y compilar los archivos de la fuente
make
# comprimir los archivos de la fuente en dist/ a un zip
make package
```
### Créditos
- Autor: Nikita Prokopov [@nikitonsky](https://twitter.com/nikitonsky)
- Basado en: [Fira Mono](https://github.com/mozilla/Fira)
- Inspirado por: [Hasklig](https://github.com/i-tu/Hasklig)

View file

@ -1,10 +1,7 @@
all: dep build
dep:
docker build -t fira:latest .
all: build
build:
docker run --rm -v ${PWD}:/opt fira:latest ./script/build.sh
docker run --rm -v ${PWD}:/opt tonsky/firacode:latest ./script/build.sh
package:
./script/package.sh

128
README.md
View file

@ -2,6 +2,8 @@
![Fira Code](./extras/logo.svg)
Read in [Español](./LEEME.md) | [简体中文](./README_CN.md) | [日本語](./README_JA.md)
### Problem
Programmers use a lot of symbols, often encoded with several characters. For the human brain, sequences like `->`, `<=` or `:=` are single logical tokens, even if they take two or three characters on the screen. Your eye spends a non-zero amount of energy to scan, parse and join multiple characters into a single logical one. Ideally, all programming languages should be designed with full-fledged Unicode symbols for operators, but thats not the case yet.
@ -12,7 +14,7 @@ Fira Code is a free monospaced font containing ligatures for common programming
### Download & Install
<a href="https://github.com/tonsky/FiraCode/releases/download/6.2/Fira_Code_v6.2.zip"><img alt="Fira_Code_v6.2.zip - December 6, 2021 - 2.5 MB" src="./extras/download.png" width="520" height="130"></a>
<a href="https://github.com/tonsky/FiraCode/releases/download/6.2/Fira_Code_v6.2.zip"><img alt="Fira_Code_v6.2.zip - December 6, 2021 - 2.5 MB" src="./extras/download.png" width="520"></a>
Then:
@ -20,83 +22,100 @@ Then:
- [Troubleshooting](https://github.com/tonsky/FiraCode/wiki#troubleshooting)
- [News & Updates](https://twitter.com/FiraCode)
### Support
<a href="https://github.com/sponsors/tonsky" target="_blank"><img alt="Sponsor" src="./extras/sponsor.png"></a>
### Sponsors
Fira Code is a personal, free-time project with no funding and a huge [feature request backlog](https://github.com/tonsky/FiraCode/issues). If you love it, consider supporting its development via [GitHub Sponsors](https://github.com/sponsors/tonsky) or [Patreon](https://patreon.com/tonsky). Any help counts!
Huge thanks to:
<table>
<td align="center">
<a href="https://workos.com/?utm_campaign=github_repo&utm_medium=referral&utm_content=firacode&utm_source=github">
<div>
<img src="https://user-images.githubusercontent.com/629429/151508669-efb4c3b3-8fe3-45eb-8e47-e9510b5f0af1.svg" width="290" alt="WorkOS">
</div>
<b>Your app, enterprise-ready.</b>
<div>
<sub>Start selling to enterprise customers with just a few lines of code. Add Single Sign-On (and more) in minutes instead of months.</sup>
</div>
</a>
</td>
</table>
### Whats in the box?
Left: ligatures as rendered in Fira Code. Right: same character sequences without ligatures.
<img src="./extras/ligatures.png" width="754" height="1326">
<img src="./extras/ligatures.png" width="754">
Fira Code comes with a huge variety of arrows. Even better: you can make them as long as you like and combine start/middle/end fragments however you want!
<img src="./extras/arrows.png" width="754" height="799">
<img src="./extras/arrows.png" width="754">
Fira Code is not only about ligatures. Some fine-tuning is done for punctuation and frequent letter pairs.
<img src="./extras/typographics.png" width="754" height="649">
<img src="./extras/typographics.png" width="754">
Fira Code comes with a few different character variants, so that everyone can choose whats best for them. [How to enable](https://github.com/tonsky/FiraCode/wiki/How-to-enable-stylistic-sets)
Fira Code comes with a few different character variants (`cv01`, `cv02`, etc), stylistic sets (`ss01`, `ss02` , etc) and other font features (`zero`, `onum`, `calt`, etc), so that everyone can choose whats best for them. [How to enable](https://github.com/tonsky/FiraCode/wiki/How-to-enable-stylistic-sets)
<img src="./extras/character_variants.png" width="754" height="391">
<img src="./extras/character_variants.png" width="754">
Some ligatures can be altered or enabled using stylistic sets/character variants:
<img src="./extras/ligature_variants.png" width="754" height="561">
<img src="./extras/ligature_variants.png" width="754">
Being a programming font, Fira Code has fantastic support for ASCII/box drawing, powerline and other forms of console UIs:
<img src="./extras/console.png" width="754" height="459">
<img src="./extras/console.png" width="754">
Fira Code is the first programming font to offer dedicated glyphs to render progress bars:
<img src="./extras/progress.png" width="754" height="282">
<img src="./extras/progress.png" width="754">
In action:
<img src="./extras/progress.gif" width="560" height="181">
<img src="./extras/progress.gif" width="560">
We hope more programming fonts will adopt this convention and ship their own versions.
Unicode coverage makes Fira Code a great choice for mathematical writing:
<img src="./extras/math.png" width="754" height="323">
<img src="./extras/math.png" width="754">
### How does it look?
<img src="./extras/samples.png" width="754" height="1068">
<img src="./extras/samples2.png" width="754" height="1257">
<img src="./extras/samples.png" width="754">
<img src="./extras/samples2.png" width="754">
### Editor compatibility list
| Works | Doesnt work |
|-------|----------------|
| **Abricotine** | **Arduino IDE** |
| **Android Studio** (2.3+, [instructions](https://github.com/tonsky/FiraCode/wiki/Intellij-products-instructions)) | **Adobe Dreamweaver** |
| **Anjuta** (unless at the EOF) | **Delphi IDE** |
| **AppCode** (2016.2+, [instructions](https://github.com/tonsky/FiraCode/wiki/Intellij-products-instructions)) | Standalone **Emacs** ([workaround](https://github.com/tonsky/FiraCode/wiki/Emacs-instructions)) |
| **Atom** 1.1 or newer ([instructions](https://github.com/tonsky/FiraCode/wiki/Atom-instructions)) | **Godot** ([issue](https://github.com/godotengine/godot/issues/9961)) |
| **BBEdit/TextWrangler** (v. 11 only, [instructions](https://github.com/tonsky/FiraCode/wiki/BBEdit-instructions)) | **IDLE** |
| **Brackets** (with [this plugin](https://github.com/polo2ro/firacode-in-brackets)) | **KDevelop 4** |
| **Chocolat** | **Monkey Studio IDE** |
| **CLion** (2016.2+, [instructions](https://github.com/tonsky/FiraCode/wiki/Intellij-products-instructions)) | **UltraEdit** |
| **Arduino IDE** (2.0+,same instructions as [vscode](https://github.com/tonsky/FiraCode/wiki/VS-Code-Instructions)) | **Adobe Dreamweaver** |
| **Abricotine** | **Delphi IDE** |
| **Android Studio** (2.3+, [instructions](https://github.com/tonsky/FiraCode/wiki/IntelliJ-products-instructions)) | Standalone **Emacs** ([workaround](https://github.com/tonsky/FiraCode/wiki/Emacs-instructions)) |
| **Anjuta** (unless at the EOF) | **IDLE** |
| **AppCode** (2016.2+, [instructions](https://github.com/tonsky/FiraCode/wiki/IntelliJ-products-instructions)) | **KDevelop 4** |
| **Atom** 1.1 or newer ([instructions](https://github.com/tonsky/FiraCode/wiki/Atom-instructions)) | **Monkey Studio IDE** |
| **BBEdit** (14.6+ [instructions](https://github.com/tonsky/FiraCode/wiki/BBEdit-instructions)) | **UltraEdit** (Windows) |
| **Brackets** (with [this plugin](https://github.com/polo2ro/firacode-in-brackets)) |
| **Chocolat** |
| **CLion** (2016.2+, [instructions](https://github.com/tonsky/FiraCode/wiki/IntelliJ-products-instructions)) |
| **Cloud9** ([instructions](https://github.com/tonsky/FiraCode/wiki/Cloud9-Instructions)) |
| **Coda 2** |
| **CodeLite** |
| **CodeRunner** |
| **Comma** (Under: Preferences > Editor > Font) |
| **CotEditor** |
| **Eclipse** |
| **elementary Code** |
| **Geany** (1.37+) |
| **gEdit / Pluma** |
| **GNOME Builder** |
| **Godot** |
| **GoormIDE** ([instructions](https://github.com/tonsky/FiraCode/wiki/GoormIDE-Instructions)) |
| **gVim** ([Windows](https://github.com/tonsky/FiraCode/issues/462), [GTK](https://vimhelp.org/options.txt.html#%27guiligatures%27)) |
| **IntelliJ IDEA** (2016.2+, [instructions](https://github.com/tonsky/FiraCode/wiki/Intellij-products-instructions)) |
| **IntelliJ IDEA** (2016.2+, [instructions](https://github.com/tonsky/FiraCode/wiki/IntelliJ-products-instructions)) |
| **Kate, KWrite** |
| **KDevelop 5+** |
| **Komodo** |
@ -112,28 +131,30 @@ Unicode coverage makes Fira Code a great choice for mathematical writing:
| **NeoVim-gtk** |
| **NetBeans** |
| **Notepad** (Windows) |
| **Notepad++** (with a [workaround](https://github.com/notepad-plus-plus/notepad-plus-plus/issues/2287#issuecomment-256638098)) |
| **Notepad++** ([instructions](https://github.com/tonsky/FiraCode/issues/1555)) |
| **Notepad3** ([instructions](https://github.com/rizonesoft/Notepad3/issues/361#issuecomment-365977420))|
| **Nova** |
| **PhpStorm** (2016.2+, [instructions](https://github.com/tonsky/FiraCode/wiki/Intellij-products-instructions)) |
| **PyCharm** (2016.2+, [instructions](https://github.com/tonsky/FiraCode/wiki/Intellij-products-instructions)) |
| **PhpStorm** (2016.2+, [instructions](https://github.com/tonsky/FiraCode/wiki/IntelliJ-products-instructions)) |
| **PyCharm** (2016.2+, [instructions](https://github.com/tonsky/FiraCode/wiki/IntelliJ-products-instructions)) |
| **QOwnNotes** (21.16.6+) |
| **QtCreator** |
| **Rider** |
| **RStudio** ([instructions](https://github.com/tonsky/FiraCode/wiki/RStudio-instructions)) |
| **RubyMine** (2016.2+, [instructions](https://github.com/tonsky/FiraCode/wiki/Intellij-products-instructions)) |
| **RubyMine** (2016.2+, [instructions](https://github.com/tonsky/FiraCode/wiki/IntelliJ-products-instructions)) |
| **Scratch** |
| **Scribus** (1.5.3+) |
| **SublimeText** (3146+) |
| **Spyder IDE** (only with Qt5) |
| **SuperCollider 3** |
| **TeXShop**|
| **TextAdept** (Linux, macOS) |
| **TextEdit** |
| **TextMate 2** |
| **UltraEdit (UEX)** (Linux) |
| **VimR** ([instructions](https://github.com/qvacua/vimr/wiki#ligatures)) |
| **Visual Studio** (2015+, [instructions](https://github.com/tonsky/FiraCode/wiki/Visual-Studio-Instructions)) |
| **Visual Studio Code** ([instructions](https://github.com/tonsky/FiraCode/wiki/VS-Code-Instructions)) |
| **WebStorm** (2016.2+, [instructions](https://github.com/tonsky/FiraCode/wiki/Intellij-products-instructions)) |
| **WebStorm** (2016.2+, [instructions](https://github.com/tonsky/FiraCode/wiki/IntelliJ-products-instructions)) |
| **Xamarin Studio/Monodevelop** |
| **Xcode** (8.0+, otherwise [with plugin](https://github.com/robertvojta/LigatureXcodePlugin)) |
| **Xi** |
@ -141,12 +162,28 @@ Unicode coverage makes Fira Code a great choice for mathematical writing:
### Terminal compatibility list
| Platform | Works | Doesnt work |
|----------------|-------|--------------|
| macOS | Hyper (see [#3607](https://github.com/vercel/hyper/issues/3607))<br>iTerm 2<br>Kitty<br>Terminal.app<br>ZOC | Alacritty |
| Windows | Hyper (see [#3607](https://github.com/vercel/hyper/issues/3607))<br>Mintty<br>Token2Shell<br>Windows Terminal | Alacritty<br>Cmder<br>ConEmu<br>PuTTY<br>Windows Console<br>ZOC |
| Linux | Hyper (see [#3607](https://github.com/vercel/hyper/issues/3607))<br>Kitty<br>Konsole<br>QTerminal<br>Termux<br>st ([patch](https://st.suckless.org/patches/ligatures/)) | Alacritty<br>GNOME Terminal<br>libvte-based terminals ([bug report](https://bugzilla.gnome.org/show_bug.cgi?id=584160)): <ul><li>gtkterm<li>guake<li>LXTerminal<li> sakura<li>Terminator<li>xfce4-terminal</ul>mate-terminal<br>rxvt<br>terminology<br>xterm
| ChromeOS | crosh ([instructions](https://github.com/tonsky/FiraCode/wiki/ChromeOS-Terminal)) | |
| Works | Doesnt work |
|-------|--------------|
| crosh ([instructions](https://github.com/tonsky/FiraCode/wiki/ChromeOS-Terminal)) | Alacritty |
| Hyper (see [#3607](https://github.com/vercel/hyper/issues/3607)) | Asbru Connection Manager |
| iTerm 2 | Cmder |
| Kitty | ConEmu |
| Konsole | GNOME Terminal ([ticket](https://gitlab.gnome.org/GNOME/vte/-/issues/192)) |
| Mintty | gtkterm ([ticket](https://gitlab.gnome.org/GNOME/vte/-/issues/1661)) |
| QTerminal | guake ([ticket](https://gitlab.gnome.org/GNOME/vte/-/issues/1661)) |
| st ([patch](https://st.suckless.org/patches/ligatures/)) | LXTerminal ([ticket](https://gitlab.gnome.org/GNOME/vte/-/issues/1661)) |
| Tabby | mate-terminal |
| Terminal.app | PuTTY |
| Termux | rxvt |
| Token2Shell | sakura ([ticket](https://gitlab.gnome.org/GNOME/vte/-/issues/1661)) |
| Wezs terminal | SecureCRT
| Windows Terminal | Terminator ([ticket](https://gitlab.gnome.org/GNOME/vte/-/issues/1661)) |
| ZOC (macOS) | terminology |
| | Tilix |
| | Windows Console |
| | xfce4-terminal ([ticket](https://gitlab.gnome.org/GNOME/vte/-/issues/1661)) |
| | xterm |
| | ZOC (Windows) |
### Browser support
@ -230,6 +267,23 @@ make
make package
```
If you want to *permanently enable* certain style sets or character variations, maybe because your editor of choice does not allow you to toggle these individually, you can provide the desired features as a comma separated list to the build script via the `-f / --features` flag.<br>Default: none.
To separate different versions of your font you can specify the desired font family name with the `-n / --family-name` flag. The special value 'features' will append a sorted, space separated list of enabled features to the default family name.<br>Default: "Fira Code"
You can also limit the font weights that will be created with the `-w / --weights` option.<br>Default: "Light,Regular,Retina,Medium,SemiBold,Bold"
```bash
# locally in your shell
./script/build.sh --features "ss02,ss08,ss10,cv03,cv07,cv14" --family-name "Fira Code straight" --weights "Regular,Bold"
# or via a docker container (creates the family name 'Fira Code cv01 cv02 cv06 cv31 onum ss01 ss03 ss04 zero')
docker run --rm -v "${PWD}":/opt tonsky/firacode:latest ./script/build.sh -f "cv01,cv02,cv06,ss01,zero,onum,ss03,ss04,cv31" -n "features"
# in Git Bash from Git for Windows, or any other MSYS2 based shell, you might need to disable path conversion
MSYS2_ARG_CONV_EXCL="*" docker run --rm -v "${PWD}":/opt tonsky/firacode:latest ./script/build.sh -f "ss02,ss03,ss04,ss05,ss06,ss07"
```
### Credits
- Author: Nikita Prokopov [@nikitonsky](https://twitter.com/nikitonsky)

284
README_CN.md Normal file
View file

@ -0,0 +1,284 @@
## Fira Code: 免费的编程连字等宽字体
![Fira Code](./extras/logo.svg)
### 问题
开发者们使用的多标记,通常都是用几个字符编码。对于人的大脑来说,像`->`、`<=`或`:=`这样的序列是单一的逻辑标记即使它们在屏幕上显示两到三个字符。您的眼睛并非无消耗的来扫描、解析并将多个字符连接到一个逻辑字符中。理想情况下所有编程语言都应该为操作符设计成熟的Unicode符号但现在还不是这样。
### 解决方案
Fira Code是一种免费的等宽字体包含常用的编程语言中多种字符组合的连字。这只是一个字体呈现功能底层代码仍然与ASCII兼容。这有助于更快地阅读和理解代码。对于一些常见的序列如`..`或`//`,连字允许我们纠正间距。
### 下载和安装
<a href="https://github.com/tonsky/FiraCode/releases/download/6.2/Fira_Code_v6.2.zip"><img alt="Fira_Code_v6.2.zip - December 6, 2021 - 2.5 MB" src="./extras/download.png" width="520"></a>
下一步:
- [如何安装](https://github.com/tonsky/FiraCode/wiki)
- [疑难解答](https://github.com/tonsky/FiraCode/wiki#troubleshooting)
- [相关新闻](https://twitter.com/FiraCode)
### 赞助商
<a href="https://github.com/sponsors/tonsky" target="_blank"><img alt="Sponsor" src="./extras/sponsor.png"></a>
Fira Code 是个人的空闲时间进行的项目,缺乏资金但有大量的 [功能请求积压](https://github.com/tonsky/FiraCode/issues)。如果你也热爱这个项目, 请考虑通过 [GitHub Sponsors](https://github.com/sponsors/tonsky) 或 [Patreon](https://patreon.com/tonsky) 来支持它的发展。任何帮助都很重要!
非常感谢:
<table>
<td align="center">
<a href="https://workos.com/?utm_campaign=github_repo&utm_medium=referral&utm_content=firacode&utm_source=github">
<div>
<img src="https://user-images.githubusercontent.com/629429/151508669-efb4c3b3-8fe3-45eb-8e47-e9510b5f0af1.svg" width="290" alt="WorkOS">
</div>
<b>Your app, enterprise-ready.</b>
<div>
<sub>Start selling to enterprise customers with just a few lines of code. Add Single Sign-On (and more) in minutes instead of months.</sup>
</div>
</a>
</td>
</table>
### 字体里都有哪些特征?
左侧Fira Code中呈现的连字。右侧没有连字的相同字符序列。
<img src="./extras/ligatures.png" width="754">
Fira Code 带有种类繁多的箭头。更棒的是:您可以随心所欲地制作它们,并根据需要组合开始/中间/结束片段!
<img src="./extras/arrows.png" width="754">
Fira Code 不仅与连字有关,还对标点符号和频繁的字母对进行了一些微调。
<img src="./extras/typographics.png" width="754">
Fira Code 带有各种各样的箭头,更棒的是,您可以随心所欲地制作它们,并且可以任意组合开始/中间/结束片段![如何启用](https://github.com/tonsky/FiraCode/wiki/How-to-enable-stylistic-sets)
<img src="./extras/character_variants.png" width="754">
可以使用样式集/字符变体更改或启用某些连字:
<img src="./extras/ligature_variants.png" width="754">
作为一种编程字体Fira Code 对 ASCII/框绘图、powerline和其他形式的控制台 UI 具有出色的支持:
<img src="./extras/console.png" width="754">
Fira Code 是第一个提供专用字形来渲染进度条的编程字体:
<img src="./extras/progress.png" width="754">
在运行中:
<img src="./extras/progress.gif" width="560">
我们希望更多的编程字体能够采用这个约定并发布自己的版本。
Unicode 覆盖使 Fira Code 成为数学写作的绝佳选择:
<img src="./extras/math.png" width="754">
### 它看起来怎样?
<img src="./extras/samples.png" width="754">
<img src="./extras/samples2.png" width="754">
### 编辑器兼容性列表
| 支持 | 不支持 |
|-------|----------------|
| **Abricotine** | **Arduino IDE** |
| **Android Studio** (2.3+, [说明](https://github.com/tonsky/FiraCode/wiki/IntelliJ-products-instructions)) | **Adobe Dreamweaver** |
| **Anjuta** (除非在 EOF) | **Delphi IDE** |
| **AppCode** (2016.2+, [说明](https://github.com/tonsky/FiraCode/wiki/IntelliJ-products-instructions)) | Standalone **Emacs** ([解决方法](https://github.com/tonsky/FiraCode/wiki/Emacs-instructions)) | **IDLE** |
| **Atom** 1.1 或更新版本 ([说明](https://github.com/tonsky/FiraCode/wiki/Atom-instructions)) | **KDevelop 4** |
| **BBEdit** (14.6+, [说明](https://github.com/tonsky/FiraCode/wiki/BBEdit-instructions)) | **Monkey Studio IDE** |
| **Brackets** (使用 [此插件](https://github.com/polo2ro/firacode-in-brackets)) |
| **Chocolat** | **UltraEdit** |
| **CLion** (2016.2+, [说明](https://github.com/tonsky/FiraCode/wiki/IntelliJ-products-instructions)) |
| **Cloud9** ([说明](https://github.com/tonsky/FiraCode/wiki/Cloud9-Instructions)) |
| **Coda 2** |
| **CodeLite** |
| **CodeRunner** |
| **Comma** (在 首选项 > 编辑器 > 字体 中) |
| **CotEditor** |
| **Eclipse** |
| **elementary Code** |
| **Geany** (1.37+) |
| **gEdit / Pluma** |
| **GNOME Builder** |
| **Godot** |
| **GoormIDE** ([说明](https://github.com/tonsky/FiraCode/wiki/GoormIDE-Instructions)) |
| **gVim** ([Windows](https://github.com/tonsky/FiraCode/issues/462), [GTK](https://vimhelp.org/options.txt.html#%27guiligatures%27)) |
| **IntelliJ IDEA** (2016.2+, [说明](https://github.com/tonsky/FiraCode/wiki/IntelliJ-products-instructions)) |
| **Kate, KWrite** |
| **KDevelop 5+** |
| **Komodo** |
| **Leafpad** |
| **LibreOffice** |
| **LightTable** ([说明](https://github.com/tonsky/FiraCode/wiki/LightTable-instructions)) |
| **LINQPad** |
| **MacVim** 7.4 或更新版本 ([说明](https://github.com/tonsky/FiraCode/wiki/MacVim-instructions)) |
| **Mancy** |
| **MATLAB** ([说明](https://github.com/tonsky/FiraCode/wiki/MATLAB-for-Windows-Instructions)) |
| **Meld** |
| **Mousepad** |
| **NeoVim-gtk** |
| **NetBeans** |
| **Notepad** (Windows) |
| **Notepad++** ([解决方法](https://github.com/notepad-plus-plus/notepad-plus-plus/issues/2287#issuecomment-256638098)) |
| **Notepad3** ([说明](https://github.com/rizonesoft/Notepad3/issues/361#issuecomment-365977420))|
| **Nova** |
| **PhpStorm** (2016.2+, [说明](https://github.com/tonsky/FiraCode/wiki/IntelliJ-products-instructions)) |
| **PyCharm** (2016.2+, [说明](https://github.com/tonsky/FiraCode/wiki/IntelliJ-products-instructions)) |
| **QOwnNotes** (21.16.6+) |
| **QtCreator** |
| **Rider** |
| **RStudio** ([说明](https://github.com/tonsky/FiraCode/wiki/RStudio-instructions)) |
| **RubyMine** (2016.2+, [说明](https://github.com/tonsky/FiraCode/wiki/IntelliJ-products-instructions)) |
| **Scratch** |
| **Scribus** (1.5.3+) |
| **SublimeText** (3146+) |
| **Spyder IDE** (仅适用于 Qt5) |
| **SuperCollider 3** |
| **TeXShop**|
| **TextAdept** (Linux, macOS) |
| **TextEdit** |
| **TextMate 2** |
| **VimR** ([说明](https://github.com/qvacua/vimr/wiki#ligatures)) |
| **Visual Studio** (2015+, [说明](https://github.com/tonsky/FiraCode/wiki/Visual-Studio-Instructions)) |
| **Visual Studio Code** ([说明](https://github.com/tonsky/FiraCode/wiki/VS-Code-Instructions)) |
| **WebStorm** (2016.2+, [说明](https://github.com/tonsky/FiraCode/wiki/IntelliJ-products-instructions)) |
| **Xamarin Studio/Monodevelop** |
| **Xcode** (8.0+, 否则 [使用插件](https://github.com/robertvojta/LigatureXcodePlugin)) |
| **Xi** |
| Probably work: **Smultron, Vico** | Under question: **Code::Blocks IDE** |
### 终端兼容性列表
| 支持 | 不支持 |
|-------|--------------|
| crosh ([说明](https://github.com/tonsky/FiraCode/wiki/ChromeOS-Terminal)) | Alacritty |
| Hyper (参见 [#3607](https://github.com/vercel/hyper/issues/3607)) | Cmder |
| iTerm 2 | ConEmu |
| Kitty | GNOME Terminal |
| Konsole | gtkterm ([需求](https://gitlab.gnome.org/GNOME/vte/-/issues/1661)) |
| Mintty | guake ([需求](https://gitlab.gnome.org/GNOME/vte/-/issues/1661)) |
| QTerminal | LXTerminal ([需求](https://gitlab.gnome.org/GNOME/vte/-/issues/1661)) |
| st ([补丁](https://st.suckless.org/patches/ligatures/)) | mate-terminal |
| Terminal.app | PuTTY |
| Termux | rxvt |
| Token2Shell | sakura ([需求](https://gitlab.gnome.org/GNOME/vte/-/issues/1661)) |
| Wezs terminal | Terminator ([需求](https://gitlab.gnome.org/GNOME/vte/-/issues/1661)) |
| Windows Terminal | terminology |
| ZOC (macOS) | Windows Console |
| | xfce4-terminal ([需求](https://gitlab.gnome.org/GNOME/vte/-/issues/1661)) |
| | xterm |
| | ZOC (Windows) |
### 浏览器支持
```html
<!-- HTML -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/firacode@6.2.0/distr/fira_code.css">
```
```css
/* CSS */
@import url(https://cdn.jsdelivr.net/npm/firacode@6.2.0/distr/fira_code.css);
```
```css
/* Specify in CSS */
code { font-family: 'Fira Code', monospace; }
@supports (font-variation-settings: normal) {
code { font-family: 'Fira Code VF', monospace; }
}
```
- IE 10+, Edge Legacy: 启用 `font-feature-settings: "calt";`
- Firefox
- Safari
- Chromium-based browsers (Chrome, Opera)
- ACE
- CodeMirror (enable with `font-variant-ligatures: contextual;`)
### 使用 Fira Code的项目
- [CodePen](https://codepen.io/)
- [Blink Shell](http://www.blink.sh/)
- [Klipse](http://app.klipse.tech/)
- [IlyaBirman.net](http://ilyabirman.net/)
- [EvilMartians.com](https://evilmartians.com/)
- [Web Maker](https://webmakerapp.com/)
- [FromScratch](https://fromscratch.rocks/)
- [PEP20.org](https://pep20.org/)
### 备选方案
带连字的免费等宽字体:
- [Hasklig](https://github.com/i-tu/Hasklig)
- [Monoid](http://larsenwork.com/monoid/)
- [Fixedsys Excelsior](https://github.com/kika/fixedsys)
- [Iosevka](https://be5invis.github.io/Iosevka/)
- [DejaVu Sans Code](https://github.com/SSNikolaevich/DejaVuSansCode)
- [Victor Mono](https://rubjo.github.io/victor-mono/)
- [Cascadia Code](https://github.com/microsoft/cascadia-code)
- [JetBrains Mono](https://github.com/JetBrains/JetBrainsMono)
带连字的付费等宽字体:
- [PragmataPro](http://www.fsd.it/fonts/pragmatapro.htm)
- [Mono Lisa](https://www.monolisa.dev/)
### 在本地构建 Fira Code
如果您想更改 FiraCode.glyphs 并自己构建 OTF / TTF / WOFF 文件,这是我在 macOS 上使用的设置:
```bash
# 安装所有编译需要的工具
./script/bootstrap_macos.sh
# 编译字体文件
./script/build.sh
# 将otf文件安装到 ~/Library/Fonts
cp distr/otf/*.otf ~/Library/Fonts
```
或者,您可以使用 Docker 构建 Fira Code
```bash
# install dependencies in a container and build the font files
make
# package the font files from dist/ into a zip
make package
```
如果你想要*永久开启*某个特定的文体集或者字符变种,但你的编辑器有可能不允许你单独开启它们,你可以将你想要的功能作为一个用逗号分隔的列表,通过 `-f / --features` 标志来加入到编译脚本中。<br>默认:无。
要分隔不同的字体版本的话,你可以用 `-n / --family-name` 标志来指定你所需的字体系列名称。特殊值 'features' 将在默认的系列名称后面添加一个有序的、空格分隔的列表,列表内为已经启用的功能。<br>默认:"Fira Code"
你也可以用 `-w / --weights` 选项来限制将要被编译的字体的重量。<br>默认:"Light,Regular,Retina,Medium,SemiBold,Bold"
```bash
# 在你本地的shell中
./script/build.sh --features "ss02,ss08,ss10,cv03,cv07,cv14" --family-name "Fira Code straight" --weights "Regular,Bold"
# 或者通过一个docker容器 (创建系列名为:'Fira Code cv01 cv02 cv06 cv31 onum ss01 ss03 ss04 zero')
docker run --rm -v "${PWD}":/opt tonsky/firacode:latest ./script/build.sh -f "cv01,cv02,cv06,ss01,zero,onum,ss03,ss04,cv31" -n "features"
```
### 制作人员
- 作者: Nikita Prokopov [@nikitonsky](https://twitter.com/nikitonsky)
- 基于此项目: [Fira Mono](https://github.com/mozilla/Fira)
- 灵感来源: [Hasklig](https://github.com/i-tu/Hasklig)
- 翻译:墨抒颖[@moshuying](https://github.com/moshuying)

291
README_JA.md Normal file
View file

@ -0,0 +1,291 @@
## Fira Code: プログラミング合字のフリー等幅フォント
![Fira Code](./extras/logo.svg)
[English](./README.md) | [Español](./LEEME.md) | [简体中文](./README_CN.md) で読む
### 問題点
プログラマは多くの記号を使用し、しばしば数文字で符号化されます。人間の脳にとって`->`、`<=`、`:=`といったシーケンスは、たとえ画面上で 2 文字や 3 文字になったとしても、単一の論理トークンである。あなたの目は、複数の文字をスキャンし、解析し、1 つの論理的なものに結合するために、ゼロではない量のエネルギーを費やしているのです。理想を言えば、すべてのプログラミング言語が演算子のための本格的なユニコード記号を備えて設計されるべきですが、まだそうではありません。
### 解決法
Fira Code は、一般的なプログラミングの複数文字の組み合わせのための合字を含む無料の等幅フォントです。これは単にフォントのレンダリング機能であり、基礎となるコードは ASCII 互換のままです。これによりコードをより速く読み、理解することができます。`...` や `//` のような頻度の高い文字列は、合字によって間隔を修正することができます。
### ダウンロードとインストール
<a href="https://github.com/tonsky/FiraCode/releases/download/6.2/Fira_Code_v6.2.zip"><img alt="Fira_Code_v6.2.zip - December 6, 2021 - 2.5 MB" src="./extras/download.png" width="520"></a>
次は:
- [インストール方法](https://github.com/tonsky/FiraCode/wiki)
- [トラブルシューティング](https://github.com/tonsky/FiraCode/wiki#troubleshooting)
- [ニュースとアップデート](https://twitter.com/FiraCode)
### スポンサー
Fira Code は個人的なフリータイムのプロジェクトで、資金はなく膨大な[機能リクエストバックログ](https://github.com/tonsky/FiraCode/issues)を抱えています。もし気に入っていただけたなら、[GitHub Sponsors](https://github.com/sponsors/tonsky) または [Patreon](https://patreon.com/tonsky) で開発をサポートすることを検討してください。どんな支援でもかまいません!
大いに感謝します:
<table>
<td align="center">
<a href="https://workos.com/?utm_campaign=github_repo&utm_medium=referral&utm_content=firacode&utm_source=github">
<div>
<img src="https://user-images.githubusercontent.com/629429/151508669-efb4c3b3-8fe3-45eb-8e47-e9510b5f0af1.svg" width="290" alt="WorkOS">
</div>
<b>Your app, enterprise-ready.</b>
<div>
<sub>Start selling to enterprise customers with just a few lines of code. Add Single Sign-On (and more) in minutes instead of months.</sup>
</div>
</a>
</td>
</table>
### 何が入っているのでしょうか?
左: Fira Code で描画される合字。右: 合字のない同じ文字列。
<img src="./extras/ligatures.png" width="754">
Fira Code には、膨大な種類の矢印が用意されています。さらに、好きな長さにしたり、始点・中間・終点の断片を自由に組み合わせたりすることができます!
<img src="./extras/arrows.png" width="754">
Fira Code は合字だけではありません。句読点や頻度の高い文字ペアについても、いくつかの微調整が行われています。
<img src="./extras/typographics.png" width="754">
Fira Code には、数種類の文字バリエーション(`cv01`、`cv02` など)、スタイルセット(`ss01`、`ss02` など)、その他のフォント機能(`zero`、`onum`、`calt` など)があり、誰もが自分に最適なものを選ぶことができます。[有効にする方法](https://github.com/tonsky/FiraCode/wiki/How-to-enable-stylistic-sets)
<img src="./extras/character_variants.png" width="754">
一部の合字は、スタイルセット/文字バリアントを使用して変更または有効にすることができます:
<img src="./extras/ligature_variants.png" width="754">
プログラミング用フォントである Fira Code は、ASCII/ボックスドローイング、パワーライン、その他の形式のコンソール UI に素晴らしい対応をしています:
<img src="./extras/console.png" width="754">
Fira Code は、プログレスバーを描画するための専用グリフを提供する最初のプログラミングフォントです:
<img src="./extras/progress.png" width="754">
動作すると:
<img src="./extras/progress.gif" width="560">
より多くのプログラミング用フォントがこの規約を採用し、独自のバージョンを出荷することを望んでいます。
ユニコード対応により、Fira Code は数学の記述に最適です:
<img src="./extras/math.png" width="754">
### どのように見えるのでしょうか?
<img src="./extras/samples.png" width="754">
<img src="./extras/samples2.png" width="754">
### エディタ互換性リスト
| サポート | 非サポート |
|-------|----------------|
| **Arduino IDE** (2.0+,same instructions as [vscode](https://github.com/tonsky/FiraCode/wiki/VS-Code-Instructions)) | **Adobe Dreamweaver** |
| **Abricotine** | **Delphi IDE** |
| **Android Studio** (2.3+, [説明](https://github.com/tonsky/FiraCode/wiki/IntelliJ-products-instructions)) | Standalone **Emacs** ([回避方法](https://github.com/tonsky/FiraCode/wiki/Emacs-instructions)) |
| **Anjuta** (unless at the EOF) | **IDLE** |
| **AppCode** (2016.2+, [説明](https://github.com/tonsky/FiraCode/wiki/IntelliJ-products-instructions)) | **KDevelop 4** |
| **Atom** 1.1 or newer ([説明](https://github.com/tonsky/FiraCode/wiki/Atom-instructions)) | **Monkey Studio IDE** |
| **BBEdit** (14.6+ [説明](https://github.com/tonsky/FiraCode/wiki/BBEdit-instructions)) | **UltraEdit** (Windows) |
| **Brackets** (with [this plugin](https://github.com/polo2ro/firacode-in-brackets)) |
| **Chocolat** |
| **CLion** (2016.2+, [説明](https://github.com/tonsky/FiraCode/wiki/IntelliJ-products-instructions)) |
| **Cloud9** ([説明](https://github.com/tonsky/FiraCode/wiki/Cloud9-Instructions)) |
| **Coda 2** |
| **CodeLite** |
| **CodeRunner** |
| **Comma** (Under: Preferences > Editor > Font) |
| **CotEditor** |
| **Eclipse** |
| **elementary Code** |
| **Geany** (1.37+) |
| **gEdit / Pluma** |
| **GNOME Builder** |
| **Godot** |
| **GoormIDE** ([説明](https://github.com/tonsky/FiraCode/wiki/GoormIDE-Instructions)) |
| **gVim** ([Windows](https://github.com/tonsky/FiraCode/issues/462), [GTK](https://vimhelp.org/options.txt.html#%27guiligatures%27)) |
| **IntelliJ IDEA** (2016.2+, [説明](https://github.com/tonsky/FiraCode/wiki/IntelliJ-products-instructions)) |
| **Kate, KWrite** |
| **KDevelop 5+** |
| **Komodo** |
| **Leafpad** |
| **LibreOffice** |
| **LightTable** ([説明](https://github.com/tonsky/FiraCode/wiki/LightTable-instructions)) |
| **LINQPad** |
| **MacVim** 7.4 or newer ([説明](https://github.com/tonsky/FiraCode/wiki/MacVim-instructions)) |
| **Mancy** |
| **MATLAB** ([説明](https://github.com/tonsky/FiraCode/wiki/MATLAB-for-Windows-Instructions)) |
| **Meld** |
| **Mousepad** |
| **NeoVim-gtk** |
| **NetBeans** |
| **Notepad** (Windows) |
| **Notepad++** ([回避方法](https://github.com/notepad-plus-plus/notepad-plus-plus/issues/2287#issuecomment-256638098)) |
| **Notepad3** ([説明](https://github.com/rizonesoft/Notepad3/issues/361#issuecomment-365977420))|
| **Nova** |
| **PhpStorm** (2016.2+, [説明](https://github.com/tonsky/FiraCode/wiki/IntelliJ-products-instructions)) |
| **PyCharm** (2016.2+, [説明](https://github.com/tonsky/FiraCode/wiki/IntelliJ-products-instructions)) |
| **QOwnNotes** (21.16.6+) |
| **QtCreator** |
| **Rider** |
| **RStudio** ([説明](https://github.com/tonsky/FiraCode/wiki/RStudio-instructions)) |
| **RubyMine** (2016.2+, [説明](https://github.com/tonsky/FiraCode/wiki/IntelliJ-products-instructions)) |
| **Scratch** |
| **Scribus** (1.5.3+) |
| **SublimeText** (3146+) |
| **Spyder IDE** (Qt5 のみ) |
| **SuperCollider 3** |
| **TeXShop**|
| **TextAdept** (Linux, macOS) |
| **TextEdit** |
| **TextMate 2** |
| **UltraEdit (UEX)** (Linux) |
| **VimR** ([説明](https://github.com/qvacua/vimr/wiki#ligatures)) |
| **Visual Studio** (2015+, [説明](https://github.com/tonsky/FiraCode/wiki/Visual-Studio-Instructions)) |
| **Visual Studio Code** ([説明](https://github.com/tonsky/FiraCode/wiki/VS-Code-Instructions)) |
| **WebStorm** (2016.2+, [説明](https://github.com/tonsky/FiraCode/wiki/IntelliJ-products-instructions)) |
| **Xamarin Studio/Monodevelop** |
| **Xcode** (8.0+, それ以外は[プラグイン付き](https://github.com/robertvojta/LigatureXcodePlugin)) |
| **Xi** |
| Probably work: **Smultron, Vico** | Under question: **Code::Blocks IDE** |
### ターミナル互換性リスト
| サポート | 非サポート |
|-------|--------------|
| crosh ([説明](https://github.com/tonsky/FiraCode/wiki/ChromeOS-Terminal)) | Alacritty |
| Hyper ([#3607](https://github.com/vercel/hyper/issues/3607) を確認) | Asbru Connection Manager |
| iTerm 2 | Cmder |
| Kitty | ConEmu |
| Konsole | GNOME Terminal |
| Mintty | gtkterm ([チケット](https://gitlab.gnome.org/GNOME/vte/-/issues/1661)) |
| QTerminal | guake ([チケット](https://gitlab.gnome.org/GNOME/vte/-/issues/1661)) |
| st ([パッチ](https://st.suckless.org/patches/ligatures/)) | LXTerminal ([チケット](https://gitlab.gnome.org/GNOME/vte/-/issues/1661)) |
| Tabby | mate-terminal |
| Terminal.app | PuTTY |
| Termux | rxvt |
| Token2Shell | sakura ([チケット](https://gitlab.gnome.org/GNOME/vte/-/issues/1661)) |
| Wezs terminal | SecureCRT
| Windows Terminal | Terminator ([チケット](https://gitlab.gnome.org/GNOME/vte/-/issues/1661)) |
| ZOC (macOS) | terminology |
| | Tilix |
| | Windows Console |
| | xfce4-terminal ([チケット](https://gitlab.gnome.org/GNOME/vte/-/issues/1661)) |
| | xterm |
| | ZOC (Windows) |
### ブラウザサポート
```html
<!-- HTML -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/firacode@6.2.0/distr/fira_code.css">
```
```css
/* CSS */
@import url(https://cdn.jsdelivr.net/npm/firacode@6.2.0/distr/fira_code.css);
```
```css
/* Specify in CSS */
code { font-family: 'Fira Code', monospace; }
@supports (font-variation-settings: normal) {
code { font-family: 'Fira Code VF', monospace; }
}
```
- IE 10+, Edge Legacy: `font-feature-settings: "calt";` で有効にします
- Firefox
- Safari
- Chromium-based browsers (Chrome, Opera)
- ACE
- CodeMirror (`font-variant-ligatures: contextual;` で有効にします)
### Fira Code を使用したプロジェクト
- [CodePen](https://codepen.io/)
- [Blink Shell](http://www.blink.sh/)
- [Klipse](http://app.klipse.tech/)
- [IlyaBirman.net](http://ilyabirman.net/)
- [EvilMartians.com](https://evilmartians.com/)
- [Web Maker](https://webmakerapp.com/)
- [FromScratch](https://fromscratch.rocks/)
- [PEP20.org](https://pep20.org/)
### 代替品
合字のある無料等幅フォント:
- [Hasklig](https://github.com/i-tu/Hasklig)
- [Monoid](http://larsenwork.com/monoid/)
- [Fixedsys Excelsior](https://github.com/kika/fixedsys)
- [Iosevka](https://be5invis.github.io/Iosevka/)
- [DejaVu Sans Code](https://github.com/SSNikolaevich/DejaVuSansCode)
- [Victor Mono](https://rubjo.github.io/victor-mono/)
- [Cascadia Code](https://github.com/microsoft/cascadia-code)
- [JetBrains Mono](https://github.com/JetBrains/JetBrainsMono)
合字のある有償等幅フォント:
- [PragmataPro](http://www.fsd.it/fonts/pragmatapro.htm)
- [Mono Lisa](https://www.monolisa.dev/)
### Fira Code をローカルでビルドする
FiraCode.glyphs を変更し、OTF/TTF/WOFF ファイルを自分でビルドしたい場合、私が macOS で使用している設定は次のとおりです:
```bash
# 必要なビルドツールをすべてインストール
./script/bootstrap_macos.sh
# フォントファイルのビルド
./script/build.sh
# OTF を ~/Library/Fonts にインストール
cp distr/otf/*.otf ~/Library/Fonts
```
または、Docker を使用して Fira Code を構築することもできます:
```bash
# コンテナ内に依存関係をインストールし、フォントファイルをビルド
make
# dist/ のフォントファイルを zip にまとめる
make package
```
特定のスタイルセットやキャラクタバリエーションを *永久的に* 有効にしたい場合、おそらくあなたの選んだエディタではこれらを個別に切り替えることができないため、`-f / --features` フラグでビルドスクリプトにカンマ区切りリストとして希望の機能を提供することができます。<br>デフォルト: なし。
異なるバージョンのフォントを分けるために、`-n / --family-name` フラグで希望のフォントファミリー名を指定することができます。特別な値 'features' を指定すると、有効な機能をソートしてスペースで区切ったリストをデフォルトのファミリー名に追加します。<br>デフォルト: "Fira Code"
また、`-w / --weights` オプションで、作成されるフォントのウェイトを制限することができます。<br>デフォルト: "Light,Regular,Retina,Medium,SemiBold,Bold"
```bash
# ローカルでシェル内
./script/build.sh --features "ss02,ss08,ss10,cv03,cv07,cv14" --family-name "Fira Code straight" --weights "Regular,Bold"
# または Docker コンテナ経由(ファミリー名 'Fira Code cv01 cv02 cv06 cv31 onum ss01 ss03 ss04 zero' を作成)
docker run --rm -v "${PWD}":/opt tonsky/firacode:latest ./script/build.sh -f "cv01,cv02,cv06,ss01,zero,onum,ss03,ss04,cv31" -n "features"
# Git for Windows の Git Bash やその他の MSYS2 ベースのシェルで使用する場合は、パス変換を無効にする必要があるかもしれません
MSYS2_ARG_CONV_EXCL="*" docker run --rm -v "${PWD}":/opt tonsky/firacode:latest ./script/build.sh -f "ss02,ss03,ss04,ss05,ss06,ss07"
```
### クレジット
- 作者: Nikita Prokopov [@nikitonsky](https://twitter.com/nikitonsky)
- 基にした: [Fira Mono](https://github.com/mozilla/Fira)
- インスパイアされた: [Hasklig](https://github.com/i-tu/Hasklig)

View file

@ -20,12 +20,10 @@
(let [[_ name] (re-matches #"([^.]+)\.fea" (.getName file))
code (slurp file)
[_ notes code'] (re-matches #"(?s)#([^\n]+)\n(.*)" code)
feature (if notes
{:code (str/trim code')
:name name
:notes (str/trim notes)}
{:code (str/trim code)
:name name})]
feature (cond-> {:code (str/trim (or code' code))
:name name}
notes
(assoc :notes (str/trim notes)))]
(glyphs/set-feature font name feature)))

72
clojure/user.clj Normal file
View file

@ -0,0 +1,72 @@
(ns user
(:require
[clojure.core.server :as server]
[clojure.java.io :as io]
[clojure.tools.namespace.repl :as ns]
[clojure.tools.namespace.track :as track]))
(ns/disable-reload!)
(ns/set-refresh-dirs "clojure")
(def *reloaded
(atom nil))
(add-watch #'ns/refresh-tracker ::watch
(fn [_ _ old new]
(when (empty? (::track/load new))
(reset! *reloaded (::track/load old)))))
(defn after-reload []
(let [cnt (count @*reloaded)]
(str "Reloaded " cnt " namespace" (when (> cnt 1) "s"))))
(defn reload []
(set! *warn-on-reflection* true)
; (set! *unchecked-math* :warn-on-boxed)
(let [res (ns/refresh :after 'user/after-reload)]
(if (instance? Throwable res)
(throw res)
res)))
(def p-lock
(Object.))
(defn p-pos []
(let [trace (->> (Thread/currentThread)
(.getStackTrace)
(seq))
el ^StackTraceElement (nth trace 4)]
(str "[" (clojure.lang.Compiler/demunge (.getClassName el)) " " (.getFileName el) ":" (.getLineNumber el) "]")))
(defn p-impl [position form res]
(let [form (clojure.walk/postwalk
(fn [form]
(if (and
(list? form)
(= 'user/p-impl (first form)))
(clojure.lang.TaggedLiteral/create 'p (nth form 3))
form))
form)]
(locking p-lock
(println (str position " #p " form " => " (pr-str res))))
res))
(defn p [form]
`(p-impl (p-pos) '~form ~form))
(defn -main [& args]
;; setup repl
(let [args (apply array-map args)
port (or
(some-> (get args "--port") parse-long)
(+ 1024 (rand-int 64512)))
file (io/file ".repl-port")]
(println "Started Server Socket REPL on port" port)
(spit file port)
(.deleteOnExit file)
(server/start-server
{:name "repl"
:port port
:accept 'clojure.core.server/repl
:server-daemon false})))

View file

@ -1,9 +1,5 @@
{:paths ["clojure"]
:deps {org.clojure/clojure {:mvn/version "1.10.1"}
org.flatland/ordered {:mvn/version "1.5.7"}
fipp/fipp {:mvn/version "0.6.18"}}
:aliases {
:nrepl {
:extra-deps {
nrepl/nrepl {:mvn/version "0.8.3"}
}}}}
:deps {org.clojure/clojure {:mvn/version "1.11.1"}
org.flatland/ordered {:mvn/version "1.5.7"}
fipp/fipp {:mvn/version "0.6.18"}
org.clojure/tools.namespace {:mvn/version "1.3.0"}}}

View file

@ -155,14 +155,11 @@ Additionally, if a Color Scheme is selected:
4. Select Fira Code as "Primary font" under Settings → Editor → Color Scheme → Color Scheme Font
BBEdit, TextWrangler
--------------------
BBEdit
------
Run in your terminal:
defaults write com.barebones.bbedit "EnableFontLigatures_Fira Code" -bool YES
Source: https://www.barebones.com/support/bbedit/ExpertPreferences.html
1. Install FiraCode as per the [macOS installation instructions](https://github.com/tonsky/FiraCode/wiki/Installing#macos)
2. Open BBEdit preferences, Editor Defaults, assign Fira Code as the Default font
Brackets
@ -476,7 +473,7 @@ In a workspace:
font-family: 'Fira Code';
}
4. Click Aplly or OK
4. Click Apply or OK
5. Happy coding!

View file

@ -1,7 +1,7 @@
@font-face {
font-family: 'Fira Code';
src: url('woff2/FiraCode-Light.woff2') format('woff2'),
url("woff/FiraCode-Light.woff") format("woff");
url('woff/FiraCode-Light.woff') format('woff');
font-weight: 300;
font-style: normal;
}
@ -9,7 +9,7 @@
@font-face {
font-family: 'Fira Code';
src: url('woff2/FiraCode-Regular.woff2') format('woff2'),
url("woff/FiraCode-Regular.woff") format("woff");
url('woff/FiraCode-Regular.woff') format('woff');
font-weight: 400;
font-style: normal;
}
@ -17,7 +17,7 @@
@font-face {
font-family: 'Fira Code';
src: url('woff2/FiraCode-Medium.woff2') format('woff2'),
url("woff/FiraCode-Medium.woff") format("woff");
url('woff/FiraCode-Medium.woff') format('woff');
font-weight: 500;
font-style: normal;
}
@ -25,7 +25,7 @@
@font-face {
font-family: 'Fira Code';
src: url('woff2/FiraCode-SemiBold.woff2') format('woff2'),
url("woff/FiraCode-SemiBold.woff") format("woff");
url('woff/FiraCode-SemiBold.woff') format('woff');
font-weight: 600;
font-style: normal;
}
@ -33,7 +33,7 @@
@font-face {
font-family: 'Fira Code';
src: url('woff2/FiraCode-Bold.woff2') format('woff2'),
url("woff/FiraCode-Bold.woff") format("woff");
url('woff/FiraCode-Bold.woff') format('woff');
font-weight: 700;
font-style: normal;
}
@ -41,8 +41,8 @@
@font-face {
font-family: 'Fira Code VF';
src: url('woff2/FiraCode-VF.woff2') format('woff2-variations'),
url('woff/FiraCode-VF.woff') format('woff-variations');
url('woff/FiraCode-VF.woff') format('woff-variations');
/* font-weight requires a range: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide#Using_a_variable_font_font-face_changes */
font-weight: 300 700;
font-style: normal;
}
}

BIN
extras/arrows_es.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

BIN
extras/console_es.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

BIN
extras/download_es.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

BIN
extras/ligatures_es.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 KiB

BIN
extras/math_es.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

BIN
extras/progress_es.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

BIN
extras/sponsor_es.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

BIN
extras/typographics_es.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

View file

@ -1,4 +1,4 @@
### Logical conjuntion/disjunction #738
### Logical conjunction/disjunction #738
lookup slash_backslash {
ignore sub @NotSpace slash' backslash;

12
features/cv01.fea Normal file
View file

@ -0,0 +1,12 @@
# alternate lowercase a
sub a by a.cv01;
sub aacute by aacute.cv01;
sub abreve by abreve.cv01;
sub acircumflex by acircumflex.cv01;
sub adieresis by adieresis.cv01;
sub agrave by agrave.cv01;
sub amacron by amacron.cv01;
sub aogonek by aogonek.cv01;
sub aring by aring.cv01;
sub atilde by atilde.cv01;

7
features/cv02.fea Normal file
View file

@ -0,0 +1,7 @@
# single storey lowercase g
sub g by g.cv02;
sub gbreve by gbreve.cv02;
sub gcircumflex by gcircumflex.cv02;
sub gcommaaccent by gcommaaccent.cv02;
sub gdotaccent by gdotaccent.cv02;

13
features/cv03.fea Normal file
View file

@ -0,0 +1,13 @@
# lowercase I without any horizontal decorations
sub i by i.cv03;
sub idotless by idotless.cv03;
sub iacute by iacute.cv03;
sub ibreve by ibreve.cv03;
sub icircumflex by icircumflex.cv03;
sub idieresis by idieresis.cv03;
sub idotaccent by idotaccent.cv03;
sub igrave by igrave.cv03;
sub imacron by imacron.cv03;
sub iogonek by iogonek.cv03;
sub itilde by itilde.cv03;

13
features/cv04.fea Normal file
View file

@ -0,0 +1,13 @@
# lowercase I with horizontal left line at the top
sub i by i.cv04;
sub idotless by idotless.cv04;
sub iacute by iacute.cv04;
sub ibreve by ibreve.cv04;
sub icircumflex by icircumflex.cv04;
sub idieresis by idieresis.cv04;
sub idotaccent by idotaccent.cv04;
sub igrave by igrave.cv04;
sub imacron by imacron.cv04;
sub iogonek by iogonek.cv04;
sub itilde by itilde.cv04;

13
features/cv05.fea Normal file
View file

@ -0,0 +1,13 @@
# lowercase I with horizontal left line at the top and right line at the bottom
sub i by i.cv05;
sub idotless by idotless.cv05;
sub iacute by iacute.cv05;
sub ibreve by ibreve.cv05;
sub icircumflex by icircumflex.cv05;
sub idieresis by idieresis.cv05;
sub idotaccent by idotaccent.cv05;
sub igrave by igrave.cv05;
sub imacron by imacron.cv05;
sub iogonek by iogonek.cv05;
sub itilde by itilde.cv05;

13
features/cv06.fea Normal file
View file

@ -0,0 +1,13 @@
# lowercase I with horizontal left line at the top and curved right hook at the bottom
sub i by i.cv06;
sub idotless by idotless.cv06;
sub iacute by iacute.cv06;
sub ibreve by ibreve.cv06;
sub icircumflex by icircumflex.cv06;
sub idieresis by idieresis.cv06;
sub idotaccent by idotaccent.cv06;
sub igrave by igrave.cv06;
sub imacron by imacron.cv06;
sub iogonek by iogonek.cv06;
sub itilde by itilde.cv06;

8
features/cv07.fea Normal file
View file

@ -0,0 +1,8 @@
# lowercase L without any horizontal decorations
sub l by l.cv07;
sub lacute by lacute.cv07;
sub lcaron by lcaron.cv07;
sub lcommaaccent by lcommaaccent.cv07;
sub ldot by ldot.cv07;
sub lslash by lslash.cv07;

8
features/cv08.fea Normal file
View file

@ -0,0 +1,8 @@
# lowercase L with horizontal left line at the top
sub l by l.cv08;
sub lacute by lacute.cv08;
sub lcaron by lcaron.cv08;
sub lcommaaccent by lcommaaccent.cv08;
sub ldot by ldot.cv08;
sub lslash by lslash.cv08;

8
features/cv09.fea Normal file
View file

@ -0,0 +1,8 @@
# lowercase L with horizontal left line at the top and right line at the bottom
sub l by l.cv09;
sub lacute by lacute.cv09;
sub lcaron by lcaron.cv09;
sub lcommaaccent by lcommaaccent.cv09;
sub ldot by ldot.cv09;
sub lslash by lslash.cv09;

8
features/cv10.fea Normal file
View file

@ -0,0 +1,8 @@
# lowercase L with horizontal left line at the top and horizontal base
sub l by l.cv10;
sub lacute by lacute.cv10;
sub lcaron by lcaron.cv10;
sub lcommaaccent by lcommaaccent.cv10;
sub ldot by ldot.cv10;
sub lslash by lslash.cv10;

4
features/cv11.fea Normal file
View file

@ -0,0 +1,4 @@
# zero without anything inside
sub zero by zero.cv11;
sub zero.tosf by zero.tosf.cv11;

4
features/cv12.fea Normal file
View file

@ -0,0 +1,4 @@
# zero with a backslash inside
sub zero by zero.cv12;
sub zero.tosf by zero.tosf.cv12;

4
features/cv13.fea Normal file
View file

@ -0,0 +1,4 @@
# zero with a vertical line inside
sub zero by zero.cv13;
sub zero.tosf by zero.tosf.cv13;

8
features/cv14.fea Normal file
View file

@ -0,0 +1,8 @@
# 3 with straight lines for the top half
sub three by three.cv14;
sub three.tosf by three.tosf.cv14;
sub threeinferior by threeinferior.cv14;
sub three.dnom by three.dnom.cv14;
sub three.numr by three.numr.cv14;
sub threesuperior by threesuperior.cv14;

View file

@ -1,4 +1,4 @@
# Name: Top-aligned asterisk
# Top-aligned asterisk
sub [asterisk asterisk.lc] by asterisk.cv15;
sub [asteriskmath asteriskmath.lc] by asteriskmath.cv15;

View file

@ -1,4 +1,4 @@
# Name: Hexagonal asterisk
# Hexagonal asterisk
sub [asterisk asterisk.lc asterisk.cv15 asteriskmath asteriskmath.lc asteriskmath.cv15]
by [asteriskmath asteriskmath.lc asteriskmath.cv15 asterisk asterisk.lc asterisk.cv15];

3
features/cv17.fea Normal file
View file

@ -0,0 +1,3 @@
# Top-aligned tilde
sub asciitilde by asciitilde.cv17;

5
features/cv18.fea Normal file
View file

@ -0,0 +1,5 @@
# percent sign with dots instead of hollow circles
sub percent by percent.cv18;
sub perthousand by perthousand.cv18;
sub percent_percent.liga by percent_percent.liga.cv18;

View file

@ -1,3 +1,3 @@
# Name: Less Than + Equal with horizontal bar
# Less Than + Equal with horizontal bar
sub less_equal.liga by less_equal.ss02;

View file

@ -1,4 +1,4 @@
# Name: Less Than + Equal as an arrow
# Less Than + Equal as an arrow
lookup less_equal_cv20 {
sub less_equal_start.seq less_equal.liga' by equal_end.seq;

View file

@ -1,4 +1,4 @@
# Name: =<
# =<
lookup equal_less_cv21 {
ignore sub equal equal' less;

View file

@ -1,4 +1,4 @@
# Name: =< with horizontal bar
# =< with horizontal bar
lookup equal_less_cv22 {
ignore sub equal equal' less;

View file

@ -1,3 +1,3 @@
# Name: >= with horizontal bar
# >= with horizontal bar
sub greater_equal.liga by greater_equal.ss02;

View file

@ -1,4 +1,4 @@
# Name: /= as not equal
# /= as not equal
lookup slash_equal_as_not_equal {
sub slash.spacer equal_end.seq' by exclam_equal.liga;

View file

@ -1,8 +1,8 @@
# Name: .- as ligature
# .- as ligature
lookup period_hyphen {
ignore sub period period' hyphen;
ignore sub period' hyphen hyphen;
sub period.spacer hyphen' by period_hyphen.cv32;
sub period.spacer hyphen' by period_hyphen.cv25;
sub period' hyphen by period.spacer;
} period_hyphen;
} period_hyphen;

View file

@ -1,4 +1,4 @@
# Name: :- as ligature
# :- as ligature
lookup colon_hyphen {
ignore sub colon colon' hyphen;

View file

@ -1,4 +1,4 @@
# Name: [] as ligature
# [] as ligature
lookup bracketleft_bracketright {
sub bracketleft.spacer bracketright' by bracketleft_bracketright.cv27;

View file

@ -1,4 +1,4 @@
# Name: {. .} as ligature
# {. .} as ligature
sub braceleft period' by bullet;
sub period' braceright by bullet;

5
features/cv29.fea Normal file
View file

@ -0,0 +1,5 @@
# Rounded curly braces {}
sub braceleft by braceleft.cv29;
sub braceright by braceright.cv29;
sub numbersign_braceleft.liga by numbersign_braceleft.liga.cv29;

18
features/cv30.fea Normal file
View file

@ -0,0 +1,18 @@
# longer pipe symbol
sub bar by bar.cv30;
sub bar_bar.liga by bar_bar.liga.cv30;
sub bar_bar_bar.liga by bar_bar_bar.liga.cv30;
sub bar_bar_equal_middle.seq by bar_bar_equal_middle.seq.cv30;
sub bar_equal_middle.seq by bar_equal_middle.seq.cv30;
sub bar_bar_equal_end.seq by bar_bar_equal_end.seq.cv30;
sub bar_bar_equal_start.seq by bar_bar_equal_start.seq.cv30;
sub bar_bar_hyphen_middle.seq by bar_bar_hyphen_middle.seq.cv30;
sub bar_hyphen_middle.seq by bar_hyphen_middle.seq.cv30;
sub bar_bar_hyphen_end.seq by bar_bar_hyphen_end.seq.cv30;
sub bar_bar_hyphen_start.seq by bar_bar_hyphen_start.seq.cv30;
sub bar_equal_end.seq by bar_equal_end.seq.cv30;
sub bar_equal_start.seq by bar_equal_start.seq.cv30;
sub bar_hyphen_end.seq by bar_hyphen_end.seq.cv30;
sub bar_hyphen_start.seq by bar_hyphen_start.seq.cv30;
sub bar_underscore_middle.seq by bar_underscore_middle.seq.cv30;

4
features/cv31.fea Normal file
View file

@ -0,0 +1,4 @@
# Circular parentheses
sub parenleft by parenleft.cv31;
sub parenright by parenright.cv31;

View file

@ -1,8 +1,8 @@
# Name: .= as ligature
# .= as ligature
lookup period_equal {
ignore sub period period' equal;
ignore sub period' equal equal;
sub period.spacer equal' by period_equal.cv25;
sub period.spacer equal' by period_equal.cv32;
sub period' equal by period.spacer;
} period_equal;
} period_equal;

4
features/zero.fea Normal file
View file

@ -0,0 +1,4 @@
# Zero with a dot inside
sub zero by zero.zero;
sub zero.tosf by zero.tosf.zero;

View file

@ -53,7 +53,7 @@ Fontbakery version: 0.7.1
<summary>🍞 <b>PASS:</b> Check METADATA.pb parse correctly. </summary>
* [com.google.fonts/check/metadata/parses](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/metadata/parses)
* 🍞 **PASS** METADATA.pb parsed successfuly.
* 🍞 **PASS** METADATA.pb parsed successfully.
</details>
<details>
@ -331,7 +331,7 @@ But instead we have got: 'Copyright 2012-2015 The Fira Code Project Authors (htt
</details>
<details>
<summary>💤 <b>SKIP:</b> Glyphs are similiar to Google Fonts version?</summary>
<summary>💤 <b>SKIP:</b> Glyphs are similar to Google Fonts version?</summary>
* [com.google.fonts/check/production_glyphs_similarity](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/production_glyphs_similarity)
* 💤 **SKIP** Unfulfilled Conditions: api_gfonts_ttFont
@ -564,7 +564,7 @@ The version string must ideally include a git commit hash and either a 'dev' or
<summary>🍞 <b>PASS:</b> Are there non-ASCII characters in ASCII-only NAME table entries?</summary>
* [com.google.fonts/check/name/ascii_only_entries](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/name/ascii_only_entries)
* 🍞 **PASS** None of the ASCII-only NAME table entries contain non-ASCII characteres.
* 🍞 **PASS** None of the ASCII-only NAME table entries contain non-ASCII characters.
</details>
<details>
@ -703,7 +703,7 @@ The version string must ideally include a git commit hash and either a 'dev' or
<details>
<summary>🍞 <b>PASS:</b> METADATA.pb: Font styles are named canonically?</summary>
* [com.google.fonts/check/metatada/canonical_style_names](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/metatada/canonical_style_names)
* [com.google.fonts/check/metadata/canonical_style_names](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/metadata/canonical_style_names)
* 🍞 **PASS** Font styles are named canonically.
</details>
@ -777,7 +777,7 @@ The version string must ideally include a git commit hash and either a 'dev' or
<summary>🍞 <b>PASS:</b> Check name table: POSTSCRIPT_NAME entries. </summary>
* [com.google.fonts/check/name/postscriptname](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/name/postscriptname)
* 🍞 **PASS** POSTCRIPT_NAME entries are all good.
* 🍞 **PASS** POSTSCRIPT_NAME entries are all good.
</details>
<details>

View file

@ -25,7 +25,7 @@ Fontbakery version: 0.7.1
<summary>🍞 <b>PASS:</b> Fonts have equal numbers of glyphs?</summary>
* [com.google.fonts/check/family/equal_numbers_of_glyphs](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/family/equal_numbers_of_glyphs)
* 🍞 **PASS** All font files in this family have an equal total ammount of glyphs.
* 🍞 **PASS** All font files in this family have an equal total amount of glyphs.
</details>
<details>
@ -261,7 +261,7 @@ But instead we have got: 'Copyright 2012-2015 The Fira Code Project Authors (htt
<summary><b>WARN:</b> Check if each glyph has the recommended amount of contours.</summary>
* [com.google.fonts/check/contour_count](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/contour_count)
* ⚠ **WARN** This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.
* ⚠ **WARN** This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are inferred from the typical amounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.
The following glyphs do not have the recommended number of contours:
@ -491,7 +491,7 @@ Glyph name: uni2158 Contours detected: 3 Expected: 4
<details>
<summary>💤 <b>SKIP:</b> METADATA.pb: Font styles are named canonically?</summary>
* [com.google.fonts/check/metatada/canonical_style_names](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/metatada/canonical_style_names)
* [com.google.fonts/check/metadata/canonical_style_names](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/metadata/canonical_style_names)
* 💤 **SKIP** Unfulfilled Conditions: font_metadata
</details>
@ -503,7 +503,7 @@ Glyph name: uni2158 Contours detected: 3 Expected: 4
</details>
<details>
<summary>💤 <b>SKIP:</b> Glyphs are similiar to Google Fonts version?</summary>
<summary>💤 <b>SKIP:</b> Glyphs are similar to Google Fonts version?</summary>
* [com.google.fonts/check/production_glyphs_similarity](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/production_glyphs_similarity)
* 💤 **SKIP** Unfulfilled Conditions: api_gfonts_ttFont
@ -792,7 +792,7 @@ The version string must ideally include a git commit hash and either a 'dev' or
<summary>🍞 <b>PASS:</b> Are there non-ASCII characters in ASCII-only NAME table entries?</summary>
* [com.google.fonts/check/name/ascii_only_entries](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/name/ascii_only_entries)
* 🍞 **PASS** None of the ASCII-only NAME table entries contain non-ASCII characteres.
* 🍞 **PASS** None of the ASCII-only NAME table entries contain non-ASCII characters.
</details>
<details>
@ -858,7 +858,7 @@ The version string must ideally include a git commit hash and either a 'dev' or
<summary>🍞 <b>PASS:</b> Check name table: POSTSCRIPT_NAME entries. </summary>
* [com.google.fonts/check/name/postscriptname](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/name/postscriptname)
* 🍞 **PASS** POSTCRIPT_NAME entries are all good.
* 🍞 **PASS** POSTSCRIPT_NAME entries are all good.
</details>
<details>

View file

@ -25,7 +25,7 @@ Fontbakery version: 0.7.1
<summary>🍞 <b>PASS:</b> Fonts have equal numbers of glyphs?</summary>
* [com.google.fonts/check/family/equal_numbers_of_glyphs](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/family/equal_numbers_of_glyphs)
* 🍞 **PASS** All font files in this family have an equal total ammount of glyphs.
* 🍞 **PASS** All font files in this family have an equal total amount of glyphs.
</details>
<details>
@ -261,7 +261,7 @@ But instead we have got: 'Copyright 2012-2015 The Fira Code Project Authors (htt
<summary><b>WARN:</b> Check if each glyph has the recommended amount of contours.</summary>
* [com.google.fonts/check/contour_count](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/contour_count)
* ⚠ **WARN** This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.
* ⚠ **WARN** This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are inferred from the typical amounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.
The following glyphs do not have the recommended number of contours:
@ -498,7 +498,7 @@ Glyph name: uni2158 Contours detected: 3 Expected: 4
<details>
<summary>💤 <b>SKIP:</b> METADATA.pb: Font styles are named canonically?</summary>
* [com.google.fonts/check/metatada/canonical_style_names](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/metatada/canonical_style_names)
* [com.google.fonts/check/metadata/canonical_style_names](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/metadata/canonical_style_names)
* 💤 **SKIP** Unfulfilled Conditions: font_metadata
</details>
@ -510,7 +510,7 @@ Glyph name: uni2158 Contours detected: 3 Expected: 4
</details>
<details>
<summary>💤 <b>SKIP:</b> Glyphs are similiar to Google Fonts version?</summary>
<summary>💤 <b>SKIP:</b> Glyphs are similar to Google Fonts version?</summary>
* [com.google.fonts/check/production_glyphs_similarity](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/production_glyphs_similarity)
* 💤 **SKIP** Unfulfilled Conditions: api_gfonts_ttFont
@ -799,7 +799,7 @@ The version string must ideally include a git commit hash and either a 'dev' or
<summary>🍞 <b>PASS:</b> Are there non-ASCII characters in ASCII-only NAME table entries?</summary>
* [com.google.fonts/check/name/ascii_only_entries](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/name/ascii_only_entries)
* 🍞 **PASS** None of the ASCII-only NAME table entries contain non-ASCII characteres.
* 🍞 **PASS** None of the ASCII-only NAME table entries contain non-ASCII characters.
</details>
<details>
@ -865,7 +865,7 @@ The version string must ideally include a git commit hash and either a 'dev' or
<summary>🍞 <b>PASS:</b> Check name table: POSTSCRIPT_NAME entries. </summary>
* [com.google.fonts/check/name/postscriptname](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/name/postscriptname)
* 🍞 **PASS** POSTCRIPT_NAME entries are all good.
* 🍞 **PASS** POSTSCRIPT_NAME entries are all good.
</details>
<details>

View file

@ -25,7 +25,7 @@ Fontbakery version: 0.7.1
<summary>🍞 <b>PASS:</b> Fonts have equal numbers of glyphs?</summary>
* [com.google.fonts/check/family/equal_numbers_of_glyphs](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/family/equal_numbers_of_glyphs)
* 🍞 **PASS** All font files in this family have an equal total ammount of glyphs.
* 🍞 **PASS** All font files in this family have an equal total amount of glyphs.
</details>
<details>
@ -261,7 +261,7 @@ But instead we have got: 'Copyright 2012-2015 The Fira Code Project Authors (htt
<summary><b>WARN:</b> Check if each glyph has the recommended amount of contours.</summary>
* [com.google.fonts/check/contour_count](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/contour_count)
* ⚠ **WARN** This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.
* ⚠ **WARN** This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are inferred from the typical amounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.
The following glyphs do not have the recommended number of contours:
@ -506,7 +506,7 @@ This happens a lot when points are not extremes, which is usually bad. However,
<details>
<summary>💤 <b>SKIP:</b> METADATA.pb: Font styles are named canonically?</summary>
* [com.google.fonts/check/metatada/canonical_style_names](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/metatada/canonical_style_names)
* [com.google.fonts/check/metadata/canonical_style_names](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/metadata/canonical_style_names)
* 💤 **SKIP** Unfulfilled Conditions: font_metadata
</details>
@ -518,7 +518,7 @@ This happens a lot when points are not extremes, which is usually bad. However,
</details>
<details>
<summary>💤 <b>SKIP:</b> Glyphs are similiar to Google Fonts version?</summary>
<summary>💤 <b>SKIP:</b> Glyphs are similar to Google Fonts version?</summary>
* [com.google.fonts/check/production_glyphs_similarity](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/production_glyphs_similarity)
* 💤 **SKIP** Unfulfilled Conditions: api_gfonts_ttFont
@ -807,7 +807,7 @@ The version string must ideally include a git commit hash and either a 'dev' or
<summary>🍞 <b>PASS:</b> Are there non-ASCII characters in ASCII-only NAME table entries?</summary>
* [com.google.fonts/check/name/ascii_only_entries](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/name/ascii_only_entries)
* 🍞 **PASS** None of the ASCII-only NAME table entries contain non-ASCII characteres.
* 🍞 **PASS** None of the ASCII-only NAME table entries contain non-ASCII characters.
</details>
<details>
@ -873,7 +873,7 @@ The version string must ideally include a git commit hash and either a 'dev' or
<summary>🍞 <b>PASS:</b> Check name table: POSTSCRIPT_NAME entries. </summary>
* [com.google.fonts/check/name/postscriptname](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/name/postscriptname)
* 🍞 **PASS** POSTCRIPT_NAME entries are all good.
* 🍞 **PASS** POSTSCRIPT_NAME entries are all good.
</details>
<details>

View file

@ -25,7 +25,7 @@ Fontbakery version: 0.7.1
<summary>🍞 <b>PASS:</b> Fonts have equal numbers of glyphs?</summary>
* [com.google.fonts/check/family/equal_numbers_of_glyphs](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/family/equal_numbers_of_glyphs)
* 🍞 **PASS** All font files in this family have an equal total ammount of glyphs.
* 🍞 **PASS** All font files in this family have an equal total amount of glyphs.
</details>
<details>
@ -261,7 +261,7 @@ But instead we have got: 'Copyright 2012-2015 The Fira Code Project Authors (htt
<summary><b>WARN:</b> Check if each glyph has the recommended amount of contours.</summary>
* [com.google.fonts/check/contour_count](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/contour_count)
* ⚠ **WARN** This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.
* ⚠ **WARN** This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are inferred from the typical amounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.
The following glyphs do not have the recommended number of contours:
@ -490,7 +490,7 @@ Glyph name: uni2158 Contours detected: 3 Expected: 4
<details>
<summary>💤 <b>SKIP:</b> METADATA.pb: Font styles are named canonically?</summary>
* [com.google.fonts/check/metatada/canonical_style_names](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/metatada/canonical_style_names)
* [com.google.fonts/check/metadata/canonical_style_names](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/metadata/canonical_style_names)
* 💤 **SKIP** Unfulfilled Conditions: font_metadata
</details>
@ -502,7 +502,7 @@ Glyph name: uni2158 Contours detected: 3 Expected: 4
</details>
<details>
<summary>💤 <b>SKIP:</b> Glyphs are similiar to Google Fonts version?</summary>
<summary>💤 <b>SKIP:</b> Glyphs are similar to Google Fonts version?</summary>
* [com.google.fonts/check/production_glyphs_similarity](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/production_glyphs_similarity)
* 💤 **SKIP** Unfulfilled Conditions: api_gfonts_ttFont
@ -791,7 +791,7 @@ The version string must ideally include a git commit hash and either a 'dev' or
<summary>🍞 <b>PASS:</b> Are there non-ASCII characters in ASCII-only NAME table entries?</summary>
* [com.google.fonts/check/name/ascii_only_entries](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/name/ascii_only_entries)
* 🍞 **PASS** None of the ASCII-only NAME table entries contain non-ASCII characteres.
* 🍞 **PASS** None of the ASCII-only NAME table entries contain non-ASCII characters.
</details>
<details>
@ -857,7 +857,7 @@ The version string must ideally include a git commit hash and either a 'dev' or
<summary>🍞 <b>PASS:</b> Check name table: POSTSCRIPT_NAME entries. </summary>
* [com.google.fonts/check/name/postscriptname](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/name/postscriptname)
* 🍞 **PASS** POSTCRIPT_NAME entries are all good.
* 🍞 **PASS** POSTSCRIPT_NAME entries are all good.
</details>
<details>

View file

@ -268,7 +268,7 @@ But instead we have got: 'Copyright 2012-2015 The Fira Code Project Authors (htt
<summary><b>WARN:</b> Check if each glyph has the recommended amount of contours.</summary>
* [com.google.fonts/check/contour_count](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/contour_count)
* ⚠ **WARN** This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.
* ⚠ **WARN** This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are inferred from the typical amounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.
The following glyphs do not have the recommended number of contours:
@ -511,7 +511,7 @@ Glyph name: uni2158 Contours detected: 3 Expected: 4
<details>
<summary>💤 <b>SKIP:</b> METADATA.pb: Font styles are named canonically?</summary>
* [com.google.fonts/check/metatada/canonical_style_names](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/metatada/canonical_style_names)
* [com.google.fonts/check/metadata/canonical_style_names](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/metadata/canonical_style_names)
* 💤 **SKIP** Unfulfilled Conditions: font_metadata
</details>
@ -523,7 +523,7 @@ Glyph name: uni2158 Contours detected: 3 Expected: 4
</details>
<details>
<summary>💤 <b>SKIP:</b> Glyphs are similiar to Google Fonts version?</summary>
<summary>💤 <b>SKIP:</b> Glyphs are similar to Google Fonts version?</summary>
* [com.google.fonts/check/production_glyphs_similarity](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/production_glyphs_similarity)
* 💤 **SKIP** Unfulfilled Conditions: api_gfonts_ttFont
@ -868,7 +868,7 @@ The version string must ideally include a git commit hash and either a 'dev' or
<summary>🍞 <b>PASS:</b> Are there non-ASCII characters in ASCII-only NAME table entries?</summary>
* [com.google.fonts/check/name/ascii_only_entries](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/name/ascii_only_entries)
* 🍞 **PASS** None of the ASCII-only NAME table entries contain non-ASCII characteres.
* 🍞 **PASS** None of the ASCII-only NAME table entries contain non-ASCII characters.
</details>
<details>

View file

@ -128,7 +128,7 @@ But instead we have got: 'Copyright 2012-2015 The Mozilla Foundation, Telefonica
- [x] uncheck "Retina" instance as `is active` instance
- [x] file issue with FontBakery to ask Dave/Marc about this `450` weight "Retina" instance (https://github.com/googlefonts/fontbakery/issues/2420)-
- [x] change if you find a better approach to keep Retina without disrupting builds / Regular weight
- To set up the instance in GlyhpsApp such that it exports a font as expected: "Retina" gets a custom parameter of `weightClass: 450`, and a glyphs menu-weight of "Normal." Tested in axis-praxis, it seems to work well. All instances have a `weightClass` custom parameter.
- To set up the instance in GlyphsApp such that it exports a font as expected: "Retina" gets a custom parameter of `weightClass: 450`, and a glyphs menu-weight of "Normal." Tested in axis-praxis, it seems to work well. All instances have a `weightClass` custom parameter.
----------------------------

View file

@ -146,7 +146,7 @@ Straightened in Bold & Reg:
### betaSymbol
These lines are't supposed to intersect:
These lines aren't supposed to intersect:
![](assets/2019-03-28-14-20-11.png)

View file

@ -5,7 +5,7 @@
# USAGE:
# Install requirements with `pip install -U -r googlefonts-qa/requirements.txt`
#
# call this script from the root of your fira code repo, with the absolute path your your local google/fonts repo
# call this script from the root of your fira code repo, with the absolute path to your local google/fonts repo
# `move-check <your_username>/<path>/fonts`
set -ex

28
script/bake_in_features.sh Executable file
View file

@ -0,0 +1,28 @@
#!/bin/bash
set -o errexit -o nounset -o pipefail
cd "$(dirname "$0")/.."
glyphs_file=${FIRACODE_GLYPHS_FILE:-"FiraCode.glyphs"}
code_blocks=()
for feat in "$@"; do
file="features/${feat}.fea"
if [ ! -f "${file}" ]; then
echo "Error: No file for feature ${feat} found!" >&2
exit 1
fi
# don't grab the "lookup" surroundings or comments or whitespace lines
code="$(grep -v '^[[:space:]]*lookup\|^[[:space:]]*}\|^[[:space:]]*#\|^[[:space:]]*$' "${file}")" \
|| { echo "Error: No code for feature ${feat} found!" >&2; exit 1; }
code_blocks+=("$(tr '\n' ' ' <<< "${code}")")
done
# code block is one line above name declaration
linenum=$(sed -n "/name = calt;/=" "${glyphs_file}")
linenum=$((linenum - 1))
# replace end of line (";) with code on specified line number
sed -i -e "${linenum}s@\";\$@\n${code_blocks[*]}\";@" "${glyphs_file}"

View file

@ -1,8 +1,102 @@
#!/bin/bash
set -o errexit -o nounset -o pipefail
cd "`dirname $0`"
set -o errexit -o pipefail
cd "$(dirname "$0")"
./build_ttf.sh
features=()
weights=()
gen_glyphs_file_only=0
use_features_for_family_name=0
export FIRACODE_FAMILY_NAME="Fira Code"
########### Parsing inputs ########### {{{
check_required_args()
{
if [ -z "$2" ] || [ "${2:0:1}" = "-" ]; then
echo "Error: Missing argument for '$1'" >&2
return 1
fi
return 0
}
while [ $# -gt 0 ]; do
# split parameters like '-f="1,2,3"' into '-f "1,2,3"'
[[ "$1" == -*=* ]] && set -- "${1%%=*}" "${1#*=}" "${@:2}"
case "$1" in
-f | --features)
check_required_args "$1" "$2" || exit 1
# turn comma separated list into sorted array
IFS=',' read -r -a features <<< "$(echo "$2" | tr ',' '\n' | sort -u | tr '\n' ',')"
shift 2 # remove two params (flag + arg)
;;
-w | --weights)
check_required_args "$1" "$2" || exit 1
IFS=',' read -r -a weights <<< "$2"
shift 2 # remove two params (flag + arg)
;;
-n | --family-name)
check_required_args "$1" "$2" || exit 1
if [ "$2" = "features" ]; then
use_features_for_family_name=1
else
FIRACODE_FAMILY_NAME=$2
fi
shift 2 # remove two params (flag + arg)
;;
-g | --generate-glyphs-only)
gen_glyphs_file_only=1
shift 1
;;
-*) # unsupported flags
echo "Error: Unsupported flag '$1'" >&2
exit 1
;;
*) # positional parameters
echo "Error: No use case for positional paramter '$1'" >&2
exit 1
;;
esac
done
########### ############## ########### }}}
# Create a temporary file that can be manipulated without messing with the original
FIRACODE_GLYPHS_FILE=$(mktemp)
mv "${FIRACODE_GLYPHS_FILE}" "${FIRACODE_GLYPHS_FILE}.glyphs"
FIRACODE_GLYPHS_FILE="${FIRACODE_GLYPHS_FILE}.glyphs"
export FIRACODE_GLYPHS_FILE
cp ../FiraCode.glyphs "${FIRACODE_GLYPHS_FILE}"
feat_string=""
if [ -n "${features[*]}" ]; then
echo "Creating font with these features: ${features[*]}"
./bake_in_features.sh "${features[@]}"
feat_string=" ${features[*]}"
fi
if [ "${use_features_for_family_name}" -ne 0 ]; then
FIRACODE_FAMILY_NAME=${FIRACODE_FAMILY_NAME}${feat_string}
fi
if [ "${FIRACODE_FAMILY_NAME}" != "Fira Code" ]; then
tmp_glyphs=$(mktemp)
echo "Creating font with family name: ${FIRACODE_FAMILY_NAME}"
awk '/familyName = "Fira Code";/ {$0=nc}1' nc="familyName = \"${FIRACODE_FAMILY_NAME}\";" \
"${FIRACODE_GLYPHS_FILE}" > "${tmp_glyphs}"
mv "${tmp_glyphs}" "${FIRACODE_GLYPHS_FILE}"
fi
cp "${FIRACODE_GLYPHS_FILE}" "../${FIRACODE_FAMILY_NAME}.glyphs"
echo "Generated glyphs file: ${FIRACODE_FAMILY_NAME}.glyphs"
if [ "${gen_glyphs_file_only}" -ne 0 ]; then
echo "Custom .glyphs file created. Exiting here!"
exit 0
fi
./build_ttf.sh "${weights[@]}"
./build_variable.sh
./build_woff2.sh
./build_woff.sh
./build_woff.sh
rm -f "${FIRACODE_GLYPHS_FILE}"

View file

@ -1,25 +1,31 @@
#!/bin/bash
set -o errexit -o nounset -o pipefail
cd "`dirname $0`/.."
cd "$(dirname "$0")/.."
[ -d venv ] && source venv/bin/activate
mkdir -p distr/ttf
rm -rf distr/ttf/*
family_name=${FIRACODE_FAMILY_NAME:-"Fira Code"}
glyphs_file=${FIRACODE_GLYPHS_FILE:-"FiraCode.glyphs"}
dir="distr/ttf/${family_name}"
mkdir -p "${dir}"
rm -rf "${dir:?}/"*
args=( "$@" )
default_weights=( "Light" "Regular" "Retina" "Medium" "SemiBold" "Bold" )
weights=( "${args[@]:-"${default_weights[@]}"}" )
for weight in "${weights[@]}"; do
file=distr/ttf/FiraCode-${weight}.ttf
echo "Making " ${file}
rm -rf ${file}
fontmake -g FiraCode.glyphs -o ttf --output-dir distr/ttf -i "Fira Code ${weight}"
file="${dir}/FiraCode-${weight}.ttf"
echo "Fixing DSIG in " ${file}
gftools fix-dsig --autofix ${file}
echo "=============="
echo
echo " [i] Creating ${file}"
echo
echo "TTFautohint " ${file}
ttfautohint --no-info --ignore-restrictions ${file} ${file}.hinted
mv ${file}.hinted ${file}
fontmake -g "${glyphs_file}" -o ttf --output-path "${file}" -i ".* ${weight}"
echo " [i] TTFautohint ${file}"
ttfautohint --no-info --ignore-restrictions "${file}" "${file}.hinted"
mv "${file}.hinted" "${file}"
done

View file

@ -1,34 +1,41 @@
#!/bin/bash
set -o errexit -o nounset -o pipefail
cd "`dirname $0`/.."
cd "$(dirname "$0")/.."
[ -d venv ] && source venv/bin/activate
mkdir -p distr/variable_ttf
rm -rf distr/variable_ttf/*
FILE=FiraCode-VF.ttf
family_name=${FIRACODE_FAMILY_NAME:-"Fira Code"}
glyphs_file=${FIRACODE_GLYPHS_FILE:-"FiraCode.glyphs"}
awk '/name = Retina;/ { print; print "exports = 0;"; next }1' FiraCode.glyphs > FiraCode_VF.glyphs
fontmake -g FiraCode_VF.glyphs -o variable --output-dir distr/variable_ttf
rm FiraCode_VF.glyphs
dir="distr/variable_ttf/${family_name}"
file="${dir}/FiraCode-VF.ttf"
pushd distr/variable_ttf
echo "=============="
echo
echo " [i] Creating variable font file!"
echo
# fix variable font metadata very important
gftools fix-vf-meta $FILE
mv $FILE.fix $FILE
mkdir -p "${dir}"
rm -rf "${dir:?}/"*
# make a temporary file here to avoid parallel runs from stepping on each other's toes
vf_glyphs=$(mktemp)
mv ${vf_glyphs} ${vf_glyphs}.glyphs
vf_glyphs=${vf_glyphs}.glyphs
awk '/name = Retina;/ { print; print "exports = 0;"; next }1' \
"${glyphs_file}" > "${vf_glyphs}"
fontmake -g "${vf_glyphs}" -o variable --output-path "${file}"
rm -f "${vf_glyphs}"
# other fixes for metadata and hinting
gftools fix-nonhinting $FILE $FILE.fix
mv $FILE.fix $FILE
gftools fix-nonhinting "${file}" "${file}.fix"
mv "${file}.fix" "${file}"
gftools fix-gasp --autofix $FILE
mv $FILE.fix $FILE
gftools fix-dsig --autofix $FILE
gftools fix-gasp --autofix "${file}"
mv "${file}.fix" "${file}"
# cleanup of temp files
rm -rf *-gasp.ttf
rm -rf "${dir}/"*-gasp.ttf
# TODO (late 2019?): use TTFautohint-VF for variable font (current support is minimal)
popd

View file

@ -1,18 +1,27 @@
#!/bin/bash
set -o errexit -o nounset -o pipefail
cd "`dirname $0`/.."
cd "$(dirname "$0")/.."
[ -d venv ] && source venv/bin/activate
mkdir -p distr/woff
rm -rf distr/woff/*
family_name=${FIRACODE_FAMILY_NAME:-"Fira Code"}
ttf_dir="distr/ttf/${family_name}"
woff_dir="distr/woff/${family_name}"
echo "=============="
echo
echo " [i] Creating .woff files!"
echo
mkdir -p "${woff_dir}"
rm -rf "${woff_dir:?}/"*
# requires sfnt2woff-zopfli (get from https://github.com/bramstein/homebrew-webfonttools)
ttfs=$(ls distr/*/*.ttf)
for ttf in $ttfs; do
echo "sfnt2woff-zopfli $ttf"
sfnt2woff-zopfli $ttf
for ttf in "${ttf_dir}/"*.ttf; do
echo "sfnt2woff-zopfli ${ttf}"
sfnt2woff-zopfli "${ttf}"
done
mkdir -p distr/woff
mv distr/*/*.woff distr/woff
rm distr/woff/FiraCode-Retina.woff
mv "${ttf_dir}/"*.woff "${woff_dir}"
rm -f "${woff_dir}/FiraCode-Retina.woff"

View file

@ -1,17 +1,27 @@
#!/bin/bash
set -o errexit -o nounset -o pipefail
cd "`dirname $0`/.."
cd "$(dirname "$0")/.."
[ -d venv ] && source venv/bin/activate
mkdir -p distr/woff2
rm -rf distr/woff2/*
family_name=${FIRACODE_FAMILY_NAME:-"Fira Code"}
ttf_dir="distr/ttf/${family_name}"
woff_dir="distr/woff2/${family_name}"
echo "=============="
echo
echo " [i] Creating .woff2 files!"
echo
mkdir -p "${woff_dir}"
rm -rf "${woff_dir:?}/"*
# requires woff2_compress (get from https://github.com/bramstein/homebrew-webfonttools)
ttfs=$(ls distr/*/*.ttf)
for ttf in $ttfs; do
woff2_compress $ttf
for ttf in "${ttf_dir}/"*.ttf; do
echo "woff2_compress ${ttf}"
woff2_compress "${ttf}"
done
mkdir -p distr/woff2
mv distr/*/*.woff2 distr/woff2
rm -f distr/woff2/FiraCode-Retina.woff2
mv "${ttf_dir}/"*.woff2 "${woff_dir}"
rm -f "${woff_dir}/FiraCode-Retina.woff2"

View file

@ -1,3 +1,3 @@
#!/bin/zsh -euo pipefail
clojure -m fira-code.checks
clojure -m fira-code.checks $@

View file

@ -1,3 +0,0 @@
#!/bin/bash
clj -A:nrepl -M -m nrepl.cmdline --interactive

6
script/repl.sh Executable file
View file

@ -0,0 +1,6 @@
#!/bin/bash
set -o errexit -o nounset -o pipefail
dir=`dirname $0`
cd $dir/..
clojure -M -m user