Si cuando has leído el título de este artículo, has pensado que no es para ti, espera, no te vayas todavía. Si sueles escribir a menudo, si tienes que hacer informes, cartas, documentos, o simplemente tienes que tomar notas, entonces este artítulo es para ti. No pienses que esto del Markdown es para desarrolladores o frikis, nada mas lejos de la realidad. Insisto, si escribes este lenguaje es para ti.
Y ¿porque digo que Markdown es para ti?. Por mi propia experiencia. Durante muchos años, he estado utilizando procesadores de texto. Desde Microsoft Office inicialmente a LibreOffice en los últimos años. Te puedo asegurar que he sacado el máximo provecho a estas herramientas. En ningún caso, las utilizaba a modo de máquina de escribir. Creaba mis plantillas, y atajos de teclado, para que todo fuera lo mas fluido y productivo posible.
Sin embargo, siempre, siempre, siempre me terminaba preocupando por el acabado estético del documento, mientras lo redactaba. Que si este margen es muy pequeño, o muy grande, que si el tipo de letra, que si la separación entre líneas, que si esto, que si lo otro,… Al final me terminaba despistando de mi objetivo, que al fin y al cabo, no es otro que el contenido.
Desde que utilizo Markdown, el acabado estético no me preocupa (a priori). Durante la redacción del documento solo me preocupo del contenido. De intentar transmitir lo mejor posible lo que quiero contar. Es decir, me centro en lo importante. Esto me ha llevado a invertir menos tiempo en lo menos importante y mas en lo mas importante. Ahora soy mas productivo sin lugar a dudas. Pero lo mejor es que todos hemos ganado. Tu porque tienes un mejor contenido, y yo porque invierto el tiempo exclusivamente en lo importante.
Y por todo esto, pienso que este artículo es para ti.
Pero, ¿Que es Markdown?
Markdown es un lenguaje creado por John Gruber para la creación de documentos con formato, pero que se puedan leer en cualquier editor de texto. La filosofía con la que se creó este lenguaje es la de que fuera tan fácil de leer como de escribir. Pero, no se trata de leerlo en el mismo procesador de texto en el que lo escribiste, sino que se pueda leer en cualquier editor, procesador o en donde sea. Pero sobre todo, se enfoca en la lectura. Un archivo escrito en Markdown, tiene que ser completamente legible, sin tratamiento posterior, y que refleje claramente la importancia que le damos al texto, que hemos resaltado. Así, por ejemplo, para darle importancia a una palabra ponemos un asterisco antes y después de la palabra, por ejemplo, *importante*
. Si lees el texto de así, ya notas que esa palabra tiene su importancia.
¿De donde viene el Markdown?
Markdown surge como una necesidad para escribir páginas web de forma rápida y sencilla. No hace falta que te diga, que es mucho mas rápido de escribir **importante**
que <strong>importante</strong>
. Sin embargo, no se trata de sustituir el HTML
. Markdown, solo representa una mínima parte de todas las posibilidades que te ofrece HTML
. Pero si que recoge lo mas habitual a la hora de escribir.
Es posible que te preguntes que, si Markdown, no cubre todo el HTML
, ¿que sucede con lo que no cubre? No hay problema, tan solo tienes que escribir la parte de HTML
separado una línea del siguiente párrafo en Markdown.
Y esto quiere decir que ¿solo sirve Markdown para HTML? No, ni mucho menos. La gran ventaja de Markdown, tal y como he comentado en la introducción, es que te permite abstraerte de darle formato al documento. Eso no quiere decir, que no tengas que dar énfasis a aquellas palabras o frases que quieras resaltar. Una vez terminado tu redacción en Markdown, llega el momento a convertirlo al documento que tu quieras, tal y como veremos mas adelante.
Sintaxis de Markdown
Párrafos
Un párrafo es un conjunto de líneas consecutivas separadas por una o mas líneas en blanco. Es decir,
primera línea segunda línea
Esto se convertirá en,
primera línea segunda línea
Mientras que si queremos escribir dos párrafos, será de la siguiente forma,
primera línea segunda línea
Esto se convertirá en,
primera línea segunda línea
Y si quisiéramos insertar un retorno de carro adicional. En este caso tenemos que utilizar
. Si, en verdad esto es algo incómodo, pero te puedo asegurar, que lo he tenido que hacer en contadas ocasiones.
Demos importancia a las palabras que las tienen
Markdown utiliza asteríscos *
y guiones bajos _
para darle importancia a las palabras. Básicamente para darle formato. Así,
- Para escribir en cursiva utilizamos
*cursiva*
que se convertirá en cursiva. - Mientras que para escribir en negrita utilizamos
**negrita**
que se conviertirá en negrita.
Si por contra quieres escribir un asterisco tendrás que utilizar \*
. Y para un guión bajo, \_
.
Esto de añadir una barra invertida antes de estos caracteres, (escapar caracteres), también se utiliza para otros elementos.
Así por ejemplo,
\\ \* \_ \{\} \[\] \(\) \# \+ \- \. \! \: \|
Títulos, subtítulos…
Existen diferentes formas de marcar un título, subtítulo, …, pero me ciño a la que utilizo yo habitualmente, porque creo que es la más práctica.
Para indicar un título solo tenemos que poner #
, delante del título. Y por supuesto dejar una línea en blanco antes y después del título, como si fuera un párrafo. Lo mismo para los siguientes niveles…
# Nivel 1 ## Nivel 2 ### Nivel 3 ...
Y así hasta el nivel 6.
Listas
Dentro de la simplicidad y limpieza del Markdown, probablemente las listas, son la que lo lleven a la excelencia. Así, mientras que en HTML
tenemos que escribir algo como,
<ul> <li>primer elemento</li> <li>segundo elemento</li> </ul>
En markdown solo tenemos que escribir,
* primer elemento * segundo elemento
Y para el caso de listas ordenadas
1. primer elemento 2. segundo elemento
Como de costumbre, tienes que separar las listas de los párrafos anterior y posterior mediante una o varias líneas en blanco. De hecho, si separas algunos puntos de otros mediante una o mas líneas en blanco, se considerarán como listas separadas.
Algo interesante, esto,
* primero * segundo * primero del segundo sigo en el segundo pero separado puedo continuar así de por vida * poner otro punto
se convertirá en
- primero
- segundo
- primero del segundosigo en el segundo pero separadopuedo continuar así de por vida
- poner otro punto
Citas
Para citar se utiliza >
, de esta forma si quieres poner una cita tan solo tienes que añadir este símbolo al principio. Como de costumbre tienes que dejar una línea en blanco antes y después de la cita. Así, por ejemplo,
> Esto es una cita
Se convertirá en,
Esto es una cita
Por supuesto se pueden realizar citas dentro de citas. Para ello, tan solo tienes que hacer,
> Esto es una cita que cita otra cita > > > esta es la otra cita > > Aquí continua la primera cita
Se convertirá en,
Esto es una cita que cita otra cita
esta es la otra cita
Aquí continua la primera cita
Por supuesto, dentro de una cita se pueden utilizar encabezados, listas, código, etc.
Código
Para escribir código y que se vea e interprete como código, hay que utilizar `. Si lo utilizas en línea solo debes poner uno. Así si escribes `esto` se interpretará como esto
. De nuevo como en el caso de los formatos, utiliza la barra invertida para que no lo convierta.
Por otro lado para escribir varias líneas de código utilizas tres ` seguidos, el código y luego otros tres ` seguidos.
Enlaces
En un texto normal no se utiliza tanto, pero sin lugar a dudas para escribir en HTML
es imprescindible. Creo que junto con las listas es el mejor invento. Y es que como sucede con estas, es mucho mas sencillo escribir,
[atareao.es](https://www.atareao.es)
En lugar de escribir,
<a href="https://www.atareao.es>atareao.es</a>
Imágenes
El caso de imágenes es muy parecido al de los enlaces y desde luego que es tan absolutamente sencillo. Así para insertar una imagen, podemos utilizar cualquiera de estas dos formas,
![Texto alternativo](/ruta/a/imagen.jpg) ![Texto alternativo](/ruta/a/imagen.jpg "Título opcional")
Tablas
Las tablas, son también algo realmente sencillo. Fíjate, para hacer una tabla, es tan sencillo como,
||Encabezado1|Encabezado2|Encabezado3| |---|---|---|---| |1|celda 11|celda 12|celda 13| |2|celda 11|celda 12|celda 13| |3|celda 11|celda 12|celda 13| |4|celda 11|celda 12|celda 13|
Para que quede algo como,
Encabezado1 | Encabezado2 | Encabezado3 | |
---|---|---|---|
1 | celda 11 | celda 12 | celda 13 |
2 | celda 11 | celda 12 | celda 13 |
3 | celda 11 | celda 12 | celda 13 |
4 | celda 11 | celda 12 | celda 13 |
Líneas horizontales
Este es un elemento que no se suele utilizar en documentos, pero que en páginas web era bastante habitual. Sin embargo, es realmente sencillo. Para insertar una línea horizontal tan solo tienes que utilizar tres guiones seguidos ---
De Markdown a lo que sea con Pandoc
Ahora que ya tienes claro lo que es Markdown, y lo sencillo que es trabajar con él, te preguntarás ¿y que hago con esto?.
Está claro que el documento que has preparado es perfectamente legible. Cualquiera con este texto entiende perfectamente, e incluso ve donde pones el énfasis en tus palabras.
Sin embargo, esto no está para presentarlo como tesis doctoral, no nos engañemos. Y es aquí donde interviene Pandoc
¿Que es Pandoc? Pandoc es un conversor de documentos universal. Permite convertir un documento realizado con Markdown en casi cualquier cosa. Los formatos de salida que admite entre otros son,
- HTML
- Microsoft Word, doc y docx
- OpenOffice/LibreOffice, odt
- OpenDocument XML
- Microsoft Power Point
- EPUB
- FictionBook 2
- DocBook
- LaTeX
- Otros lenguajes de marcado directo como AsciiDoc, Emacs Org-Mode, Emacs Muse, Textile, txt2tags, MediaWiki markup, DokuWiki markup, TikiWiki markup, TWiki markup, Vimwiki markup, y ZimWiki markup.
Pero además esto lo puedes hacer de forma masiva. No tienes que ir documento a documento. Con un sencillo script puedes convertirlos en un plis plas.
Convertir a LibreOffice
Así para convertir un documento de markdown a LibreOffice tan solo tienes que utilizar.
pandoc documento.md -o documento.odt
Si en lugar de uno solo quieres converitr varios,
for i in *.md; do pandoc "$i" -o "${i/.md/}.odt";done
Convertir a PDF
En el caso de convertir a PDF, necesitas tener algunos paquetes instalados. Pero nada complicado, tan solo ejecuta en un terminal,
sudo apt install pandoc sudo apt install texlive-latex-base" sudo apt install texlive-fonts-recommended sudo apt install texlive-latex-recommended
Ahora para convertir un documento,
pandoc documento.md -o documento.pdf
Para que el documento tenga dimensiones de A4, hay que añadir un parámetro adicional,
pandoc -V papersize:a4 documento.md -o documento.pdf
Si queremos definir los márgenes del documento añadiremos otros parámetros mas,
pandoc -V papersize:a4 -V margin-left:3cm \ -V margin-right:2cm -V margin-top:3cm \ -V margin-bottom:2cm documento.md -o documento.pdf
Por último si queremos modificar el tamaño de fuente por defecto, hay que añadir el parámetro fontsize: 12pt
. Así, si lo que queremos es convertir todos los archivos markdown de un directorio utilizaremos lo siguiente,
for i in *.md do echo "$i" pandoc -V papersize:a4 -V margin-left:3cm \ -V margin-right:2cm -V margin-top:3cm \ -V margin-bottom:2cm -V fontsize:12pt \ "$i" -o "${i/.md/}.pdf" done
Por supuesto, Pandoc, permite que utilices tus propias plantillas de LaTeX, con lo que se abre todo un mundo de posibilidades sin fin…
Conclusiones
Hace muchos años que escribo, directa o indirectamente, sobre Markdown. He desarrollado diferentes aplicaciones en torno a Markdown, como pueden ser uText o Mome. He escrito decenas de interesantes artículos en torno a este lenguaje de marcado en el que podrás aprender entre otras cosas como crear un ebook. Pero, sin embargo, hasta el momento, no le había dedicado un artículo a Markdown, lo cual me parece algo imperdonable.
Pero sobre todo a Markdown, le debo tiempo, mucho tiempo. Y es que gracias a Markdown he mejorado sensiblemente los textos, sin preocuparme por los formatos.
En fin, que no puedo dejar de recomendarte encarecidamente su uso…
Mas información:
Fuente: atareao