Przejdź do treści stopki
Iron Academy Logo
Aplikacja C#
Aplikacja C#

Inne Kategorie

Dodawanie emoji do konsoli - seria Spectre Console

Tim Corey
6m 08s

Spectre.Console to biblioteka .NET, która pomaga przekształcić zwykłe aplikacje konsolowe C# w piękne, bogate w funkcje i informacyjne narzędzia. W serii Spectre Console, Tim Corey poświęca cały film tematowi "Adding Emojis to Your Console - Spectre Console Series".

W tym artykułe przyjrzymy się, jak pracować z emotikonami w Spectre.Console, śledząc film Tima krok po kroku.

Wprowadzenie: Przegląd emotikonów Spectre Console

Na początku lekcji Tim wyjaśnia, że Spectre Console pozwala "przekształcić aplikacje konsolowe C# w wizualnie atrakcyjne, informacyjne aplikacje." Zauważa, że kod źródłowy jego demo jest dostępny na GitHubie poprzez link w opisie filmu, co ułatwia zainstalowanie pakietu i śledzenie dalszej części instrukcji.

Tim mówi, że w tej lekcji nauczymy się, jak dodać emotikony do naszego wyjścia konsolowego. Wskazuje, że zamieścił URL do oficjalnej listy emotikonów i więcej dokumentacji dotyczącej tego, jak ich używać. To jest kluczowe, jak mówi, ponieważ istnieją trzy różne sposoby wyświetlania emotikonów w Spectre Console, a dwa z nich obejmują znajomość rzeczywistej nazwy ciągu emotikona.

To bezpośrednio wiąże się z ideą podpowiedzi markdown i Spectre Console Markup, które Tim używa szeroko w swojej demonstracji.

Metoda 1: Użycie ciągów emotikonów Spectre Console Markup

Pierwsza demonstracja Tima ukazuje najprostszy sposób wyświetlania emotikonów - poprzez wbudowanie nazw emotikonów w Spectre Console Markup. Używa AnsiConsole.MarkupLine do napisania linii z emotikonowymi odniesieniami:

AnsiConsole.MarkupLine("I like :baseball: :american_football:");
AnsiConsole.MarkupLine("I like :baseball: :american_football:");

Tim wyjaśnia, że system znaczników wykrywa dwukropki jako początek i koniec ciągu emotikona i zastępuje je rzeczywistymi znakami emotikona. Jeśli uruchomisz ten kod w metodzie static void Main w prostym Programie klasy, konsola wyświetli emotikony baseballu i futbolu amerykańskiego bezpośrednio w twoim wyjściu.

Jednak Tim ostrzega przed składnią: jeśli źle wpiszesz nazwę emotikona (na przykład użyjesz :football: zamiast :american_football:), terminal wyświetli jedynie tekst :football:. Zauważa, że nazwę ciągu emotikona musisz wpisać dokładnie tak, jak jest zdefiniowana w liście emotikonów.

Spectre Console Adding Emojis 1 related to Metoda 1: Użycie ciągów emotikonów Spectre Console Markup

Ten przykład pokazuje również, jak kodowanie wyjścia i wsparcie dla czcionek konsolowych wpływają na wyświetlanie. Tim mówi, że system bazowy, czcionka i terminal (Windows Terminal, PowerShell, cmd, itp.) wszystkie determinują, jak lub czy te znaki są renderowane.

Metoda 2: Użycie obiektu Emoji.Known dla łatwiejszego wybierania

Tim następnie przechodzi do swojego drugiego podejścia: użycie obiektu Emoji.Known. To podejście unika zapamiętywania nazw emotikonów i pozwala wybierać je z listy udostępnianej przez bibliotekę. Pisze:

AnsiConsole.WriteLine($"Hello {Emoji.Known.WorldMap}");
AnsiConsole.WriteLine($"Hello {Emoji.Known.WorldMap}");

Tim zauważa, że to czyni wybieranie emotikonów programowo łatwiejszym. W IDE możesz zobaczyć wszystkie ogólne emotikony, które obsługuje Spectre.Console, jak banany, awokado, twarze i więcej, które mogą być wstawione bez potrzeby wpisywania nazw rozdzielonych dwukropkami.

On również wyjaśnia, dłączego możesz preferować to podejście. Ten styl jest łatwiejszy do umieszczenia w bazie danych lub zewnętrznym źródle. Później, kiedy generujesz wyjście konsolowe, po prostu wywołujesz odniesienie do obiektu (takie jak Emoji.Known.Banana) i wyświetlasz je. Jest to również miły sposób na uzyskanie SpectreDemoEmoji w sposób ściśle typowany, zamiast polegać na ciągach.

Metoda 3: Zastępowanie ciągów emotikonów z zewnętrznych źródeł

Trzecie podejście Tima symuluje pobieranie danych z bazy danych. Pisze:

string displayText = "I am totally normal :zany_face:\n";
AnsiConsole.Write(displayText);
string displayText = "I am totally normal :zany_face:\n";
AnsiConsole.Write(displayText);

Kiedy uruchomisz ten kod, konsola nie pokazuje emotikona. Zamiast tego wyświetla :zany_face: dosłownie. Tim pokazuje, że musisz jawnie zastąpić nazwy emotikonów rzeczywistymi emotikonami, używając metody Emoji.Replace:

AnsiConsole.Write(Emoji.Replace(displayText));
AnsiConsole.Write(Emoji.Replace(displayText));

Ta metoda przekształca ciąg pochodzący z zewnętrznego źródła w taki, który renderuje się z rzeczywistymi emotikonami. Tim mówi, że to jest kluczowe, gdy twój tekst zawiera wstawiane przez użytkownika odniesienia do emotikonów lub podpowiedzi markdown.

Spectre Console Adding Emojis 2 related to Metoda 3: Zastępowanie ciągów emotikonów z zewnętrznych źródeł

Emotikony wewnątrz innych funkcji Spectre Console

Tim zauważa, że emotikony nie są tylko dla statycznego tekstu. Niektóre z wbudowanych widgetów i spinnerów Spectre.Console już zawierają emotikony wewnętrznie. Wspomina o spinnerze pogodowym, który cyklicznie przechodzi przez słoneczne, pochmurne i deszczowe twarze. Pokazuje to, że funkcje, metody i zadania w Spectre.Console mogą używać emotikonów, aby uczynić ich wyświetlanie bardziej ekspresyjnym.

Zagadnienia wsparcia terminala i systemu operacyjnego

Po pokazaniu, jak świetnie mogą wyglądać emotikony, Tim wyjaśnia ważne ograniczenie: wsparcie dla emotikonów zależy od systemu operacyjnego, czcionki konsoli i kodowania wyjścia.

Demonstruje uruchamianie tego samego kodu wewnątrz Windows Terminal, konsoli Visual Studio oraz klasycznego cmd. W niektórych przypadkach zamiast emotikonów zobaczysz znaki zapytania. To dlatego, że konsola nie jest w stanie obsłużyć znaków Unicode.

Tim ostrzega, że musisz zaprojektować swoje wyjście konsolowe tak, żeby nadal miało sens, jeśli emotikony nie będą renderowane. Na przykład, jeśli pokażesz "I like ⚾ 🏈" i emotikony się nie pojawią, staje się "I like ? ?" i użytkownik już nie wie, o czym mówisz. Ale jeśli wyświetlisz "I like baseball ⚾" to nawet bez emotikona tekst nadal niesie znaczenie.

Spectre Console Adding Emojis 3 related to Zagadnienia wsparcia terminala i systemu operacyjnego

Podkreśla, że choć emotikony mogą dodać uroku twojej aplikacji Spectre.Console, nie powinieneś używać ich jako jedynej metody komunikacji.

Więcej pomocy dotyczącej emotikonów i bezpieczne wybory

Tim kończy, wskazując na URL, który podał. Ten link zawiera pełną listę obsługiwanych emotikonów, podpowiedzi markdown i które z nich są najbezpieczniejsze w różnych terminalach. Sugeruje sprawdzenie go w celu uzyskania więcej pomocy, przykładów i aktualizacji dotyczących emotikonów. To jest miejsce, gdzie znajdziesz zdefiniowane nazwy dla bananów, awokado, twarzy i innych zabawnych ikon, a także informacje o kompatybilności z przeglądarkami lub systemami.

Wnioski

Tim Corey kończy, podsumowując trzy główne sposoby używania emotikonów w Spectre.Console:

  • Spectre Console Markup z nazwami rozdzielonymi dwukropkami.

  • Obiekt Emoji.Known dla łatwego wyszukiwania.

  • Metoda Emoji.Replace dla ciągów pochodzących z zewnętrznych źródeł.

On również powtarza, że wsparcie czcionek, kodowanie wyjścia i terminal lub system operacyjny użytkownika (cmd, PowerShell, Windows Terminal) wpływają na to, jak emotikony są wyświetlane. Zawsze uwzględniaj tekst obok emotikonów i testuj swoje wyjście konsolowe w wielu powłokach, aby zapewnić zgodność.

Podejmując kroki Tima w jego filmie, możesz łatwo tworzyć, instalować i uruchamiać aplikacje Spectre.Console, które używają emotikonów, aby twoje wyjście konsolowe było bardziej przyjazne i informacyjne - bez utraty klarowności, gdy wsparcie dla emotikonów jest ograniczone.

Hero Worlddot related to Dodawanie emoji do konsoli - seria Spectre Console
Hero Affiliate related to Dodawanie emoji do konsoli - seria Spectre Console

Zarabiaj więcej, dzieląc się tym, co kochasz

Tworzysz treści dla deweloperów pracujących z .NET, C#, Java, Python, czy Node.js? Zamień swoją wiedzę specjalistyczną na dodatkowy dochód!

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie