Cuando tengo que escribir me gusta utilizar herramientas en las que la escritura y la presentación no deban gestionarse al mismo tiempo. Prefiero un entorno ligero, un editor de texto, que me permita escribir sin más distracciones. Y cuando posteriormente deba darle formato, sin tengo la opción, prefiero utilizar un lenguaje de marcado ligero.
Gracias a la plataforma LeanPub que nos permite ir publicando y compartiendo de forma progresiva nuestros libros, he conocido el lenguaje de marcado ligero MarkDown y las herramientas e implementaciones que existen a su alrededor. Y la verdad es que quedado gratamente sorprendido y sobre todo por una de ellas: la aplicación Pandoc.
Markdown es un lenguaje de marcado ligero creado originalmente por John Gruber y Aaron Swartz que trata de conseguir la máxima legibilidad y «publicabilidad» tanto en sus forma de entrada como de salida.
- Se puede utilizar y esta implementado en múltiples lenguajes.
- Existen múltiples conversores tanto de entrada como de salida.
- Y su uso esta bastante extendido como lenguaje de edición en algunos gestores de contenidos (CMS).
Para profundizar en su sintaxis os recomiendo:
- La guía oficial de la sintaxis MarkDown por John Gruber.
- Guía Rápida de Sintaxis de Markdown.
- O esta estupenda guía de Joe Di Castro en castellano.
Estos son algunos ejemplos de su sintaxis, que supongo os sera muy familiar si en alguna ocasión habéis utilizado un Wiki.
# Esto es un H1 ## Esto es un H2 ### Esto es un H3 [Esto es un enlace](https://jbravomontero.wordpress.com) **Esto es negrita** _Esto también es cursiva_ Lista numerada (ordenada) 1. Este es el primer elemento 2. Este es el segundo elemento 3. Este es el tercer elemento Lista de puntos (desordenada) * Un elemento de la lista * Otro elemento de la lista * El tercer elemento de la lista Imagenes ![Con titulo](pictures/avatar.png) Tablas | Elemento | Cantidad | Precio | | :------- | :------: | -----: | | Item 1 | 15 | 150 | | Item 2 | 3250 | 23,65 |
Para Windows hay varios editores pero yo he encontrado uno que funciona estupendamente, es el MarkdownPad.
No es necesario, pero si queréis os permite ir escribiendo y de forma simultanea ir viendo en la derecha el resultado en formato HTML. Aunque evidentemente cuenta con la opción de no mostrar el visualizador HTML para evitar las distracciones durante el duro proceso de escribir un artículo, un libro, etc.
Pero yo buscaba algo que me permitiese:
- Escribir con comodidad y una sintaxis ligera. Tengo mucha experiencia en XML y editores de XML pero no deja de ser farragoso.
- Y en diferentes ficheros para luego permitir:
- Combinar de forma fácil el resultado en un único documento de presentación.
- La documentación colaborativa.
- Obtener varios formatos de salida.
Y he encontrado todo esto y mucho más en esa maravilla de herramienta que se llama Pandoc que ha sido desarrollada por un filósofo de la Universidad de Berkeley llamado John MacFarlane. Y que es lo que hace Pandoc para ser tan estupendo.
- Pues lo primero que funciona. Me ha funcionado todo a la primera.
- Y lo segundo, pues que le pasas a Pandoc un archivo fuente cualquiera de los que soporta Markdown, reStructuredText, etc y lo puedes convertir a LaTex, HTML simple, PDF, DocBook, OpenDocument, docx, rtf, man, texto plano y hasta tres tipos diferentes de presentaciones en HTML; y mi lista se queda corta, cortísima. Aquí hay un diagrama ilustrando su poder:
Su instalación en Windows ha sido muy sencilla. Como me interesaba sobre todo el tema del PDF, mi instalación a consistido en 2 aplicacioens:
- El instalable de Pandoc para Windows.
- Y un procesador de LaTeX que nos permita la conversión a PDF. Yo he instalado basic-Miktex. Aunque la generación del PDF es totalmente transparente desde el Pandoc.
Para probarlo os he subido un zip que os podéis bajar con:
- Mi artículo: Reduciendo el tamaño del código de un proyecto Java en formato MarkDown, codigo_duplicado_muerto_java.md, para que podáis realizar pruebas de conversión.
- Un fichero generar.bat:
pandoc codigo_duplicado_muerto_java.md -o codigo_duplicado_muerto_java.pdf pandoc codigo_duplicado_muerto_java.md -o codigo_duplicado_muerto_java.docx pandoc codigo_duplicado_muerto_java.md -o codigo_duplicado_muerto_java.html pandoc -s codigo_duplicado_muerto_java.md -o codigo_duplicado_muerto_java.tex pandoc -s -S -w docbook codigo_duplicado_muerto_java.md -o codigo_duplicado_muerto_java.db
- que permite de un sola vez varias realizar todas las transformaciones:
- A PDF.
- A Word.
- A HTML
- A Tex.
- A Docbook.
- etc.
NOTA: Tener cuidado de que las imágenes estén en la ruta adecuada.
El fichero, codigo_duplicado_muerto_java.md no lo he escrito directamente en este lenguaje, sino que lo he obtenido a partir del html original también utilizando Pandoc (aunque luego lo he tenido que modificar por las rutas de las imágenes):
pandoc -s -r html https://jbravomontero.wordpress.com/2012/12/28/reduciendo-el-tamano-del-codigo-de-un-proyecto-java/ -o codigo_duplicado_muerto_java.md
En resumen, dos herramientas estupendas y que funcionan a la perfección para escribir y transformar nuestros documentos.
Y también y ya termino me encanta porque se puede utilizar para la escritura colaborativa utilizando por ejemplo un control de versiones. Por ejemplo, el famoso libro Pro Git
Esta escrito utilizando markdown, estando todo sus capítulos y traducciones organizados en Gitub, permitiendo por tanto escribirlo, mantenerlo y traducirlo de forma colaborativa. Eso si, desconozco el mecanismo por el cual terminan convirtiéndolo a los diferentes formatos de salida, aunque me parece que todos ellos serían posibles con Pandoc.
Un saludo.
Debe estar conectado para enviar un comentario.