Ir para o conteúdo do rodapé
Iron Academy Logo
Aplicação C#
Aplicação C#

Outras categorias

Adicionando emojis ao seu console - Série de consoles Spectre

Tim Corey
6m 08s

Spectre.Console é uma biblioteca .NET que ajuda você a transformar aplicativos de console C# comuns em ferramentas bonitas, ricas em recursos e informativas. Em sua série Spectre Console, Tim Corey dedica um vídeo inteiro a " Adicionando emojis ao seu console - Série Spectre Console ".

Neste artigo, vamos analisar mais detalhadamente como trabalhar com emojis no Spectre.Console, seguindo o vídeo do Tim passo a passo.

Introdução: Visão geral dos emojis do console Spectre

No início da aula, Tim explica que o Spectre Console permite "transformar seus aplicativos de console C# em aplicativos visualmente atraentes e informativos". Ele observa que o código-fonte da demonstração está disponível no GitHub através do link na descrição do vídeo, o que facilita a instalação do pacote e o acompanhamento.

Tim diz que nesta lição vamos aprender como adicionar emojis à saída do console. Ele destaca que incluiu um link para a lista oficial de emojis e mais documentação sobre como usá-los. Isso é crucial, diz ele, porque existem três maneiras diferentes de exibir emojis no Spectre Console e duas delas envolvem saber o nome da string do emoji.

Isso se relaciona diretamente com a ideia de dicas de Markdown e Markup do Spectre Console , que Tim usa amplamente em sua demonstração.

Método 1: Usando strings de emojis em Markup do Spectre Console

A primeira demonstração de Tim mostra a maneira mais simples de exibir emojis: incorporando os nomes dos emojis na marcação do Spectre Console. Ele usa AnsiConsole.MarkupLine para escrever uma linha com marcadores de posição para emojis:

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

Tim explica que o sistema de marcação detecta os dois pontos como o início e o fim de uma sequência de emojis e os substitui pelos caracteres emoji reais. Se você executar esse código dentro do método main estático de uma classe simples Program, o console exibirá emojis de beisebol e futebol americano diretamente na saída.

No entanto, Tim alerta sobre a sintaxe: se você digitar o nome do emoji incorretamente (por exemplo, usar :football: em vez de :american_football:), o terminal exibirá apenas o texto :football:. Ele observa que você precisa digitar a sequência de emojis exatamente como está definida na lista de emojis.

Spectre Console Adding Emojis 1 related to Método 1: Usando strings de emojis em Markup do Spectre Console

Este exemplo também mostra como a codificação de saída e o suporte a fontes do console afetam a exibição. Tim afirma que o sistema subjacente, a fonte e o terminal (Windows Terminal, PowerShell, cmd, etc.) determinam como e se esses caracteres serão exibidos.

Método 2: Utilizando o objeto Emoji.Known para facilitar a pesquisa

Tim então passa para sua segunda abordagem: usar o objeto Emoji.Known. Essa abordagem evita a necessidade de memorizar os nomes dos emojis e permite selecioná-los a partir de uma lista disponibilizada pela biblioteca. Ele escreve:

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

Tim observa que isso facilita a seleção programática de emojis. No IDE, você pode ver todos os emojis gerais que o Spectre.Console suporta, como banana, abacate, rostos e muito mais, que podem ser inseridos sem a necessidade de digitar nomes separados por dois pontos.

Ele também explica por que você pode preferir essa abordagem. Este estilo é mais fácil de inserir em um banco de dados ou em uma fonte externa. Mais tarde, ao renderizar a saída do console, basta obter a referência do objeto (como Emoji.Known.Banana) e exibi-la. Essa também é uma ótima maneira de obter SpectreDemoEmoji de forma fortemente tipada, em vez de depender de strings.

Método 3: Substituindo sequências de emojis por fontes externas

A terceira abordagem de Tim simula a extração de dados de um banco de dados. Ele escreve:

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

Ao executar este código, o console não exibe nenhum emoji. Em vez disso, imprime literalmente :zany_face:. Tim demonstra que é necessário substituir explicitamente os nomes dos emojis por emojis reais usando o método Emoji.Replace:

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

Este método transforma a string proveniente de uma fonte externa em uma que seja renderizada com emojis reais. Tim afirma que isso é crucial quando seu texto contém marcadores de posição com emojis inseridos pelo usuário ou dicas em Markdown.

Spectre Console Adding Emojis 2 related to Método 3: Substituindo sequências de emojis por fontes externas

Emojis em outros recursos do console Spectre

Tim observa que os emojis não servem apenas para textos estáticos. Alguns dos widgets e seletores integrados do Spectre.Console já usam emojis internamente. Ele menciona um girador meteorológico que alterna entre faces ensolaradas, nubladas e chuvosas. Isso demonstra que funções, métodos e tarefas dentro do Spectre.Console podem usar emojis para tornar suas exibições mais expressivas.

Problemas de suporte a terminais e sistemas operacionais

Depois de mostrar como os emojis podem ser legais, Tim explica uma limitação importante: o suporte a emojis depende do seu sistema operacional, da fonte do console e da codificação de saída.

Ele demonstra a execução do mesmo código no Terminal do Windows, no console do Visual Studio e no shell cmd clássico. Em alguns casos, em vez de emojis, você verá pontos de interrogação. Isso ocorre porque o console não consegue lidar com caracteres Unicode.

Tim alerta que você deve projetar a saída do console de forma que ela ainda faça sentido mesmo se os emojis não forem exibidos. Por exemplo, se você mostrar "Eu gosto de ⚾ 🏈" e os emojis não aparecerem, ficará "Eu gosto de ?". ?" e o usuário já não sabe do que você está falando. Mas se você exibir "Eu gosto de beisebol ⚾", mesmo sem o emoji, o texto ainda transmite o significado.

Spectre Console Adding Emojis 3 related to Problemas de suporte a terminais e sistemas operacionais

Ele enfatiza que, embora os emojis possam dar um toque especial ao seu aplicativo Spectre.Console, você não deve usá-los como seu único método de comunicação.

Mais ajuda com emojis e opções seguras

Tim conclui indicando o endereço URL que forneceu. Esse link contém a lista completa de emojis suportados, dicas de Markdown e quais são os mais seguros em diferentes terminais. Ele sugere consultar o site para obter mais ajuda, exemplos e atualizações sobre emojis. Aqui você encontrará os nomes definidos para bananas, abacates, rostos e outros ícones divertidos, além de informações sobre compatibilidade com navegadores ou sistemas operacionais.

Conclusão

Tim Corey conclui resumindo as três principais maneiras de usar emojis no Spectre.Console:

  • Marcação do console Spectre com nomes separados por dois pontos.

  • O objeto Emoji.Known para facilitar a pesquisa.

  • O método Emoji.Replace para strings provenientes de fontes externas.

Ele também reitera que o suporte a fontes, a codificação de saída e o terminal ou sistema operacional do usuário (cmd, PowerShell, Terminal do Windows) afetam a forma como os emojis são exibidos. Inclua sempre texto ao lado dos emojis e teste a saída do console em vários shells para garantir a compatibilidade.

Seguindo o vídeo do Tim, você pode facilmente criar, instalar e executar aplicativos Spectre.Console que usam emojis para tornar a saída do seu console mais amigável e informativa, sem perder a clareza quando o suporte a emojis é limitado.

Hero Worlddot related to Adicionando emojis ao seu console - Série de consoles Spectre
Hero Affiliate related to Adicionando emojis ao seu console - Série de consoles Spectre

Ganhe mais compartilhando o que você ama.

Você cria conteúdo para desenvolvedores que trabalham com .NET, C#, Java, Python ou Node.js? Transforme sua expertise em renda extra!

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim