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.
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/fontUż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.
layout | figlet | Efekt |
|---|---|---|
"default" | -s | Layout fontu, zwykle ze scalaniem znaków |
"full" | -W | Pełna szerokość; znaki nigdy się nie stykają |
"fitted" | -k | Kerning; znaki zbliżają się do siebie, aż się zetkną |
"smushed" | -S | Scalanie według reguł fontu, nawet dla fontów dopasowanych |
"universal" | -o | Późniejsze znaki nakładają się na wcześniejsze |
0–63 | -m | Jawny 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
| Import | Wiersze | Uwagi |
|---|---|---|
@textjs/font/standard | 6 | Domyślny font programu FIGlet |
@textjs/font/slant, smslant | 6, 5 | Kursywa |
@textjs/font/small | 5 | Zwarty |
@textjs/font/big | 8 | Z alfabetem greckim |
@textjs/font/banner | 8 | Liternictwo ze znaków #, katakana i cyrylica |
@textjs/font/block, lean | 8 | Konturowy, prosty i pochyły |
@textjs/font/shadow, smshadow | 5, 4 | Cień |
@textjs/font/script, smscript | 7, 5 | Pismo odręczne |
@textjs/font/mini | 4 | Miniaturowy |
@textjs/font/bubble, digital | 4, 3 | Litery w okręgach i ramkach |
@textjs/font/ivrit | 6 | Hebrajski, od prawej do lewej |
@textjs/font/term | 1 | Tekst 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.