Cómo generar texto artístico ASCII desde la terminal usando Figlet en Ubuntu 18.04

Cómo generar texto artístico ASCII desde la terminal usando Figlet en Ubuntu 18.04

¿Alguien recuerda esos generadores de claves que usó para activar esos programas genuinos de forma gratuita? Siempre incluían la firma o el nombre del grupo con arte ASCII como este:

.__.         __      .     .  .      .  .  .__       .      | 
|  |. .._.  /  ` _  _| _   |  | _ ._.| _|  [__) _  _.;_/ __ | 
|__|(_|[    \__.(_)(_](/,  |/\|(_)[  |(_]  |  \(_)(_.| \_)  * 

Normalmente, imaginarías que lo generaran manualmente, sin embargo, hay muchas herramientas que le permiten generar automáticamente el arte ASCII a partir de texto sin formato. En este artículo, le explicaré cómo instalar y usar Figlet fácilmente en su servidor o escritorio Ubuntu 18.04.

1. Instalar Figlet

FIGlet imprime su entrada usando caracteres grandes (llamados `` caracteres FIG '') compuestos por caracteres de pantalla ordinarios (llamados `` subcaracteres ''). La salida de FIGlet generalmente recuerda al tipo de `` firmas '' que a muchas personas les gusta poner al final del correo electrónico y los mensajes de UseNet. También recuerda la salida de algunos programas de banner, aunque está orientado normalmente, no hacia los lados. El paquete Figlet está disponible directamente desde los repositorios APT de Ubuntu. Ejecute el siguiente comando en la terminal:

sudo apt-get install figlet

Después de la instalación, la herramienta figlet estará disponible desde la línea de comando. La herramienta acepta las siguientes opciones:

  • -f fontfile: Seleccione la fuente. El sufijo .flf se puede dejar fuera de fontfile, en cuyo caso FIGlet lo agrega automáticamente. FIGlet busca el archivo primero en el directorio de fuentes predeterminado y luego en el directorio actual, o, si fontfile se proporcionó como una ruta completa, en el directorio dado. Si no se especifica la opción -f, FIGlet usa la fuente que se especificó cuando se compiló. Para saber qué tipo de letra es, use la opción -I3.
  • -d fontdirectory: Cambia el directorio de fuentes predeterminado. FIGlet busca fuentes primero en el directorio predeterminado y luego en el directorio actual. Si no se especifica la opción -d, FIGlet usa el directorio que se especificó cuando se compiló. Para saber qué directorio es, use la opción -I2.
  • -c, -l, -r, -x: Estas opciones manejan la justificación de la salida de FIGlet. -c centra la salida horizontalmente. -l hace que la salida quede alineada a la izquierda. -r lo hace al ras a la derecha. -x (predeterminado) establece la justificación según se seleccione texto de izquierda a derecha o de derecha a izquierda. El texto de izquierda a derecha estará alineado a la izquierda, mientras que el texto de derecha a izquierda estará alineado a la derecha. (El texto de izquierda a derecha o de derecha a izquierda está controlado por -L, -R y -X).
  • -t, -w outputwidth: Estas opciones controlan el ancho de salida, o el ancho de pantalla que asume FIGlet al formatear su salida. FIGlet utiliza el ancho de salida para determinar cuándo romper líneas y cómo centrar la salida. Normalmente, FIGlet asume 80 columnas para que las personas con terminales anchos no molesten a las personas a las que envían correos electrónicos con la salida de FIGlet. -t establece el ancho de salida en el ancho del terminal. Si no se puede determinar el ancho del terminal, se retiene el ancho de salida anterior. -w establece el ancho de salida en el entero dado. Un ancho de salida de 1 es un valor especial que le dice a FIGlet que imprima cada carácter de FIG sin espacio, en su totalidad, en una línea separada, sin importar cuán ancha sea.
  • -p, -n: Estas opciones controlan cómo FIGlet maneja las nuevas líneas. -p pone FIGlet en el `` modo de párrafo '', lo que elimina algunos saltos de línea innecesarios al canalizar un archivo de varias líneas a través de FIGlet. En el modo de párrafo, FIGlet trata los saltos de línea dentro de un párrafo como si fueran simplemente espacios en blanco entre palabras. (Específicamente, -p hace que FIGlet convierta cualquier nueva línea que no esté precedida por una nueva línea y no seguida por un carácter de espacio en un espacio en blanco.) -N (predeterminado) devuelve a FIGlet a la normalidad, en la que cada nueva línea que lee FIGlet hace que se vuelva producir un salto de línea.
  • -D -E, -D cambia al juego de caracteres alemán (ISO 646-DE). Convierte `[',` \' y `] 'en A, O y U umlauted, respectivamente. `{',` |' y `} 'se convierten en las respectivas versiones en minúscula de estos. `~ 'se convierte en sz. -E desactiva el procesamiento -D. Estas opciones están obsoletas, lo que significa que probablemente no aparecerán en la próxima versión de FIGlet.
  • -C controlfile -N: Estas opciones tratan con archivos de control FIGlet. Un archivo de control es un archivo que contiene una lista de comandos que FIGlet ejecuta cada vez que lee un carácter. Estos comandos pueden asignar ciertos caracteres de entrada a otros caracteres, similar al comando tr de Unix o la opción FIGlet -D. FIGlet mantiene una lista de archivos de control, que está vacía cuando FIGlet se inicia. -C agrega el archivo de control dado a la lista. -N borra la lista de archivos de control, cancelando el efecto de cualquier -C anterior. FIGlet ejecuta los comandos en todos los archivos de control de la lista. Consulte el archivo figfont.txt, proporcionado con FIGlet, para obtener detalles sobre cómo escribir un archivo de control.
  • -s -S -k -W -o: Estas opciones controlan cómo FIGlet espacia los caracteres FIG que genera. -s (predeterminado) y -S causan `` smushing ''. Los caracteres FIG se muestran lo más juntos posible y se eliminan los subcaracteres superpuestos. Exactamente qué subcaracteres cuentan como `` superpuestos '' depende del modo de diseño de la fuente, que está definido por el autor de la fuente. -k provoca `` kerning ''. Se eliminan tantos espacios en blanco como sea posible entre los caracteres FIG, de modo que se toquen, pero los caracteres FIG no se aplastan. -W hace que FIGlet muestre todos los caracteres de FIG en su ancho completo, que puede ser fijo o variable, dependiendo de la fuente. La diferencia entre -s y -S es que -s no borrará una fuente cuyo autor especificó el kerning o el ancho completo como el modo de diseño predeterminado, mientras que -S intentará hacerlo. Si no hay información en el tipo de letra sobre cómo aplicar el pulido, o si se especifica la opción -o, entonces los caracteres de FIG están `` superpuestos ''. Esto significa que después del interletraje, se elimina el primer subcarácter de cada carácter FIG. (Esto no se hace si un carácter FIG contiene solo un subcarácter).
  • -m layoutmode: Especifica un modo de diseño explícito entre 1 y 63. Los modos Smush se explican en figfont.txt, que también proporciona información completa sobre el formato de una fuente FIGlet. En aras de la compatibilidad con versiones anteriores de FIGlet anteriores a la 2.2, -m0 es equivalente a -k, -m-1 es equivalente a -W y -m-2 es equivalente a -s. El modificador -m normalmente solo lo utilizan los diseñadores de fuentes que prueban los distintos modos de diseño con una nueva fuente.
  • -v -I infocode: Estas opciones imprimen información diversa sobre FIGlet y luego salen. Si se dan varias de estas opciones en la línea de comandos, solo se ejecuta la última, y ​​solo después de que se hayan tratado todas las demás opciones de la línea de comandos. -v imprime la versión y la información de derechos de autor, así como una línea de `` Uso: ... ''. -Imprime la información correspondiente al infocode dado en un formato consistente y confiable (es decir, garantizado que será el mismo en futuras versiones). -I está destinado principalmente a ser utilizado por programas que utilizan FIGlet. El código de información puede ser cualquiera de los siguientes.
    • -1: funcionamiento normal (predeterminado). Este código de información indica que FIGlet debería funcionar normalmente, sin dar ninguna impresión informativa, imprimiendo su entrada en la fuente seleccionada.

    • 0: Versión y copyright. Esto es idéntico a -v.

    • 1: Versión (entero). Esto imprimirá la versión de su copia de FIGlet como un entero decimal. El número de versión principal se multiplica por 10000, el número de subversión se multiplica por 100 y el número de subversión se multiplica por 1. Estos se suman y se imprime el resultado. Por ejemplo, FIGlet 2.2 imprimirá `` 20200 '', la versión 2.2.1 imprimirá `` 20201 ''. De manera similar, ascendente, con versiones posteriores que tienen números más altos. Tenga en cuenta que la primera versión principal de FIGlet, la versión 2.0, no tenía la opción -I.

    • 2: directorio de fuentes predeterminado. Esto imprimirá el directorio de fuentes predeterminado. Se ve afectado por la opción -d.

    • 3: Fuente:. Esto imprimirá el nombre de la fuente que usaría FIGlet. Se ve afectado por la opción -f. Este no es un nombre de archivo; el sufijo `` .flf '' no se imprime.

    • 4: Ancho de salida. Esto imprimirá el valor que FIGlet usaría para el ancho de salida, el número de columnas de ancho que FIGlet asume que es la pantalla. Se ve afectado por las opciones -w y -t.

    • 5: formatos de fuente compatibles. Esto mostrará una lista de los formatos de fuente admitidos por FIGlet. Los formatos posibles son `` flf2 '' para los archivos .flf de la versión 2 de FIGfont y `` tlf2 '' para los archivos .tlf de TOIlet. Si el código de información es cualquier otro valor positivo, FIGlet simplemente saldrá sin imprimir nada.

  • -L -R -X: Estas opciones controlan si FIGlet imprime de izquierda a derecha o de derecha a izquierda. -L selecciona la impresión de izquierda a derecha. -R selecciona la impresión de derecha a izquierda. -X (predeterminado) hace que FIGlet use lo que se especifique en el archivo de fuente. Una vez leídas las opciones, si quedan palabras en la línea de comando, se utilizan en lugar de la entrada estándar como fuente de texto. Esta característica permite que los scripts de shell generen letras grandes sin tener que simular archivos de entrada estándar. Un argumento vacío, obtenido por dos comillas secuenciales, da como resultado un salto de línea.

2. Usando Figlet

Figlet, es realmente fácil de usar, simplemente pasa como argumento posicional el texto que desea convertir a su versión artística ASCII y listo:

figlet "Our Code World Rocks!"

3. Implementación de fuentes personalizadas

Debe utilizar fuentes figlet personalizadas (.flf) para imprimir texto en caracteres ASCII con estilos personalizados. En este repositorio de Github , puede encontrar múltiples fuentes que puede usar con Figlet. Simplemente descargue el repositorio con git en su servidor / computadora:

git clone https://github.com/xero/figlet-fonts.git

Luego ejecuta los comandos figlet como de costumbre, sin embargo, agregue los 2 parámetros adicionales para especificar el nuevo directorio de las fuentes y el nombre de la fuente que desea usar:

  • -d: especifique la ruta al directorio que contiene las fuentes figlet.
  • -f: especifique el nombre de la fuente que desea utilizar (nombre de archivo sin extensión).

El comando es el siguiente:

figlet "text" -f <font-name> -d <path-to-fonts-directory>

En nuestro caso, imprimiremos "Our Code World Rocks!" con la fuente 3D Diagonal.flf descargada del repositorio mencionado:

figlet "Our Code World Rocks!" -f "3D Diagonal" -d ./figlet-fonts/

El comando en la terminal generaría el siguiente texto:

Figlet 3D Font Style

4. Impresión del contenido de Figlet en un archivo

Si en lugar de imprimirlo en la terminal, desea guardar la salida en un archivo, simplemente canalice la salida al archivo que desee. Por ejemplo, para guardar el contenido en un archivo de texto sin formato:

figlet "Our Code World Rocks!" -f "3D Diagonal" -d ./figlet-fonts/ > ./output-file.txt

Que te diviertas ❤️!

Esto podria interesarte

Conviertete en un programador más sociable