Aprende a usar front matter con YAML, TOML o JSON para añadir metadatos como título, fecha, etiquetas o autor a tus documentos Markdown.
El front matter es un bloque de metadatos que se coloca al inicio de un archivo Markdown, antes del contenido. Sirve para asociar al documento información como el título, la descripción, la fecha de publicación, las etiquetas, el autor o cualquier otro dato estructurado que necesite el sistema que procesará el archivo.
Es un patrón fundamental en generadores de sitios estáticos, blogs basados en Markdown, sistemas de gestión de notas como Obsidian y prácticamente cualquier herramienta que necesite tratar los archivos .md como contenido publicable. A continuación verás las tres sintaxis más extendidas, los campos habituales y los errores que más quebraderos de cabeza dan al principio.
La forma más habitual de front matter usa sintaxis YAML y se delimita con tres guiones (---) al principio y al final del bloque. Es la opción por defecto en Jekyll, Hugo, Docusaurus, Astro, Obsidian y la mayoría de generadores modernos.
---
title: Mi artículo
description: Una descripción del artículo
date: 2026-01-15
tags:
- markdown
- tutorial
draft: false
---
El contenido del artículo empieza aquí.YAML es muy permisivo con los espacios, pero exige consistencia en la indentación. Si tienes errores raros al procesar el archivo, casi siempre se deben a tabuladores mezclados con espacios o a niveles de indentación desiguales.
Generadores como Hugo o Zola admiten también front matter en formato TOML, delimitado por tres signos de suma (+++). TOML es más estricto que YAML en cuanto a tipos de datos, lo que reduce ambigüedades a costa de una sintaxis algo más verbosa.
+++
title = "Mi artículo"
description = "Una descripción del artículo"
date = 2026-01-15
tags = ["markdown", "tutorial"]
draft = false
+++
El contenido del artículo empieza aquí.A diferencia de YAML, en TOML las cadenas siempre van entrecomilladas y las listas se escriben en una sola línea con corchetes.
Una tercera opción, menos común pero soportada por Hugo y algunas herramientas, consiste en escribir el front matter como un objeto JSON entre llaves al principio del archivo. Es la sintaxis más estricta de las tres y la menos cómoda de escribir a mano, pero útil cuando los metadatos los genera otro sistema automáticamente.
{
"title": "Mi artículo",
"description": "Una descripción del artículo",
"date": "2026-01-15",
"tags": ["markdown", "tutorial"],
"draft": false
}
El contenido del artículo empieza aquí.JSON exige comillas dobles obligatorias y no admite comentarios, así que solo es práctico en flujos automatizados.
Los campos que aparecen en el front matter dependen del sistema que procese el archivo, pero hay un conjunto de claves que se repiten en casi todas las plataformas. La siguiente tabla recoge las más habituales:
| Campo | Descripción | Ejemplo |
|---|---|---|
title | Título del documento | "Mi artículo" |
description | Descripción o resumen para SEO | "Guía de Markdown" |
date | Fecha de publicación | 2026-01-15 |
tags | Etiquetas o categorías | [markdown, tutorial] |
categories | Categoría principal | "Tutoriales" |
draft | Marca el archivo como borrador | true / false |
author | Autor del documento | "Edu" |
slug | URL personalizada | "mi-articulo" |
layout | Plantilla de renderizado | "post" |
image | Imagen destacada | "/img/cover.png" |
Cada generador interpreta unos campos u otros, así que conviene consultar su documentación. Por ejemplo, en Obsidian hay claves específicas como aliases o cssclass, mientras que en Hugo destacan weight, menu o params.
Cuando un procesador Markdown encuentra un bloque de front matter al inicio del archivo, lo separa del contenido y lo entrega al sistema que lo está consumiendo. Lo habitual es que el generador de sitios estáticos cargue esos metadatos en variables disponibles para la plantilla, de modo que el title del front matter se convierta en la etiqueta <title> de la página, la description se traduzca a la metaetiqueta correspondiente, la date se use para ordenar los artículos en el listado del blog y los tags se utilicen para construir las páginas de etiquetas.
En proyectos de Node, la librería de referencia para leer front matter es gray-matter, que se integra con Next.js, Astro y prácticamente cualquier flujo basado en JavaScript. En el mundo Python tienes python-frontmatter, que cumple la misma función.
El front matter es prácticamente universal en herramientas relacionadas con Markdown. Estas son las más representativas, con la sintaxis que admite cada una:
gray-matter. Es lo que utiliza esta web.gatsby-plugin-mdx.La mayoría de errores al procesar un archivo Markdown con front matter vienen de detalles muy concretos de la sintaxis YAML. Los más frecuentes son:
title: Markdown: la guía definitiva rompe YAML, porque el parser interpreta el segundo : como un separador de clave nuevo. La solución es entrecomillar el valor: title: "Markdown: la guía definitiva".title: "Esta es "mi" guía" confunde al parser. La solución es alternar comillas dobles y simples, o escapar con \".YYYY-MM-DD. Si escribes 15/01/2026 o 2026-1-15, puede interpretarse como cadena o lanzar un error.true, false, yes, no, on y off. Si quieres que el valor sea la cadena literal "no", debes entrecomillarla.Si un archivo Markdown se renderiza con el front matter incluido como texto en el cuerpo del documento, casi seguro que hay un fallo de sintaxis YAML que el parser no ha podido procesar. Los validadores online de YAML resuelven la mayoría de casos en segundos.
const meta.👋 Hola! Soy Edu, me encanta crear cosas y he redactado este tutorial. Si te ha resultado útil, el mayor favor que me podrías hacer es el de compatirlo en Twitter.
Sígueme en Twitter para estar al día con mi contenido. 😊