En Linux, a menudo nos encontramos con herramientas sencillas que proveen funcionalidad interesante. Como resultado de revisar el «baúl de los recuerdos», me topé con una de ellas hoy. En lo personal es de gran utilidad por la posibilidad que brinda de convertir texto plano a otros formatos. Por ejemplo, en el pasado la utilicé para mostrar el código de un script en una página web con syntax highlighting. Por eso, veamos cómo usar enscript para convertir texto plano a HTML y RTF (Rich Text Format).
Instalar y usar enscript
Antes de poder usar enscript, necesitaremos instalar el paquete correspondiente:
aptitude install enscript
o
yum install script
según estemos utilizando una distribución de la familia Debian o Fedora, respectivamente.
A continuación, tomemos como ejemplo el siguiente script Python llamado strings.py:
saludo = 'hola mundo' print(saludo.upper()) presentacion = 'MI NOMBRE ES GABRIEL' print(presentacion.lower()) print(presentacion.islower()) print(presentacion.isupper()) print(saludo.startswith('hola')) print(presentacion.endswith('RIEL')) vacio = ' ' print(vacio.isspace()) titulo = 'Mi Planta De Naranja Lima' print(titulo.istitle()) dni = str(45092341) print(dni.isdecimal()) password = 'admin1234' print(password.isalpha()) print(password.isalnum())
y utilicemos enscript para crear un archivo HTML llamado strings.html con dicho contenido, donde también incluiremos resaltado de sintaxis:
enscript -p strings.html strings.py -whtml -Epython --color
donde
-p
se utiliza para indicar el nombre deseado del archivo de salida (strings.html), luego de lo cual se debe indicar el archivo de entrada (strings.py).-whtml
indica que el formato del archivo de salida debe ser HTML.-Epython
nos dice que el archivo de entrada es código Python.- Finalmente, con
--color
especificamos que deseamos utilizar resaltado de sintaxis en el archivo resultante.
En la Fig. 1 podemos ver el archivo strings.html resultante:
Convertir a formato RTF
Con una pequeña modificación, convirtamos ahora el código del ejemplo anterior a formato RTF:
enscript -p strings.rtf strings.py -wrtf -Epython --color
Veamos el resultado en la Fig. 2:
Por suerte, los formatos de salida soportados por enscript están disponibles en el man page. Además, la lista de lenguajes para los que se puede proveer el resaltado de sintaxis puede verse con
enscript --help-highlight
.
Espero que este post les haya resultado útil. ¡Nos leemos en breve!