Fonty

@textjs/font: fonty FIGlet jako moduły ES, układane dokładnie tak jak w programie figlet.

@textjs/font parsuje pliki FIGfont 2 (.flf) i układa je dokładnie tak jak program figlet. Każdy font jest modułem ES, więc do aplikacji trafiają tylko importowane fonty.

Na żywo100×19 · booting Turbolog…tsx
preview://fonts:1
import { FigletText } from "@textjs/font/react";import { slant } from "@textjs/font/slant";export default function Page() {  return <FigletText font={slant} color="accent">Text.js</FigletText>;}

Instalacja

bun add @textjs/font

Użycie

<FigletText> przyjmuje font i ciąg znaków. Wiersze są mierzone w komórkach, więc liternictwo mieści się w layoutach flexbox jak każdy inny <Text>.

import { FigletText } from "@textjs/font/react";import { big } from "@textjs/font/big";<FigletText font={big} layout="fitted" columns={60} align="center" color="muted">  Deployed</FigletText>

<AsciiFont> przyjmuje te same fonty, zachowując wbudowane liternictwo block i compact:

<AsciiFont text="Text.js" font={slant} color="accent" />

Poza React funkcja renderFiglet zwraca jeden ciąg znaków na wiersz:

import { renderFiglet } from "@textjs/font";import { standard } from "@textjs/font/standard";renderFiglet(standard, "Hello", { layout: "full" });// ["  _   _          _   _         ", " | | | |   ___  | | | |   ___  ", …]

Layout

Layout poziomy odpowiada flagom programu FIGlet.

layoutfigletEfekt
"default"-sLayout fontu, zwykle ze scalaniem znaków
"full"-WPełna szerokość; znaki nigdy się nie stykają
"fitted"-kKerning; znaki zbliżają się do siebie, aż się zetkną
"smushed"-SScalanie według reguł fontu, nawet dla fontów dopasowanych
"universal"-oPóźniejsze znaki nakładają się na wcześniejsze
0–63-mJawny tryb scalania

Zaimplementowano wszystkie sześć reguł scalania poziomego: jednakowy znak, podkreślenie, hierarchia, przeciwna para, duży X i twarda spacja.

verticalLayout dotyczy tekstu wielowierszowego. FIGlet 2.2.5 nigdy nie zbliża wierszy do siebie, więc wartością domyślną jest "full"; "fitted", "smushed" i "universal" implementują pięć reguł pionowych, w tym superscalanie linii pionowych, a "default" używa reguł fontu.

Zawijanie i wyrównanie

columns (lub width w renderFiglet) zawija tekst na granicach słów, a następnie wewnątrz słowa, dokładnie tam, gdzie zrobiłby to figlet -w. align ma wartość "left", "center" lub "right"; bez podanej szerokości wiersze są wyrównywane w obrębie najszerszego wiersza. Fonty pisane od prawej do lewej, takie jak ivrit, wypisują tekst od prawej do lewej i wyrównują go do prawej; zmień to za pomocą direction.

Dołączone fonty

ImportWierszeUwagi
@textjs/font/standard6Domyślny font programu FIGlet
@textjs/font/slant, smslant6, 5Kursywa
@textjs/font/small5Zwarty
@textjs/font/big8Z alfabetem greckim
@textjs/font/banner8Liternictwo ze znaków #, katakana i cyrylica
@textjs/font/block, lean8Konturowy, prosty i pochyły
@textjs/font/shadow, smshadow5, 4Cień
@textjs/font/script, smscript7, 5Pismo odręczne
@textjs/font/mini4Miniaturowy
@textjs/font/bubble, digital4, 3Litery w okręgach i ramkach
@textjs/font/ivrit6Hebrajski, od prawej do lewej
@textjs/font/term1Tekst wejściowy bez zmian

Każdy glif to drukowalny znak ASCII lub Latin-1, więc każdy znak składowy zajmuje dokładnie jedną komórkę w kroju Menlo w DevTools. @textjs/font/all eksportuje je wszystkie, a także BUNDLED_FONTS do galerii. Fonty są parsowane przy pierwszym renderowaniu, nie przy imporcie.

Własne fonty

Działa każdy font FIGfont. Pobierz go, a następnie sparsuj:

import { parseFont } from "@textjs/font";const doom = parseFont(await (await fetch("/fonts/doom.flf")).text(), "Doom");

Parser odczytuje nagłówek, wiersze komentarzy, twarde spacje, znaczniki końca, 102 wymagane znaki oraz znaki oznaczone kodami dziesiętnymi, ósemkowymi lub szesnastkowymi. Fonty TOIlet .tlf są renderowane jako zwykły tekst. Wybieraj fonty zbudowane ze znaków ASCII lub znaków do rysowania ramek; znaki brajlowskie i emoji nie mają szerokości jednej komórki w kroju Menlo.

Licencjonowanie

Dołączone fonty pochodzą z dystrybucji FIGlet 2.2.5, są identyczne bajt po bajcie i podlegają licencji BSD 3-Clause programu FIGlet. Każdy zachowuje informacje o autorach w wierszach komentarzy, dostępnych w czasie działania jako font.comment. Popularne fonty bez zezwolenia na redystrybucję, takie jak Doom, Larry 3D, ANSI Shadow i Calvin S, nie są dołączone.

Weryfikacja względem figlet

Zestaw testów odtwarza 273 wyniki zapisane z rzeczywistego pliku binarnego figlet 2.2.5: każdy dołączony font w każdym trybie layoutu, zawijanie, justowanie, tekst od prawej do lewej, tryb akapitowy i dane wejściowe testów regresji samego programu FIGlet. Wszystkie są dokładnie zgodne.

Edytuj tę stronę w serwisie GitHub