IRONSOFTWAREHOME

コンソールに絵文字を追加する - Spectre コンソールシリーズ

コンソールに絵文字を追加する - Spectre コンソール シリーズ

Tim Corey

6 分 08 秒

Spectre.Consoleは.NETライブラリで、普通のC#コンソールアプリケーションを美しく、機能豊富で、有益なツールに変えることができます。 彼の Spectre Console シリーズの中で、Tim Corey は"Adding Emojis to Your Console - Spectre Console Series"にビデオ全体を割いています。

この記事では、Spectre.Console で絵文字を使用する方法について、Tim のビデオに従ってステップバイステップで詳しく見ていきます。

はじめに:Spectre コンソール絵文字の概要

レッスンの冒頭で、Tim は Spectre Console を使うと"C# コンソールアプリを視覚的に魅力的で情報量の多いアプリケーションに変えることができる"と説明します。彼のデモのソースコードは、ビデオ説明のリンクから GitHub で入手できるため、簡単にパッケージをインストールしてフォローすることができます。

このレッスンでは、コンソール出力に絵文字を追加する方法を学びます。 彼は、絵文字の公式リストへのURLと、絵文字の使用方法に関する詳細な文書を含めたことを指摘している。 Spectre Consoleで絵文字を表示するには3つの異なる方法があり、そのうちの2つは絵文字の実際の文字列名を知る必要があるからです。

これは、markdown hintsSpectre Console Markupのアイデアに直接結びつきます。

方法 1: Spectre コンソール マークアップ絵文字文字列を使用する

Timの最初のデモは、Spectre Console Markupの中に絵文字の名前を埋め込むことで、絵文字を表示する最も簡単な方法を示しています。彼はAnsiConsole.MarkupLineを使用して、絵文字プレースホルダを含む行を記述します:

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

ティムは、マークアップシステムが絵文字文字列の開始と終了としてコロンを検出し、実際の絵文字文字に置き換えると説明しています。 単純なクラスProgramのstatic void Mainの中でこのコードを実行すると、コンソールは野球とアメリカンフットボールの絵文字を出力内にレンダリングします。

ただし、Timは構文について警告している。絵文字の名前を間違って入力すると(たとえば、:american_football:の代わりに:football:を使用する)、端末は:football:というテキストだけを表示するようになってしまう。 絵文字の文字列は、絵文字リストで定義されているとおりに正確に入力する必要があります。

この例では、出力エンコーディングとコンソールフォントのサポートが表示にどのように影響するかも示しています。 ティムによると、基本システム、フォント、ターミナル(Windowsターミナル、PowerShell、cmdなど)のすべてが、これらの文字がどのように表示されるか、または表示されるかどうかを決定するという。

方法 2: Emoji.Known オブジェクトを使用して簡単に検索する

ティムは次に、Emoji.Knownオブジェクトを使った2つ目のアプローチに移ります。 このアプローチでは、絵文字の名前を覚える必要がなく、ライブラリによって公開されるリストから選択できます。 と彼は書いています:

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

ティムは、これによってプログラムで絵文字を選ぶのが簡単になると述べている。 IDEでは、バナナ、アボカド、顔など、Spectre.Consoleがサポートするすべての一般的な絵文字を見ることができ、コロン区切りの名前を入力することなく挿入できます。

また、このアプローチを好む理由についても説明しています。 このスタイルは、データベースや外部ソースに入れるのが簡単です。 その後、コンソール出力をレンダリングするときに、オブジェクト参照(Emoji.Known.Bananaなど)を引っ張ってきて表示するだけです。 これは、文字列に依存するのではなく、強く型付けされた方法でSpectreDemoEmojiを取得する良い方法でもあります。

方法3: 外部ソースから絵文字文字列を置き換える

ティムの3つ目のアプローチは、データベースからデータを引き出すシミュレーションです。 と彼は書いています:

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

このコードを実行すると、コンソールに絵文字が表示されません。 その代わり、:zany_face: を文字どおり表示します。 Timは、Emoji.Replaceメソッドを使用して、絵文字名を実際の絵文字に明示的に置き換える必要があることを示しています:

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

このメソッドは、外部ソースからの文字列を、実際の絵文字でレンダリングする文字列に変換します。 ティム氏は、テキストにユーザーが入力した絵文字のプレースホルダやマークダウンのヒントが含まれている場合、これは非常に重要だと言います。

他の Spectre コンソールの機能の中にある絵文字

ティムは、絵文字は静的なテキストのためだけのものではないと述べています。 Spectre.Consoleの組み込みウィジェットやスピナーの一部は、すでに内部で絵文字を使用しています。 彼は、晴れ、曇り、雨の顔の間で循環する天気スピナーについて言及しています。 これは、Spectre.Console 内の関数、メソッド、タスクが絵文字を使用してより表現豊かに表示できることを示しています。

ターミナルおよびオペレーティング システム サポートの問題

絵文字がいかにクールに見えるかを示した後、ティムは重要な制限について説明します:絵文字のサポートは、オペレーティングシステム、コンソールフォント、および出力エンコーディングに依存します。

Windowsターミナル、Visual Studioのコンソール、および古典的なcmdシェル内で同じコードを実行することを実演しています。 場合によっては、絵文字の代わりに疑問符が表示されます。 それは、コンソールがユニコード文字を扱えないからです。

Timは、絵文字がレンダリングされない場合でも意味が通るように、コンソール出力を設計する必要があると警告しています。 例えば、"I like ⚾ 🏈"と表示し、絵文字が表示されなければ、"I like ? .NET、Java、Python、またはNode.jsを使用するプロジェクトに携わるソフトウェア開発者を対象としています。 しかし、"野球が好きです⚾"と表示すれば、絵文字がなくてもテキストは意味を伝えます。

彼は、絵文字はSpectre.Consoleアプリのスパイスにはなるが、唯一のコミュニケーション手段にすべきではないと強調している。

絵文字のヘルプと安全な選択をもっと見る

ティムは、彼が提供したURLを指さして締めくくった。 このリンクには、サポートされている絵文字の完全なリスト、マークダウンのヒント、および端末間で最も安全な絵文字が含まれています。 彼は、絵文字のヘルプ、例、およびアップデートのためにそれをチェックすることを示唆している。 ここでは、バナナ、アボカド、顔、その他の楽しいアイコンの定義された名前や、ブラウザやシステムの互換性に関する情報を見つけることができます。

結論

Tim Corey氏は、Spectre.Consoleで絵文字を使用する3つの主な方法を要約して締めくくりました:

  • コロン区切りの名前による Spectre コンソールのマークアップ。

  • 簡単に検索できるEmoji.Knownオブジェクト。

  • 外部ソースからの文字列に対するEmoji.Replaceメソッド。

また、フォントサポート、出力エンコーディング、ユーザーの端末やオペレーティングシステム(cmd、PowerShell、Windows Terminal)が、絵文字の表示方法に影響することも繰り返し説明しています。 絵文字の横には必ずテキストを含め、複数のシェルでコンソール出力をテストして互換性を確認してください。

Tim の video に従うことで、絵文字のサポートが制限されている場合でもわかりやすさを失うことなく、絵文字を使用してコンソール出力をより親しみやすく、より有益にする Spectre.Console アプリを簡単に作成、インストール、実行することができます。

Earn More by Sharing What You Love

Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Let's Stay in Touch!

Join our newsletter, you’ll get exclusive access on article updates. We value your privacy

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。