Tworzenie sztuki słownej z FIGlet - seria Spectre Console
Spectre Console to biblioteka .NET zaprojektowana w celu udoskonalenia aplikacji konsolowych poprzez wzbogacenie ich o kolorowy tekst, panele, tabele, paski postępu, a nawet sztukę ASCII. Zamiast ograniczać się do prostego czarno-białego wyjścia, możesz dodać kolor, wyrównanie oraz strukturę wizualną do danych, które wyświetlasz. Jedną z najbardziej przyciągających wzrok funkcji jest Spectre Console Figlet, która pozwala na renderowanie dużych banerów tekstowych za pomocą klasycznego formatu czcionki Figlet.
W tym artykułe przyjrzymy się bliżej tej funkcji w oparciu o wideo Tima Coreya "Tworzenie Word Art przy pomocy Figlet - Spectre Console Series".
Przedstawienie Figlet w Spectre Console
O 0:00 Tim przypomina widzom, że "Spectre Console pozwala zamienić aplikacje konsolowe C# w atrakcyjne wizualnie, informacyjne aplikacje." Opisuje bibliotekę jako sposób na budowę pełnowartościowych narzędzi wiersza poleceń z panelami, tabelami, wskaźnikami postępu i innymi usługami bez samodzielnego pisania kodów ANSI.
O 0:16 mówi: "W tej lekcji stworzymy słowo-rysunek ASCII za pomocą systemu o nazwie Figlet." Figlet istnieje od dekad jako sposób renderowania tekstu w stylu banerów ASCII art przy użyciu pliku czcionki figlet (często z rozszerzeniem .flf). Spectre Console dostarcza wbudowaną czcionkę Figlet domyślnie, ale może również ładować inne. Biblioteka opakowuje tę funkcję w klasę o nazwie FigletText (czasami nazywaną obiektem Spectre Figlet Text), którą można utworzyć jako nową instancję, a następnie stylizować.
Tim zauważa o 0:22, że kod źródłowy tego przykładu jest podlinkowany w opisie wideo, aby widzowie mogli go pobrać i podążać za przykładami.
Pierwszy przykład: Inline Spectre Console Figlet Text
O 0:38 Tim zaczyna od tego, co nazywa "łatwym sposobem inline". To miejsce, w którym tworzysz i renderujesz obiekt Spectre Console Figlet Text w jednym zdaniu:
AnsiConsole.Write(
new FigletText("Hello")
.Centered()
.Color(Color.Red)
);
AnsiConsole.Write(
new FigletText("Hello")
.Centered()
.Color(Color.Red)
);
O 0:46 Tim wyjaśnia, że tworzy nową instancję FigletText z parametrem łańcuchowym "Hello". Ten parametr to tekst do renderowania.
O 0:53 łańcuchuje metody stylizowania bezpośrednio na obiekcie. Najpierw .Centered() o 1:00, aby ustawić i wyrównać baner ASCII na środku dostępnych kolumn. Następnie .Color(Color.Red) o 1:02, aby zastosować określony kolor — w tym przypadku czerwony jako kolor akcentu.
Kiedy Tim uruchamia ten kod o 1:12, konsola wyświetla pogrubiony, czerwony ASCII "HELLO" w wbudowanym formacie czcionki Figlet. To szybki sposób na dodanie dużego tytułu lub nagłówka do aplikacji konsolowej.

Drugi przykład: Ponowne użycie obiektu FigletText
O 1:22 Tim pokazuje drugi wzorzec: zamiast tworzyć tekst Figlet inline, najpierw tworzysz zmienną. Ułatwia to ustawienie lub przechowywanie właściwości, zmienianie stylów, czy ponowne wykorzystanie tego samego obiektu.
var figlet = new FigletText("World");
figlet.Centered();
figlet.Color(Color.Red);
AnsiConsole.Write(figlet);
var figlet = new FigletText("World");
figlet.Centered();
figlet.Color(Color.Red);
AnsiConsole.Write(figlet);
O 1:28 Tim tworzy nową instancję z łańcuchem "World". O 1:41 wywołuje .Centered() aby go wycentrować. O 1:44 ponownie ustawia kolor — żartuje "zróbmy na czerwono, bo czemu nie?" — a o 1:59 zapisuje obiekt na konsoli z wykorzystaniem AnsiConsole.Write(figlet);.
Po uruchomieniu o 2:04 wyświetla się "WORLD" poniżej wcześniejszego "HELLO" w dużej sztuce ASCII. To pokazuje, że funkcja zapisuje dwa osobne bloki, ponieważ dwukrotnie wywołałeś Write.
Zrozumienie działania Write z Figlet
Tim zatrzymuje się o 2:10, aby omówić ważny szczegół dotyczący sposobu, w jaki Spectre Console renderuje tekst Figlet. Standardowo AnsiConsole.Write nie dodaje nowej linii, jak to robi WriteLine. Ale w przypadku pewnych obiektów do renderowania — takich jak FigletText lub Panel — Spectre Console automatycznie kończy blok nową linią, aby był poprawnie wyświetlany.
Wyjaśnia o 2:20, że długość łańcucha może również powodować zawijanie w zależności od szerokości okna konsoli lub pliku czcionki, ale to jest osobny problem od zachowania nowej linii. To użyteczny kontekst dla użytkowników budujących systemy komend lub skrypty, które zapisują wiele nagłówków, tabel lub pasków postępu: nie możesz polegać na tym, że Write działa dokładnie tak samo, jak dla zwykłych łańcuchów.
Opcje stylizacji: kolory i więcej
O 2:53 Tim zauważa, że nie jesteś ograniczony do czerwonego jako określonego koloru. Możesz użyć zielonego, białego, żółtego lub któregoś z obsługiwanych przez bibliotekę kolorów:
figlet.Color(Color.Yellow);
figlet.Color(Color.Yellow);
Zauważa o 3:00, że można także "sprawić, aby migało" i zastosować inne style, choć nie omawia wszystkich opcji w tej krótkiej lekcji. Kluczowym wnioskiem jest to, że obiekt FigletText udostępnia publiczne właściwości (takie jak Kolor), które można ustawić lub zmienić w czasie wykonywania.

To pokazuje, jak łatwo można wybrać różne łańcuchy i kolory, aby stworzyć markowe nagłówki, komunikaty zapytania lub tytuły sekcji danych wewnątrz aplikacji konsolowej.
Czcionki i pliki Figlet
Chociaż Tim trzyma ten przykład prosty, system bazowy korzysta z formatu czcionki figlet (.flf files), aby renderować każdy znak. Spectre Console zawiera domyślną wartość dla czcionki (nazywaną "Standard"), ale można przekierować konstruktor FigletText na inny plik czcionki figlet, aby całkowicie zmienić wygląd sztuki ASCII.
To sprawia, że możliwe jest otwarcie ścieżki do niestandardowej czcionki, dodanie jej do projektu i uzyskanie zupełnie innego stylu baneru. To nie jest pokazane w krótkim wideo Tima, ale jest częścią tego samego API, które demonstruje.
Praktyczne zastosowania w aplikacjach konsolowych
Tim kończy o 3:12, przypominając widzom, że Figlet może być używany do tworzenia interesujących nagłówków dla Twojej aplikacji. Połączenie z innymi funkcjami Spectre Console — jak tabele do wyświetlania danych bazy danych, paski postępu dla długotrwałych zadań i panele do grupowania informacji — FigletText może pomóc Ci w budowie systemu poleceń, który wygląda na dopracowany.
Na przykład, możesz użyć tekstu Figlet, aby:
-
Wyświetlić duży tytuł lub numer wersji na początku narzędzia lub skryptu.
-
Pokazać nagłówki sekcji nad tabelami pobranych danych.
-
Zapewnić kolor akcentu, aby podkreślić komunikat ostrzegający lub potwierdzający sukces.
- Oddzielać różne działania w kilkuetapowym zapytaniu lub usłudze.
Ponieważ FigletText jest obiektem do renderowania, możesz go przechowywać w zmiennej, ustawiać lub zmieniać jego właściwości (kolor, wyrównanie, tekst łańcucha), a następnie zapisywać go wiele razy.
Podsumowanie
Lekcja może być szybka, ale dokładnie pokazuje, jak używać wsparcia Figlet w Spectre Console, aby dodać natychmiastowy styl do Twojej konsolowej wyjścia.
Jeśli chcesz więcej szczegółów, Tim doradza odwiedzenie linku do kodu źródłowego i dokumentacji Spectre Console. Tam również można pobrać dodatkowe czcionki Figlet, jeśli chcesz eksperymentować z różnymi stylami.
Kluczowe punkty z wideo Tima Coreya
-
Spectre Console Figlet pozwala na renderowanie banerów ASCII przy użyciu obiektu FigletText.
-
Możesz go utworzyć inline lub jako nową instancję, ustawić jego właściwości, a następnie zapisać.
-
Domyślnie korzysta z wbudowanej czcionki Figlet, ale może ładować niestandardowe pliki czcionek .flf.
-
.Centered() i .Color(Color.Red) to przykłady stylów, które można zastosować.
-
AnsiConsole.Write automatycznie dodaje nową linię dla tekstu Figlet.
- Ta funkcja idealnie nadaje się do nagłówków, tytułów lub przerw sekcji w aplikacjach konsolowych.
Podążając za wideo Tima Coreya, możesz od razu zacząć korzystać ze wsparcia Figlet w Spectre Console w celu ulepszenia swoich własnych narzędzi wiersza poleceń. Niezależnie od tego, czy wyświetlasz pobrane dane, piszesz zapytania, czy po prostu dodajesz styl do skryptu, FigletText daje Twojej konsoli wyraźną, kolorową przewagę przy minimalnej ilości kodu.
