#font #character #utilities #parser #cli

app fontfor

find fonts which can show a specified character and preview them in terminal or browser

13 releases

new 0.4.3 May 10, 2024
0.4.2 May 9, 2024
0.4.1 Nov 18, 2023
0.3.1 May 22, 2020
0.1.3 Jan 18, 2020

#11 in Visualization

Download history 6/week @ 2024-02-19 8/week @ 2024-02-26 27/week @ 2024-03-11 68/week @ 2024-04-01 269/week @ 2024-05-06

269 downloads per month

GPL-3.0-or-later

89KB
2K SLoC

FontFor

license-badge version-badge ci-badge

Find fonts which can show a specified character and preview them in browser.

This is port from my early python script called which_fonts_support, but with some improvements:

  • 🛡️ Write in Rust, without unsafe. Safety
  • 🚀️ Mmap to load font file. Fast
  • 🚀️ Only parse font table we need, not all bytes of font file. Faster
  • 🖥 Support preview in terminal and browser. Friendly

Install or Update

cargo install -f fontfor

Or download binary from release page.

Usage

Basic

$ fontfor א
Font(s) support the character "א"(U+05D0, 1488, 0xD7 0x90):
Arial                       with 4 styles
Arial Hebrew                with 3 styles
Arial Hebrew Desk Interface with 3 styles
Arial Hebrew Scholar        with 3 styles
Arial Unicode MS            with 1 style
Corsiva Hebrew              with 2 styles
Courier New                 with 4 styles
DejaVu Sans                 with 8 styles
FreeMono                    with 4 styles
FreeSans                    with 4 styles
FreeSerif                   with 4 styles
HanaMinA                    with 1 style
LastResort                  with 1 style
Lucida Grande               with 2 styles
Microsoft Sans Serif        with 1 style
New Peninim MT              with 4 styles
Raanana                     with 2 styles
TW-Kai                      with 1 style
TW-Sung                     with 1 style
Tahoma                      with 2 styles
Times New Roman             with 4 styles

Character Input Format

You can use the following formats for the character:

  • Character: א
  • Unicode scalar value
    • U+XXXXXX: U+5d0, U+05d0, U+0005d0
    • Direct input
      • Dec format: 1488
      • Oct format: 0o2720
      • Binary format: 0b010111010000
  • UTF8 bytes: 0xd790

Show All Font Styles

add -v flag to show all font style.

We don't show screenshot picture here because it's a bit long.

add more -v, or -vv to show font file and face index.

Preview in Browser

Add -p flag to enable browser preview:

browser-preview-screenshot

Preview in Shell

Add -t flag to enter tui mode for preview in shell:

tui-mono-mode

And you can change render mode to ASCII(10 Level):

tui-ascii-10-mode

ASCII(70 Level):

tui-ascii-70-mode

Or moon-render mode:

tui-moon-mode

LICENSE

GPLv3 or later.

See COPYING.

Dependencies

~10–20MB
~287K SLoC