Saltar al pie de página
Iron Academy Logo
Aplicación C#
Aplicación C#

Otras categorías

Cómo añadir emojis a la consola - Spectre Console Series

Tim Corey
6m 08s

Spectre.Console es una biblioteca .NET que le ayuda a convertir aplicaciones de consola C# ordinarias en herramientas hermosas, ricas en funciones e informativas. En su Spectre Console Series, Tim Corey dedica un vídeo entero a "Adding Emojis to Your Console - Spectre Console Series".

En este artículo, profundizaremos en cómo trabajar con emojis en Spectre.Console siguiendo paso a paso el vídeo de Tim.

Introducción: Visión general del emoji de la consola de Spectre

Al principio de la lección, Tim explica que Spectre Console te permite "convertir tus aplicaciones de consola de C# en aplicaciones visualmente atractivas e informativas" Señala que el código fuente de su demostración está disponible en GitHub a través del enlace que aparece en la descripción del vídeo, lo que facilita la instalación del paquete y el seguimiento.

Tim dice que en esta lección vamos a aprender a añadir emojis a la salida de nuestra consola. Señala que ha incluido una URL a la lista oficial de emojis y más documentación sobre cómo utilizarlos. Esto es crucial, dice, porque hay tres maneras diferentes de mostrar emojis en Spectre Console y dos de ellas implican conocer el nombre real de la cadena del emoji.

Esto enlaza directamente con la idea de markdown hints y Spectre Console Markup, que Tim utiliza ampliamente en su demostración.

Método 1: Uso de cadenas emoji de marcado de la consola Spectre

La primera demostración de Tim muestra la forma más sencilla de mostrar emojis, incrustando nombres de emoji dentro de Spectre Console Markup. Utiliza AnsiConsole.MarkupLine para escribir una línea con marcadores de posición emoji:

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

Tim explica que el sistema de marcado detecta los dos puntos como inicio y final de una cadena emoji y los sustituye por los caracteres emoji reales. Si ejecuta este código dentro de su void estático Main en una clase simple Program, la consola muestra emojis de béisbol y fútbol americano justo dentro de su salida.

Sin embargo, Tim advierte sobre la sintaxis: si escribes mal el nombre del emoji (por ejemplo, usa :football: en lugar de :american_football:) el terminal volverá a mostrar solo el texto :football:. Observa que tienes que escribir la cadena emoji exactamente como se define en la lista emoji.

Spectre Console Adding Emojis 1 related to Método 1: Uso de cadenas emoji de marcado de la consola Spectre

Este ejemplo también muestra cómo afectan a la visualización la codificación de salida y la compatibilidad con fuentes de consola. Tim dice que el sistema subyacente, la fuente y el terminal (Windows Terminal, PowerShell, cmd, etc.) determinan si estos caracteres se representan o no.

Método 2: Uso del objeto Emoji.Known para facilitar la búsqueda

A continuación, Tim pasa a su segundo enfoque: utilizar el objeto Emoji.Known. Este enfoque evita memorizar los nombres de los emoji y permite seleccionarlos de una lista expuesta por la biblioteca. Escribe:

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

Tim señala que esto facilita la selección de emojis mediante programación. En el IDE se pueden ver todos los emojis generales que admite Spectre.Console, como plátano, aguacate, caras, etc., que se pueden insertar sin necesidad de escribir nombres delimitados por dos puntos.

También explica por qué se puede preferir este enfoque. Este estilo es más fácil de incorporar a una base de datos o a una fuente externa. Más tarde, al renderizar la salida de la consola, basta con extraer la referencia del objeto (como Emoji.Known.Banana) y mostrarla. Esta es también una buena manera de obtener SpectreDemoEmoji de una manera fuertemente tipada en lugar de depender de cadenas.

Método 3: Sustitución de cadenas emoji de fuentes externas

El tercer enfoque de Tim simula la extracción de datos de una base de datos. Escribe:

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

Al ejecutar este código, la consola no muestra ningún emoji. En cambio, imprime :zany_face: literalmente. Tim muestra que se deben sustituir explícitamente los nombres de emoji por emojis reales utilizando el método Emoji.Replace:

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

Este método transforma la cadena procedente de una fuente externa en una que se renderiza con emojis reales. Tim dice que esto es fundamental cuando el texto contiene marcadores de posición emoji introducidos por el usuario o sugerencias de markdown.

Spectre Console Adding Emojis 2 related to Método 3: Sustitución de cadenas emoji de fuentes externas

Emojis dentro de otras funciones de la consola Spectre

Tim señala que los emojis no son solo para texto estático. Algunos de los widgets y spinners integrados en Spectre.Console ya utilizan emojis internamente. Menciona una ruleta meteorológica que hace ciclos entre caras soleadas, nubladas y lluviosas. Esto muestra que las funciones, métodos y tareas dentro de Spectre.Console pueden utilizar emojis para hacer sus visualizaciones más expresivas.

Cuestiones de compatibilidad con terminales y sistemas operativos

Después de mostrar lo chulos que pueden quedar los emojis, Tim explica una limitación importante: la compatibilidad con emoji depende del sistema operativo, la fuente de la consola y la codificación de salida.

Demuestra la ejecución del mismo código en el Terminal de Windows, la consola de Visual Studio y el clásico intérprete de comandos cmd. En algunos casos, en lugar de emojis verás signos de interrogación. Esto se debe a que la consola no puede manejar los caracteres Unicode.

Tim advierte de que hay que diseñar la salida de la consola para que siga teniendo sentido si los emojis no se muestran. Por ejemplo, si se muestra "Me gusta ⚾ 🏈" y no aparecen los emojis, se convierte en "Me gusta ? ..." y el usuario ya no sabe de qué está hablando. Pero si se muestra "Me gusta el béisbol ⚾", incluso sin el emoji el texto sigue transmitiendo significado.

Spectre Console Adding Emojis 3 related to Cuestiones de compatibilidad con terminales y sistemas operativos

Subraya que, aunque los emojis pueden darle un toque especial a tu aplicación Spectre.Console, no debes convertirlos en tu único método de comunicación.

Más ayuda sobre emoji y opciones seguras

Tim concluye señalando la URL que ha proporcionado. Ese enlace contiene la lista completa de emojis admitidos, sugerencias de markdown y cuáles son los más seguros en los terminales. Sugiere consultarlo para obtener más ayuda sobre emoji, ejemplos y actualizaciones. Aquí encontrarás nombres definidos para plátanos, aguacates, caras y otros iconos divertidos, así como información sobre la compatibilidad de navegadores o sistemas.

Conclusión

Tim Corey concluye resumiendo las tres formas principales de utilizar emojis en Spectre.Console:

  • Spectre Console Markup con nombres delimitados por dos puntos.

  • El objeto Emoji.Known para facilitar la búsqueda.

  • El método Emoji.Replace para cadenas procedentes de fuentes externas.

También reitera que la compatibilidad de fuentes, la codificación de salida y el terminal o sistema operativo del usuario (cmd, PowerShell, Windows Terminal) afectan a la forma en que se muestran los emojis. Incluye siempre texto junto a los emojis y prueba la salida de la consola en varios shells para garantizar la compatibilidad.

Si sigues el vídeo de Tim, podrás crear, instalar y ejecutar fácilmente aplicaciones de Spectre.Console que utilizan emojis para que la salida de la consola sea más amigable e informativa, sin perder claridad cuando la compatibilidad con emojis es limitada.

Hero Worlddot related to Cómo añadir emojis a la consola - Spectre Console Series
Hero Affiliate related to Cómo añadir emojis a la consola - Spectre Console Series

Gana más compartiendo lo que te gusta

¿Creas contenidos para desarrolladores que trabajan con .NET, C#, Java, Python o Node.js? ¡Convierte tu experiencia en un ingreso extra!

Equipo de soporte de Iron

Estamos disponibles online las 24 horas, 5 días a la semana.
Chat
Email
Llámame