Cómo usar pandoc para convertir archivos en la línea de comandos de Linux
Publicado: 2022-01-29 Puede usar pandoc
en Linux para convertir entre más de 40 formatos de archivo. También puede usarlo para crear un sistema simple de documentos como código escribiendo en Markdown, almacenando en git
y publicando en cualquiera de sus formatos compatibles.
Conversión de documentos y Docs-as-Code
Si tiene un documento en cualquiera de los muchos formatos pandoc's
, convertirlo a cualquiera de los otros es pan comido. ¡Esa es una herramienta útil para tener!
Pero el poder real de pandoc
se hace evidente cuando lo usa como base de un sistema simple de documentos como código. La premisa de docs-as-code es adoptar algunas de las técnicas y principios del desarrollo de software y aplicarlos para escribir documentación, especialmente para proyectos de desarrollo de software. Sin embargo, puede aplicarlo al desarrollo de cualquier tipo de documentación.
Los desarrolladores de software usan su editor favorito o entorno de desarrollo integrado (IDE) para escribir sus programas. El código que escriben se guarda en archivos de texto. Estos contienen el código fuente del programa.
Usan un sistema de control de versiones, o VCS (Git es el más popular), para capturar los cambios en el código fuente a medida que se desarrolla y mejora. Esto significa que el programador tiene un historial completo de todas las versiones de los archivos de código fuente. Él o ella puede acceder rápidamente a cualquier versión anterior de un archivo. Git almacena archivos en un repositorio. Hay un repositorio local en la computadora de cada desarrollador y un repositorio central, compartido y remoto que a menudo está alojado en la nube.
Cuando están listos para producir una versión funcional del programa, usan un compilador para leer el código fuente y generar un ejecutable binario.
Al escribir sus documentos en un lenguaje de marcado ligero basado en texto, puede usar un VCS para controlar la versión de su escritura. Cuando esté listo para distribuir o publicar un documento, puede usar pandoc
para generar tantas versiones diferentes de su documentación como necesite, incluidas versiones basadas en web (HTML), procesadas por texto o compuestas (LibreOffice, Microsoft Word, TeX) , formato de documento portátil (PDF), libro electrónico (ePub), etc.
Puede hacer todo esto desde un conjunto de archivos de texto livianos controlados por versión.
Instalando pandoc
Para instalar pandoc
en Ubuntu, use este comando:
sudo apt-get install pandoc
En Fedora, el comando que necesita es el siguiente:
sudo dnf instalar pandoc
En Manjaro, debe escribir:
sudo pacman-syu pandoc
Puede comprobar qué versión ha instalado utilizando la opción --version
:
pandoc --versión
Usando pandoc sin archivos
Si usa pandoc
sin ninguna opción de línea de comandos, también acepta entrada escrita. Simplemente presione Ctrl+D para indicar que ha terminado de escribir. pandoc
espera que escriba en formato Markdown y genera una salida HTML.
Veamos un ejemplo:
pandoc
Hemos escrito algunas líneas de Markdown y estamos a punto de pulsar Ctrl+D.
Tan pronto como lo hacemos, pandoc
genera la salida HTML equivalente.
Sin embargo, para hacer algo útil con pandoc
, realmente necesitamos usar archivos.
Conceptos básicos de rebajas
Markdown es un lenguaje de marcado ligero y se le da un significado especial a ciertos caracteres. Puede usar un editor de texto sin formato para crear un archivo Markdown.
Markdown se puede leer fácilmente, ya que no hay etiquetas visualmente engorrosas que distraigan la atención del texto. El formato de los documentos de Markdown se asemeja al formato que representa. A continuación se presentan algunos de los conceptos básicos:
- Para enfatizar el texto con cursiva , enciérrelo entre asteriscos.
*This will be emphasized*
- Para texto en negrita , use dos asteriscos.
**This will be in bold**
- Los encabezados están representados por el signo de número/marca numeral (
#
). El texto está separado del hash por un espacio. Use un hash para un encabezado de nivel superior, dos para un segundo nivel, y así sucesivamente. - Para crear una lista con viñetas, comience cada línea de la lista con un asterisco e inserte un espacio antes del texto.
- Para crear una lista numerada, comience cada línea con un dígito seguido de un punto y luego inserte un espacio antes del texto.
- Para crear un hipervínculo, incluya el nombre del sitio entre corchetes (
[]
) y la URL entre paréntesis [()
] así:[Link to How to Geek](https://www.howtogeek.com/)
. - Para insertar una imagen, escriba un signo de exclamación inmediatamente antes de los corchetes (
![]
). Escriba cualquier texto alternativo para la imagen entre paréntesis. Luego, encierre la ruta a la imagen entre paréntesis [()
“]. He aquí un ejemplo:![The Geek](HTG.png)
.
Cubriremos más ejemplos de todos estos en la siguiente sección.
RELACIONADO: ¿Qué es Markdown y cómo se usa?
Conversión de archivos
Las conversiones de archivos son sencillas. pandoc
generalmente puede determinar con qué formatos de archivo está trabajando a partir de sus nombres de archivo. Aquí, vamos a generar un archivo HTML a partir de un archivo Markdown. La opción -o
(salida) le dice a pandoc
el nombre del archivo que deseamos crear:
pandoc -o muestra.html muestra.md
Nuestro archivo Markdown de muestra, sample.md, contiene la sección corta de Markdown que se muestra en la imagen a continuación.
Se crea un archivo llamado sample.html. Cuando hacemos doble clic en el archivo, nuestro navegador predeterminado lo abrirá.
Ahora, generemos un documento de texto en formato de documento abierto que podamos abrir en LibreOffice Writer:
pandoc -o muestra.odt muestra.md
El archivo ODT tiene el mismo contenido que el archivo HTML.
Un toque elegante es que el texto alternativo para la imagen también se usa para generar automáticamente un título para la figura.
Especificación de formatos de archivo
Las opciones -f
(desde) y -t
(hacia) se usan para decirle a pandoc
de qué formatos de archivo desea convertir. Esto puede ser útil si está trabajando con un formato de archivo que comparte una extensión de archivo con otros formatos relacionados. Por ejemplo, TeX y LaTeX usan la extensión ".tex".
También estamos usando la opción -s
(independiente) para que pandoc
genere todo el preámbulo de LaTeX necesario para que un documento sea un documento de LaTeX completo, autónomo y bien formado. Sin la opción -s
(independiente), la salida seguiría siendo un LaTeX bien formado que podría insertarse en otro documento LaTeX, no se analizaría correctamente como un documento LaTeX independiente.
Tecleamos lo siguiente:
pandoc -f markdown -t latex -s -o muestra.tex muestra.md
Si abre el archivo "sample.tex" en un editor de texto, verá el LaTeX generado. Si tiene un editor de LaTeX, puede abrir el archivo TEX para ver una vista previa de cómo se interpretan los comandos de composición tipográfica de LaTeX. Reducir la ventana para que se ajuste a la imagen de abajo hizo que la pantalla pareciera estrecha, pero, en realidad, estaba bien.
Usamos un editor de LaTeX llamado Texmaker. Si desea instalarlo en Ubuntu, escriba lo siguiente:
sudo apt-get install texmaker
En Fedora, el comando es:
sudo dnf instalar texmaker
En Manjaro, usa:
sudo pacman-syu texmaker
Conversión de archivos con plantillas
Probablemente esté comenzando a comprender la flexibilidad que proporciona pandoc
. Puede escribir una vez y publicar en casi cualquier formato. Esa es una gran hazaña, pero los documentos parecen un poco vainilla.
Con las plantillas, puede dictar qué estilos usa pandoc
cuando genera documentos. Por ejemplo, puede decirle a pandoc
que use los estilos definidos en un archivo de hojas de estilo en cascada (CSS) con la opción --css
.
Hemos creado un pequeño archivo CSS que contiene el texto a continuación. Cambia el espacio por encima y por debajo del estilo del encabezado del nivel. También cambia el color del texto a blanco y el color de fondo a un tono azul:
h1 { color: #FFFFFF; color de fondo: #3C33FF; margen superior: 0px; margen inferior: 1px; }
El comando completo se encuentra a continuación; tenga en cuenta que también usamos la opción independiente ( -s
):
pandoc -o muestra.html -s --css muestra.css muestra.md
pandoc
usa el estilo único de nuestro archivo CSS minimalista y lo aplica al encabezado de nivel uno.
Otra opción de ajuste fino que tiene disponible cuando trabaja con archivos HTML es incluir marcado HTML en su archivo Markdown. Esto se pasará al archivo HTML generado como marcado HTML estándar.
Sin embargo, esta técnica debe reservarse para cuando solo está generando salida HTML. Si está trabajando con múltiples formatos de archivo, pandoc
ignorará el marcado HTML para archivos que no sean HTML y se pasará a ellos como texto.
También podemos especificar qué estilos se utilizan cuando se generan archivos ODT. Abra un documento de LibreOffice Writer en blanco y ajuste el título y los estilos de fuente para que se ajusten a sus necesidades. En nuestro ejemplo, también agregamos un encabezado y un pie de página. Guarde su documento como "odt-template.odt".
Ahora podemos usar esto como una plantilla con la opción --reference-doc
:
pandoc -o muestra.odt --reference-doc=odt-template.odt muestra.md
Compare esto con el ejemplo de ODT anterior. Este documento utiliza una fuente diferente, tiene encabezados de colores e incluye encabezados y pies de página. Sin embargo, se generó a partir del mismo archivo Markdown "sample.md".
Las plantillas de documentos de referencia se pueden utilizar para indicar diferentes etapas de la producción de un documento. Por ejemplo, puede tener plantillas que tengan marcas de agua "Borrador" o "Para revisión". Una plantilla sin marca de agua se usaría para un documento finalizado.
Generación de archivos PDF
De forma predeterminada, pandoc
utiliza el motor LaTeX PDF para generar archivos PDF. La forma más fácil de asegurarse de que tiene satisfechas las dependencias de LaTeX adecuadas es instalar un editor de LaTeX, como Texmaker.
Sin embargo, es una instalación bastante grande: Tex y LaTeX son bastante pesados. Si el espacio de su disco duro es limitado, o si sabe que nunca usará TeX o LaTeX, es posible que prefiera generar un archivo ODT. Luego, puede abrirlo en LibreOffice Writer y guardarlo como PDF.
Documentos como código
El uso de Markdown como lenguaje de escritura tiene varias ventajas, incluidas las siguientes:
- Trabajar en archivos de texto sin formato es rápido: se cargan más rápido que los archivos de procesadores de texto de tamaño similar y también tienden a moverse más rápido por el documento. Muchos editores, incluidos
gedit
,Vim
yEmacs
, utilizan el resaltado de sintaxis con texto Markdown. - Tendrá una línea de tiempo de todas las versiones de sus documentos: si almacena su documentación en un VCS, como Git, puede ver fácilmente las diferencias entre dos versiones cualesquiera del mismo archivo. Sin embargo, esto solo funciona realmente cuando los archivos son de texto sin formato, ya que eso es con lo que espera trabajar un VCS.
- Un VCS puede registrar quién realizó los cambios y cuándo: esto es especialmente útil si suele colaborar con otras personas en proyectos grandes. También proporciona un depósito central para los propios documentos. Muchos servicios de Git alojados en la nube, como GitHub, GitLab y BitBucket, tienen niveles gratuitos en sus modelos de precios.
- Puede generar sus documentos en múltiples formatos: con solo un par de simples scripts de shell, puede extraer los estilos de CSS y documentos de referencia. Si almacena sus documentos en un repositorio de VCS que se integra con las plataformas de integración continua e implementación continua (CI/CD), se pueden generar automáticamente cada vez que se crea el software.
RELACIONADO: ¿Qué es GitHub y para qué se utiliza?
Pensamientos finales
Hay muchas más opciones y características dentro de pandoc que las que hemos cubierto aquí. Los procesos de conversión para la mayoría de los tipos de archivos se pueden ajustar y ajustar. Para obtener más información, consulte los excelentes ejemplos en la página web oficial (y extremadamente detallada) de pandoc.
Comandos Linux | ||
archivos | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · cola · stat · ls · fstab · eco · menos · chgrp · chown · rev · mirar · cadenas · tipo · renombrar · zip · descomprimir · montar · desmontar · instalar · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · parche · convertir · rclone · triturar · srm | |
Procesos | alias · pantalla · top · agradable · renice · progreso · strace · systemd · tmux · chsh · historia · at · lote · gratis · cual · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · tiempo de espera · pared · sí · matar · dormir · sudo · su · hora · groupadd · usermod · grupos · lshw · apagar · reiniciar · detener · apagar · contraseña · lscpu · crontab · fecha · bg · fg | |
Redes | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · cavar · dedo · nmap · ftp · curl · wget · quién · whoami · w · iptables · ssh-keygen · ufw |
RELACIONADO: Las mejores computadoras portátiles Linux para desarrolladores y entusiastas