फ़ॉन्ट
@textjs/font: ES मॉड्यूल के रूप में FIGlet फ़ॉन्ट, जिनका लेआउट बिल्कुल figlet प्रोग्राम जैसा है।
@textjs/font FIGfont 2 (.flf) फ़ाइलों को पार्स करता है और उनका लेआउट बिल्कुल figlet प्रोग्राम की तरह बनाता है। हर फ़ॉन्ट एक ES मॉड्यूल है, इसलिए सिर्फ़ आपके इंपोर्ट किए गए फ़ॉन्ट ही शिप होते हैं।
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>;}इंस्टॉलेशन
bun add @textjs/fontइस्तेमाल
<FigletText> एक फ़ॉन्ट और एक स्ट्रिंग लेता है। पंक्तियां सेल में मापी जाती हैं, इसलिए अक्षर किसी भी दूसरे <Text> की तरह flexbox लेआउट में फ़िट होते हैं।
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> इन्हीं फ़ॉन्ट को स्वीकार करता है और अपने बिल्ट-इन block और compact अक्षर भी बनाए रखता है:
<AsciiFont text="Text.js" font={slant} color="accent" />React के बाहर, renderFiglet हर पंक्ति के लिए एक स्ट्रिंग लौटाता है:
import { renderFiglet } from "@textjs/font";import { standard } from "@textjs/font/standard";renderFiglet(standard, "Hello", { layout: "full" });// [" _ _ _ _ ", " | | | | ___ | | | | ___ ", …]लेआउट
हॉरिज़ॉन्टल लेआउट FIGlet के फ़्लैग का पालन करता है।
layout | figlet | असर |
|---|---|---|
"default" | -s | फ़ॉन्ट का लेआउट, आम तौर पर स्मश्ड |
"full" | -W | पूरी चौड़ाई; अक्षर कभी नहीं छूते |
"fitted" | -k | कर्निंग; अक्षर एक-दूसरे के पास आते हैं, जब तक वे छू न जाएं |
"smushed" | -S | फ़ॉन्ट के नियमों के अनुसार स्मशिंग, फ़िटेड फ़ॉन्ट के लिए भी |
"universal" | -o | बाद के अक्षर पहले के अक्षरों पर ओवरलैप होते हैं |
0–63 | -m | स्पष्ट रूप से चुना गया स्मश मोड |
हॉरिज़ॉन्टल स्मशिंग के सभी छह नियम लागू हैं: समान अक्षर, अंडरस्कोर, हायरार्की, विपरीत जोड़ी, बड़ा X और हार्डब्लैंक।
verticalLayout कई पंक्तियों वाले टेक्स्ट पर लागू होता है। FIGlet 2.2.5 पंक्तियों को कभी पास-पास नहीं रखता, इसलिए डिफ़ॉल्ट "full" है; "fitted", "smushed" और "universal" वर्टिकल लाइन सुपरस्मशिंग समेत पांच वर्टिकल नियम लागू करते हैं, और "default" फ़ॉन्ट के नियम इस्तेमाल करता है।
रैपिंग और अलाइनमेंट
columns (या renderFiglet में width) पहले शब्दों के बीच, फिर शब्द के बीच में रैप करता है, ठीक वहीं जहां figlet -w करता। align का मान "left", "center" या "right" होता है; चौड़ाई न देने पर, पंक्तियां सबसे चौड़ी पंक्ति के भीतर अलाइन होती हैं। ivrit जैसे दाएं-से-बाएं फ़ॉन्ट दाएं से बाएं प्रिंट होते हैं और दाईं ओर अलाइन होते हैं; इसे direction से ओवरराइड करें।
बंडल किए गए फ़ॉन्ट
| इंपोर्ट | पंक्तियां | जानकारी |
|---|---|---|
@textjs/font/standard | 6 | FIGlet का डिफ़ॉल्ट |
@textjs/font/slant, smslant | 6, 5 | इटैलिक |
@textjs/font/small | 5 | कॉम्पैक्ट |
@textjs/font/big | 8 | ग्रीक शामिल |
@textjs/font/banner | 8 | # से बने अक्षर, काताकाना और सिरिलिक |
@textjs/font/block, lean | 8 | आउटलाइन, सीधे और तिरछे |
@textjs/font/shadow, smshadow | 5, 4 | ड्रॉप शैडो |
@textjs/font/script, smscript | 7, 5 | कर्सिव |
@textjs/font/mini | 4 | बहुत छोटा |
@textjs/font/bubble, digital | 4, 3 | गोलों और बॉक्स में अक्षर |
@textjs/font/ivrit | 6 | हिब्रू, दाएं से बाएं |
@textjs/font/term | 1 | इनपुट जैसा है वैसा |
हर ग्लिफ़ प्रिंट करने योग्य ASCII या Latin-1 है, इसलिए DevTools के Menlo में हर उप-अक्षर ठीक एक सेल का होता है। @textjs/font/all इन सभी को एक्सपोर्ट करता है, साथ ही गैलरी के लिए BUNDLED_FONTS भी। फ़ॉन्ट पहले रेंडर पर पार्स होते हैं, इंपोर्ट पर नहीं।
कस्टम फ़ॉन्ट
कोई भी FIGfont काम करता है। उसे फ़ेच करें, फिर पार्स करें:
import { parseFont } from "@textjs/font";const doom = parseFont(await (await fetch("/fonts/doom.flf")).text(), "Doom");पार्सर हेडर, कमेंट पंक्तियां, हार्डब्लैंक, एंडमार्क, 102 ज़रूरी अक्षर और दशमलव, ऑक्टल या हेक्स में कोड-टैग किए गए अक्षर पढ़ता है। TOIlet .tlf फ़ॉन्ट सादे टेक्स्ट के रूप में रेंडर होते हैं। ASCII या बॉक्स-ड्रॉइंग अक्षरों से बने फ़ॉन्ट को प्राथमिकता दें; Menlo में ब्रेल और इमोजी की चौड़ाई एक सेल नहीं होती।
लाइसेंसिंग
बंडल किए गए फ़ॉन्ट FIGlet 2.2.5 डिस्ट्रीब्यूशन के फ़ॉन्ट हैं, बाइट-दर-बाइट वही, और FIGlet के BSD 3-Clause लाइसेंस के तहत हैं। हर फ़ॉन्ट के क्रेडिट उसकी कमेंट पंक्तियों में रहते हैं, जो रनटाइम पर font.comment के रूप में उपलब्ध हैं। दोबारा वितरित करने की अनुमति के बिना वाले लोकप्रिय फ़ॉन्ट, जैसे Doom, Larry 3D, ANSI Shadow और Calvin S, बंडल नहीं किए गए हैं।
figlet से मिलान करके सत्यापन
टेस्ट सूट असली figlet 2.2.5 बाइनरी से रिकॉर्ड किए गए 273 आउटपुट दोबारा चलाता है: हर लेआउट मोड में हर बंडल किया गया फ़ॉन्ट, रैपिंग, जस्टिफ़िकेशन, दाएं-से-बाएं टेक्स्ट, पैराग्राफ़ मोड और FIGlet का अपना रिग्रेशन इनपुट। सभी बिल्कुल मेल खाते हैं।