Líneas horizontales en Markdown: separadores con --- y ***
Cómo crear líneas horizontales o separadores en Markdown con tres guiones, asteriscos o guiones bajos, y por qué a veces los guiones generan un encabezado en lugar de una línea.
Las líneas horizontales separan visualmente secciones de un documento. En HTML son la etiqueta <hr>; en Markdown se escriben con tres o más caracteres iguales en una línea propia.
Las tres formas
***
---
___
Las tres producen exactamente el mismo resultado:
Puedes usar más de tres caracteres si te resulta más visible en el original, y separarlos con espacios:
* * *
- - -
_ _ _
*****
---------------------
Todas son válidas. Lo único que importa es que la línea contenga solo ese carácter (y opcionalmente espacios).
La trampa de los guiones
Aquí está el único problema real de este elemento, y confunde a mucha gente. Esto no genera una línea horizontal:
Un párrafo cualquiera
---
Genera un encabezado de nivel 2 con el texto “Un párrafo cualquiera”. Es la sintaxis Setext que se explica en encabezados: unos guiones justo debajo de una línea de texto la convierten en título.
Para que los guiones se interpreten como separador tiene que haber una línea en blanco por encima:
Un párrafo cualquiera
---
La forma de evitar el problema para siempre: usa asteriscos. *** nunca es ambiguo, porque no existe ninguna sintaxis de encabezado con asteriscos. Si trabajas con documentos generados o editados por varias personas, es la opción segura.
Deja siempre líneas en blanco alrededor
Aunque no sea estrictamente obligatorio en todos los procesadores, la costumbre correcta es dejar una línea vacía antes y después del separador:
Final de la primera sección.
---
Comienzo de la segunda.
Evita el problema del encabezado accidental y hace el original mucho más legible.
No confundir con la sangría
Una línea de guiones sangrada cuatro espacios se convierte en un bloque de código, no en un separador. Con uno, dos o tres espacios sí funciona como línea horizontal, pero no hay razón para sangrarla.
Cuándo usarla (y cuándo no)
Los separadores son útiles para marcar un cambio de tema fuerte dentro de un documento largo, o para cerrar una sección antes de un bloque de notas.
Pero conviene no abusar. Si estás poniendo una línea antes de cada apartado, probablemente lo que necesitas son encabezados: comunican la misma separación, además generan índice y estructura semántica, y son mucho más útiles para quien navega con lector de pantalla o para los buscadores.
En HTML, <hr> significa “cambio temático”, no “línea decorativa”. Si solo quieres un adorno visual, es mejor resolverlo con CSS.
Compatibilidad
Las líneas horizontales funcionan en Markdown original, CommonMark, GFM y prácticamente cualquier procesador. Es de los elementos más simples y estables del lenguaje.
La única diferencia entre plataformas es estética: cada una decide el grosor y el color de la línea mediante CSS.
Pruébalo
Si tus guiones te están generando un título en lugar de una línea, el previsualizador de Markdown te lo enseña al instante.