MD

¿Qué es un archivo MD?

Texto plano con unos pocos signos de formato. En lo que está escrita casi toda la documentación y prácticamente cualquier README.

Qué es MD

MD es un formato de texto plano que se abre en cualquier editor. Se usa para la edición y mover datos entre programas.

La extensión es .md y el nombre completo, Markdown. Ambos importan menos que lo que el archivo puede contener, y de eso trata el resto de esta página.

De dónde viene MD

Se remonta a 2004. La especificación es CommonMark.

La edad interesa por un motivo práctico: cuanto más antiguo es un formato, más programas han tenido tiempo de aprenderlo.

La especificación es pública

Está publicada entera, así que cualquiera puede implementarla leyendo el documento en vez de a base de inspeccionar archivos. Por eso aparece en tantos programas, y por eso los archivos escritos hace veinte años siguen abriéndose hoy. Publicada no quiere decir libre de regalías: cuando un formato envuelve un códec, la licencia de las patentes es un asunto aparte que la norma no resuelve.

Qué abre MD

Visual Studio Code, Obsidian y Typora lo leen, y también la mayoría de programas del mismo tipo.

Cuando un archivo no se abre, el formato rara vez es el problema: lo más habitual es que el programa sea anterior al formato. Convertir a algo más antiguo es la salida fiable, y para eso está el resto de este sitio.

Abrirlo en el navegador

Ningún navegador lo lee.

Ese es el motivo más frecuente para convertirlo: no que el formato sea malo, sino que el sitio donde quieres mostrar el archivo no sabe leerlo.

Es un formato de trabajo

MD está pensado para abrirse y cambiarse. Guarda el archivo en este formato mientras el trabajo siga en marcha y exporta desde él cada vez que haga falta una copia terminada.

Un texto que se lee igual antes de procesarlo

Markdown nació porque escribir HTML a mano cansa y escribir en un procesador de textos produce un archivo que nadie puede comparar línea a línea. Es un puñado de convenciones que ya se usaban en el correo electrónico en texto plano antes de tener nombre: una almohadilla al principio de la línea marca un título, dos asteriscos alrededor de una palabra la ponen en negrita, un guion abre una viñeta.

Lo importante es que el original sigue siendo legible para alguien que jamás ha oído hablar del formato. De ahí que se apoderara de la documentación técnica: un README, un registro de cambios o una nota escrita en Markdown es un archivo de texto, entra en el control de versiones, dos personas lo editan y fusionan el resultado, y quien revisa lee las diferencias sin necesidad de abrir nada.

No hay un solo Markdown, y la tabla lo demuestra

La descripción original de 2004 era informal y dejó muchísimo sin decidir, así que cada implementación rellenó los huecos a su manera. CommonMark es el intento serio de escribir una especificación precisa y es lo que siguen la mayoría de los editores actuales. GitHub Flavored Markdown es CommonMark más un puñado de añadidos, y resulta ser la versión que casi todo el mundo ha usado en realidad.

El añadido que más confusión provoca son las tablas con barras verticales: no forman parte de CommonMark, son una extensión de GitHub que también admiten muchos editores y generadores de sitios estáticos, y que falta en las implementaciones estrictas. Una tabla que se ve perfecta en un repositorio y sale como una fila de barras en otro sitio no es un archivo roto: es un archivo que usa una extensión que la otra herramienta no implementa. Las listas de tareas, el tachado y los enlaces automáticos están en la misma categoría.

Ese bloque raro del principio se llama front matter

Muchos archivos empiezan con un bloque delimitado por tres guiones que contiene algo parecido a un título, una fecha y una lista de etiquetas. Eso es front matter — normalmente YAML, a veces TOML o JSON — y no es Markdown en absoluto. Los generadores de sitios, las aplicaciones de notas y los constructores de documentación lo leen como metadatos del documento y lo retiran antes de mostrar nada.

Una herramienta que no sepa de su existencia lo enseña como texto literal en lo alto de la página. Si un documento convertido arranca con tres guiones y una lista de pares clave-valor, eso es lo que ha pasado, y borrar el bloque antes de convertir es todo el arreglo que hace falta.

Lo que el formato renuncia a tener

No hay tamaño de página, ni márgenes, ni tipografía, ni interlineado, ni salto de página, ni pie. No es una carencia sino el planteamiento: el archivo describe estructura — esto es un encabezado, esto una cita, esto código — y deja la apariencia a lo que lo represente. El mismo documento se convierte en página web, en PDF y en presentación sin reescribir una línea.

Tampoco tiene comentarios, ni control de cambios, ni forma de decir que este párrafo va por la tercera revisión. De eso se encarga el control de versiones, y lo hace mejor; ese es el intercambio que el formato acepta. Si lo que se necesita es un circuito de revisión con firmas y no un historial, un procesador de textos es la herramienta honesta.

Las imágenes son rutas, no contenido

Un archivo Markdown que muestra seis diagramas no contiene ningún diagrama: contiene seis rutas, y las imágenes están al lado en el disco o en un servidor. Mueve el archivo sin la carpeta que lo rodea y desaparecen todas.

Esto pesa al convertir, y aquí más que en otros sitios: la conversión a PDF de este sitio ni siquiera intenta seguir esas rutas, así que la referencia se imprime tal como se escribió, con su signo de exclamación, su texto alternativo entre corchetes y su ruta entre paréntesis. Y pesa otra vez al enviarlo por correo: mandar un .md suelto es mandar el esqueleto. Si las imágenes son la mitad del mensaje, represéntalo donde lo escribiste y exporta el PDF desde ahí.

Aquí solo hay una salida, y pasa por el servidor

De este formato, este sitio ofrece exactamente una conversión: a PDF. La hace LibreOffice, y LibreOffice no corre en el navegador, así que el archivo se envía a nuestro servidor en lugar de quedarse en tu equipo. Es de las pocas rutas del sitio que funcionan así y conviene decirlo sin adornos.

De ahí salen dos números concretos. El límite por archivo en las conversiones de servidor es de 25 MB, no los 100 MB de las que se ejecutan en el navegador, y hay un tope de cien conversiones de servidor por visitante y día, que se reinicia a medianoche UTC. El archivo se guarda en una carpeta temporal recién creada, con un nombre genérico — el tuyo no llega a tocar el disco —, y esa carpeta se borra al terminar, también cuando la conversión falla.

Qué esperar del PDF que sale

El marcado se imprime, no se interpreta. La suite ofimática que hace el trabajo no tiene filtro de importación de Markdown y el contenedor no instala ninguna herramienta de documentación que pudiera representarlo antes, así que el archivo se compone como el texto plano que es: una línea que dice ## Requisitos sale como ## Requisitos, una viñeta escrita con guion sale como una línea que empieza por un guion y un bloque de código conserva sus tres acentos graves arriba y abajo.

Lo que sí se conserva exactamente son los saltos de línea, las líneas en blanco y la sangría, de modo que un documento cuyo valor son sus comandos y su configuración se convierte en algo perfectamente utilizable, y uno cuyo valor es su jerarquía de títulos no. Para ese caso, representa el archivo en la herramienta donde lo escribiste e imprime el PDF desde ahí. La composición se hace con tipografías sustitutas de métrica compatible, algo que aquí apenas duele: Markdown no lleva tipografía dentro y no hay nada que sustituir mal.

Escribirlo con cualquier editor de texto

Sirve cualquier editor de texto — el Bloc de notas, TextEdit, nano — porque el archivo es texto. Ese es todo el atractivo, y es la razón de que un documento escrito en 2004 se abra hoy sin tener nada instalado.

Los editores dedicados añaden una vista previa en directo, que resulta muy útil mientras escribes y absolutamente irrelevante para el archivo. Visual Studio Code, Obsidian y Typora lo muestran mientras tecleas y ninguno guarda nada que los otros no puedan leer. Elegir uno es una preferencia y no un compromiso, cosa que no se puede decir de casi ningún otro formato de documento.

Los datos, en un solo sitio

Identificadores y procedencia del formato MD.
Extensión.md, .markdown
Tipo de mediotext/markdown
Primera publicación2004
EspecificaciónCommonMark