Creación de Word Art con FIGlet - Spectre Console Series
Spectre Console es una biblioteca .NET diseñada para mejorar las aplicaciones de consola con texto enriquecido, paneles, tablas, barras de progreso e incluso arte textual ASCII. En lugar de limitarse a una salida en blanco y negro, puede añadir color, alineación y estructura visual a los datos que muestra. Una de sus características más llamativas es Spectre Console Figlet, que permite renderizar banners de texto de gran tamaño utilizando el formato clásico de fuente Figlet.
En este artículo vamos a profundizar en esta función a través del vídeo de Tim Corey sobre "Creación de Word Art con Figlet - Spectre Console Series".
Presentación de Figlet en Spectre Console
En el minuto 0:00, Tim recuerda a los espectadores que "Spectre Console te permite convertir tus aplicaciones de consola de C# en aplicaciones visualmente atractivas e informativas" Describe la biblioteca como una forma de crear herramientas de línea de comandos completas con paneles, tablas, indicadores de progreso y otros servicios, en lugar de tener que escribir manualmente códigos ANSI.
En el minuto 0:16, dice: "En esta lección, vamos a crear arte de la palabra ASCII utilizando un sistema llamado Figlet" Figlet ha existido durante décadas como una forma de convertir texto en arte ASCII estilo banner utilizando un archivo de fuente figlet (a menudo con una extensión .flf). Spectre Console viene con una fuente Figlet incorporada por defecto, pero también puede cargar otras. La biblioteca envuelve esta capacidad en una clase llamada FigletText (a veces denominada objeto Spectre Figlet Text), que puede crearse como una nueva instancia y luego aplicarle un estilo.
Tim señala en el minuto 0:22 que el código fuente de este ejemplo está enlazado en la descripción del vídeo para que los espectadores puedan descargarlo y seguirlo.
Primer ejemplo: Texto en línea de Figlet de la consola de Spectre
En el minuto 0:38, Tim comienza con lo que él llama "la manera fácil inline" Aquí es donde crea y renderiza el objeto Spectre Console Figlet Text en una sola sentencia:
AnsiConsole.Write(
new FigletText("Hello")
.Centered()
.Color(Color.Red)
);
AnsiConsole.Write(
new FigletText("Hello")
.Centered()
.Color(Color.Red)
);
En el minuto 0:46, Tim explica que está creando una nueva instancia de FigletText con el parámetro de cadena "Hello". Este parámetro es el texto a traducir.
En el minuto 0:53, encadena métodos de estilización directamente en el objeto. Primero .Centered() a la 1:00 para justificar y alinear el banner ASCII en el centro de las columnas disponibles. A continuación, .Color(Color.Red) a 1:02 para aplicar un color especificado, en este caso el rojo, como color de acento.
Cuando Tim ejecuta este código en el minuto 1:12, la consola muestra un "HELLO" ASCII rojo y en negrita en el formato de fuente Figlet incorporado. Es una forma rápida de añadir un gran título o encabezado a tu aplicación de consola.

Segundo ejemplo: Reutilización de un objeto FigletText
En el minuto 1:22, Tim muestra un segundo patrón: en lugar de crear el texto de Figlet en línea, se crea primero una variable. Esto facilita establecer o almacenar propiedades, cambiar estilos o reutilizar el mismo objeto.
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);
En el minuto 1:28, Tim crea la nueva instancia con la cadena "World". En el minuto 1:41, llama a .Centered() para centrarlo. En 1:44, establece el color de nuevo - bromea "vamos a hacerlo rojo porque ¿por qué no?" - y en 1:59 escribe el objeto en la consola con AnsiConsole.Write(figlet);.
Cuando se ejecuta a las 2:04, muestra "MUNDO" debajo de "HOLA" en caracteres ASCII grandes. Esto muestra que la función escribe dos bloques separados porque llamaste a Write dos veces.
Entender cómo funciona Write con Figlet
Tim hace una pausa en el minuto 2:10 para dar un detalle importante sobre cómo Spectre Console representa el texto de Figlet. Normalmente, AnsiConsole.Write no añade una nueva línea como hace WriteLine. Pero con ciertos objetos renderizables - como FigletText o un Panel - Spectre Console termina automáticamente el bloque con una nueva línea para que se muestre correctamente.
En el minuto 2:20, explica que la longitud de la cadena también puede provocar el efecto "wrapping" en función de la anchura de la ventana de la consola o del archivo de fuentes, pero se trata de una cuestión distinta del comportamiento de la nueva línea. Se trata de un contexto útil para los usuarios que construyen sistemas de comandos o scripts que escriben múltiples encabezados, tablas o barras de progreso: no se puede confiar en que Write actúe exactamente igual que lo hace con cadenas simples.
Opciones de estilo: Colores y más
En el minuto 2:53, Tim señala que el rojo no es el único color especificado. Puede utilizar verde, blanco, amarillo o cualquiera de los colores admitidos por la biblioteca:
figlet.Color(Color.Yellow);
figlet.Color(Color.Yellow);
En el minuto 3:00 señala que también se puede "hacer que parpadee" y aplicar otros estilos, aunque no profundiza en todas las opciones en esta breve lección. La idea clave es que el objeto FigletText expone propiedades públicas (como Color) que se pueden establecer o cambiar en tiempo de ejecución.

Esto muestra lo fácil que es elegir diferentes cadenas y colores para crear encabezados de marca, avisos o títulos de secciones de datos dentro de su aplicación de consola.
Fuentes y archivos Figlet
Aunque Tim mantiene la sencillez de este ejemplo, el sistema subyacente utiliza un formato de fuente figlet (archivos .flf) para representar cada carácter. Spectre Console incluye un valor por defecto para la fuente (llamada "Standard"), pero puedes apuntar el constructor FigletText a un archivo de fuente figlet diferente para cambiar completamente el aspecto de tu arte ASCII.
Esto hace posible abrir una ruta a una fuente personalizada, añadirla al proyecto y devolver un estilo de banner totalmente diferente. Esto no se muestra en el breve vídeo de Tim, pero forma parte de la misma API que está demostrando.
Usos prácticos en aplicaciones de consola
Tim concluye en el minuto 3:12 recordando a los espectadores que Figlet puede utilizarse para crear cabeceras interesantes para tu aplicación. Combinado con otras características de Spectre Console, como tablas para mostrar datos de bases de datos, barras de progreso para tareas de larga duración y paneles para agrupar información, FigletText puede ayudarte a crear un sistema de comandos que parezca pulido.
Por ejemplo, puede utilizar el texto de Figlet para:
-
Mostrar un gran título o número de versión al comienzo de una herramienta o script.
-
Mostrar encabezados de sección sobre las tablas de datos recuperados.
-
Proporcione un color de acento para resaltar un mensaje de advertencia o de éxito.
- Separar las diferentes acciones en un aviso o servicio de varios pasos.
Dado que FigletText es un objeto renderizable, puede almacenarlo en una variable, establecer o cambiar sus propiedades (color, alineación, cadena de texto) y luego escribirlo varias veces.
Resumen
La lección puede ser rápida, pero muestra exactamente cómo utilizar el soporte Figlet de Spectre Console para añadir estilo instantáneo a la salida de la consola.
Si quieres más detalles, Tim aconseja visitar el enlace al código fuente y la documentación de Spectre Console. También puede descargar fuentes Figlet adicionales si desea experimentar con diferentes estilos.
Puntos clave del vídeo de Tim Corey
-
Spectre Console Figlet le permite renderizar banners ASCII utilizando un objeto FigletText.
-
Puede crearlo en línea o como una nueva instancia, establecer sus propiedades y, a continuación, escribirlo.
-
Utiliza una fuente Figlet incorporada por defecto, pero puede cargar archivos de fuentes .flf personalizados.
-
.Centered() y .Color(Color.Red) son ejemplos de estilos que puede aplicar.
-
AnsiConsole.Write añade automáticamente una nueva línea para el texto Figlet.
- Esta función es perfecta para cabeceras, títulos o saltos de sección en aplicaciones de consola.
Si sigues el vídeo de Tim Corey, podrás empezar a utilizar inmediatamente el soporte Figlet de Spectre Console para mejorar tus propias herramientas de línea de comandos. Tanto si se trata de mostrar datos recuperados, como de escribir avisos o simplemente de añadir estilo a un script, FigletText le da a su consola un toque atrevido y colorido con un código mínimo.
