Font

@textjs/font: font FIGlet sebagai modul ES, ditata persis seperti program figlet.

@textjs/font mengurai berkas FIGfont 2 (.flf) dan menatanya persis seperti program figlet. Setiap font merupakan modul ES, sehingga hanya font yang Anda impor yang disertakan.

Langsung100×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>;}

Instalasi

bun add @textjs/font

Penggunaan

<FigletText> menerima font dan string. Baris diukur dalam sel, sehingga bentuk huruf menempati layout flexbox seperti <Text> lainnya.

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> menerima font yang sama, dengan tetap mempertahankan bentuk huruf bawaan block dan compact:

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

Di luar React, renderFiglet mengembalikan satu string per baris:

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

Layout

Layout horizontal mengikuti flag FIGlet.

layoutfigletEfek
"default"-sLayout font, biasanya dirapatkan dengan smushing
"full"-WLebar penuh; karakter tidak pernah bersentuhan
"fitted"-kKerning; karakter saling mendekat hingga bersentuhan
"smushed"-SSmushing dengan aturan font, termasuk untuk font fitted
"universal"-oKarakter berikutnya menimpa karakter sebelumnya
0–63-mMode smush eksplisit

Keenam aturan smushing horizontal diterapkan: karakter sama, garis bawah, hierarki, pasangan berlawanan, X besar dan hardblank.

verticalLayout berlaku untuk teks multibaris. FIGlet 2.2.5 tidak pernah merapatkan tumpukan baris, sehingga nilai default-nya adalah "full"; "fitted", "smushed" dan "universal" menerapkan kelima aturan vertikal, termasuk supersmushing garis vertikal, dan "default" menggunakan aturan font.

Pembungkusan dan perataan

columns (atau width dalam renderFiglet) membungkus teks pada batas kata, lalu di tengah kata, persis di posisi yang digunakan figlet -w. align bernilai "left", "center" atau "right"; tanpa lebar, baris diratakan dalam lebar baris terlebar. Font kanan-ke-kiri seperti ivrit mencetak dari kanan ke kiri dan rata kanan; ganti perilaku ini dengan direction.

Font yang disertakan

ImporBarisCatatan
@textjs/font/standard6Default FIGlet
@textjs/font/slant, smslant6, 5Miring
@textjs/font/small5Ringkas
@textjs/font/big8Termasuk huruf Yunani
@textjs/font/banner8Bentuk huruf #, Katakana dan Kiril
@textjs/font/block, lean8Garis luar, tegak dan miring
@textjs/font/shadow, smshadow5, 4Bayangan jatuh
@textjs/font/script, smscript7, 5Huruf sambung
@textjs/font/mini4Sangat kecil
@textjs/font/bubble, digital4, 3Huruf dalam lingkaran dan kotak
@textjs/font/ivrit6Ibrani, kanan ke kiri
@textjs/font/term1Input apa adanya

Setiap glif menggunakan ASCII atau Latin-1 yang dapat dicetak, sehingga setiap subkarakter berukuran tepat satu sel dalam Menlo di DevTools. @textjs/font/all mengekspor semuanya, beserta BUNDLED_FONTS untuk galeri. Font diurai saat render pertama, bukan saat diimpor.

Font kustom

Semua FIGfont dapat digunakan. Ambil font, lalu uraikan:

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

Parser membaca header, baris komentar, hardblank, penanda akhir, 102 karakter wajib dan karakter bertanda kode dalam desimal, oktal atau heksadesimal. Font TOIlet .tlf di-render sebagai teks biasa. Utamakan font yang digambar dengan ASCII atau karakter pembentuk kotak; braille dan emoji tidak selebar satu sel dalam Menlo.

Lisensi

Font yang disertakan merupakan font distribusi FIGlet 2.2.5, identik hingga setiap byte, di bawah lisensi BSD 3-Clause FIGlet. Setiap font menyimpan kreditnya dalam baris komentar, yang tersedia saat runtime sebagai font.comment. Font populer tanpa izin redistribusi, seperti Doom, Larry 3D, ANSI Shadow dan Calvin S, tidak disertakan.

Diverifikasi terhadap figlet

Rangkaian pengujian memutar ulang 273 keluaran yang direkam dari biner figlet 2.2.5 asli: setiap font yang disertakan dalam setiap mode layout, pembungkusan, perataan, teks kanan-ke-kiri, mode paragraf dan input regresi FIGlet sendiri. Semuanya cocok persis.

Edit halaman ini di GitHub