@textjs /字体
A FIGfont 2 (.flf) 解析器和渲染器,其输出与 figlet 程序,加上17个捆绑字体,每个模块一个。
import { FigletText } from "@textjs/font/react";
import { slant } from "@textjs/font/slant";
<FigletText font={slant} color="accent">Text.js</FigletText>;
______ __ _
/_ __/__ _ __/ /_ (_)____
/ / / _ \| |/_/ __/ / / ___/
/ / / __/> </ /__ / (__ )
/_/ \___/_/|_|\__(_)_/ /____/
/___/
API
import { renderFiglet, parseFont } from "@textjs/font";
import { standard } from "@textjs/font/standard";
renderFiglet(standard, "Hello", { layout: "fitted", width: 60, align: "center" }); // string[]
standard.render("Hello"); // same, default options
const doom = parseFont(await (await fetch("/fonts/doom.flf")).text(), "Doom");
| 选项 | 值 | 默认的 |
|---|---|---|
layout | "default" (字体), "full" (-W), "fitted" (-k), "smushed" (-S), "universal" (-o),或 -m 数量 | "default" |
verticalLayout | "full", "fitted", "smushed", "universal", "default" (字体的) | "full" (FIGlet 2.2.5没有垂直布局) |
width | 最大输出列数;在单词结束时像 figlet -w width+1 | 无限的 |
align | "left", "center", "right" 在 width,或在最宽的行内 | "left", "right" RTL字体 |
direction | "default", "ltr", "rtl" | 字体的 |
paragraph | 加入单个换行符 (-p) | false |
<AsciiFont font={slant} text="Text.js" /> 从 @textjs/react 也接受任何加载的字体。
实现: 标题和注释行,硬空白,尾标记,102所需字符,代码标记字符 (十进制,八进制,十六进制,负),缺失字符 (代码0),全宽/拟合/smushing与所有六个水平规则和通用smushing,从右到左打印,FIGlet的单词包装和理由,以及五个垂直规则加上超级处理。卫生间 tlf2a 字体解析,呈现为纯文本。未实现:控制文件(.flc),压缩字体。
字体
standard, slant, small, smslant, big, banner, block, lean, shadow, smshadow, script, smscript, mini, bubble, digital, ivrit (从右到左), term。导入每个从 @textjs/font/<name>; @textjs/font/all 导出所有字体和 BUNDLED_FONTS 对于画廊。字体在第一次渲染时缓慢解析。
所有字形都使用可打印的ASCII和Latin-1,因此它们在Menlo/SF Mono中保持单元精确。(bubble, digital 和 term 绘制输入U 0080-U 009F,C1控制字符,作为本身。)
许可
代码是MIT。字体是FIGlet 2.2.5分布字体,字节相同 figlet-2.2.5.tar.gz,根据FIGlet的BSD 3条款许可 (LICENSES/FIGLET.txt); 每家公司都在其评论栏(font.comment). 没有再分发许可的字体(Doom, Larry 3D, ANSI Shadow, Calvin S,…)不会被捆绑。看到 NOTICE.
开发
bun run --cwd packages/font generate # fonts/*.flf → src/fonts/*.ts
bun run --cwd packages/font references # needs `figlet` 2.2.5 on PATH
bun test packages/font
test/fixtures/references.json 保存273个实数输出 figlet 2.2.5二进制 (17种字体 × 布局 × 输入,加上FIGlet自己的回归输入及其 run-tests.sh 标志); 测试一下套件重播每一个。