Guía Completa de Markdown: Sintaxis, Consejos y Mejores Prácticas
· 12 min de lectura
Tabla de Contenidos
- ¿Qué es Markdown?
- Encabezados y Estructura del Documento
- Fundamentos de Formato de Texto
- Listas: Ordenadas, Desordenadas y Anidadas
- Enlaces e Imágenes
- Bloques de Código y Resaltado de Sintaxis
- Tablas y Presentación de Datos
- Citas en Bloque y Líneas Horizontales
- Características de Sintaxis Extendida
- Variantes y Sabores de Markdown
- Mejores Prácticas y Errores Comunes
- Preguntas Frecuentes
¿Qué es Markdown?
Markdown es un lenguaje de marcado ligero creado por John Gruber en colaboración con Aaron Swartz en 2004. Te permite escribir texto formateado usando sintaxis de texto plano que permanece legible incluso sin renderizar. En lugar de hacer clic en botones en un procesador de texto o escribir etiquetas HTML verbosas, usas caracteres simples e intuitivos como # para encabezados, ** para texto en negrita y - para listas.
La filosofía detrás de Markdown es elegantemente simple: el texto fuente debe ser tan legible como la salida renderizada. Cuando abres un archivo Markdown en cualquier editor de texto, puedes entender inmediatamente su estructura y contenido sin necesitar software especial o motores de renderizado.
Markdown se ha convertido en el estándar de facto para escritura técnica, documentación, archivos README, publicaciones de blog y toma de notas en todo el mundo del desarrollo de software. Plataformas importantes como GitHub, GitLab, Reddit, Stack Overflow, Discord, Slack, Notion y Obsidian soportan Markdown de forma nativa, convirtiéndolo en una habilidad esencial para desarrolladores, escritores técnicos y creadores de contenido.
¿Por qué usar Markdown?
- Velocidad y Eficiencia: Escribir
**negrita**es significativamente más rápido que escribir<strong>negrita</strong>o buscar una barra de herramientas de formato - Portabilidad Universal: Los archivos de texto plano funcionan en todas partes, en todos los sistemas operativos y en todos los editores de texto sin problemas de compatibilidad
- Compatible con Control de Versiones: Los diffs de Git son limpios y significativos con Markdown, haciendo que la colaboración y el seguimiento de cambios sean sencillos
- Escritura sin Distracciones: Sin distracciones de barras de herramientas de formato o interfaces complejas—solo tú y tu contenido
- Conversión Fácil: Markdown se convierte fácilmente a HTML, PDF, DOCX, LaTeX y docenas de otros formatos usando herramientas como Pandoc
- A Prueba de Futuro: Los archivos de texto plano permanecerán legibles dentro de décadas, a diferencia de formatos propietarios que pueden volverse obsoletos
- Accesibilidad: Markdown correctamente estructurado se traduce a HTML semántico, mejorando la accesibilidad para lectores de pantalla
Consejo profesional: Si trabajas regularmente con archivos Markdown, prueba nuestro Editor de Markdown para vista previa en vivo y resaltado de sintaxis, o usa el Convertidor de Markdown a HTML para transformar tus documentos instantáneamente.
Encabezados y Estructura del Documento
Los encabezados son la columna vertebral de la estructura del documento en Markdown. Usan el símbolo #, donde el número de símbolos de almohadilla determina el nivel del encabezado del 1 al 6:
# Encabezado 1
## Encabezado 2
### Encabezado 3
#### Encabezado 4
##### Encabezado 5
###### Encabezado 6
Siempre incluye un espacio después del símbolo #—la mayoría de los procesadores de Markdown lo requieren, y mejora la legibilidad. La salida renderizada crea etiquetas de encabezado HTML apropiadas (<h1> hasta <h6>), que son cruciales para la estructura del documento, accesibilidad y SEO.
Mejores Prácticas para Encabezados
Usa niveles de encabezado secuencialmente sin saltar niveles. No saltes de H1 a H3—esto rompe la jerarquía del documento y crea problemas de accesibilidad para usuarios de lectores de pantalla. Piensa en los encabezados como un esquema: cada nivel debe anidarse lógicamente dentro del anterior.
La mayoría de los documentos deben tener solo un encabezado H1 (el título), con encabezados H2 para secciones principales y H3-H6 para subsecciones. Esto crea una jerarquía de información clara que tanto humanos como motores de búsqueda pueden entender.
Consejo rápido: Muchos procesadores de Markdown generan automáticamente enlaces de anclaje para encabezados, permitiéndote enlazar directamente a secciones específicas. GitHub, por ejemplo, convierte "## Comenzando" en un anclaje que puedes referenciar con #comenzando.
Sintaxis Alternativa de Encabezados
Markdown también soporta una sintaxis alternativa para encabezados H1 y H2 usando subrayados:
Encabezado 1
============
Encabezado 2
------------
Aunque esta sintaxis es válida, la sintaxis de almohadilla es más común y soporta los seis niveles de encabezado, haciéndola la opción preferida para la mayoría de los escritores.
Fundamentos de Formato de Texto
Markdown proporciona sintaxis simple e intuitiva para necesidades comunes de formato de texto. Estas opciones de formato funcionan en línea dentro de párrafos y pueden combinarse para estilos más complejos.
| Formato | Sintaxis | Alternativa | Resultado |
|---|---|---|---|
| Negrita | **negrita** |
__negrita__ |
negrita |
| Cursiva | *cursiva* |
_cursiva_ |
cursiva |
| Negrita + Cursiva | ***ambas*** |
___ambas___ |
ambas |
| Tachado | ~~eliminado~~ |
— | |
| Código en línea | `código` |
— | código |
| Subíndice | H~2~O |
— | H2O |
| Superíndice | X^2^ |
— | X2 |
| Resaltado | ==marcado== |
— | marcado |
Detalles de Sintaxis de Énfasis
Tanto los asteriscos (*) como los guiones bajos (_) funcionan para énfasis, pero los asteriscos son más comúnmente usados y recomendados. La diferencia clave: los asteriscos funcionan a mitad de palabra (in*creí*ble), mientras que los guiones bajos requieren límites de palabra.
Para texto en negrita, usa asteriscos o guiones bajos dobles. Para texto en cursiva, usa asteriscos o guiones bajos simples. Combina tres para texto en negrita y cursiva. Esta consistencia hace que tu fuente Markdown sea más legible y predecible.
Consejo profesional: Al escribir documentación técnica, usa `comillas invertidas` para código en línea, nombres de funciones, rutas de archivos y argumentos de línea de comandos. Esta distinción visual ayuda a los lectores a identificar rápidamente elementos de código dentro de la prosa.
Escapar Caracteres Especiales
Si necesitas mostrar asteriscos literales, guiones bajos u otros caracteres de sintaxis de Markdown, escápalos con una barra invertida:
Esto \*no es cursiva\* y \*\*no es negrita\*\*
Usa \# para mostrar un símbolo de almohadilla sin crear un encabezado
Los caracteres comunes que necesitan escape incluyen: \ ` * _ { } [ ] ( ) # + - . !
Listas: Ordenadas, Desordenadas y Anidadas
Las listas son fundamentales para organizar información en Markdown. Son simples de crear y soportan anidamiento para contenido jerárquico.
Listas Desordenadas
Crea listas desordenadas (con viñetas) usando -, * o + seguido de un espacio. Los tres marcadores funcionan idénticamente, pero la consistencia dentro de un documento mejora la legibilidad:
- Primer elemento
- Segundo elemento
- Tercer elemento
- Elemento anidado (sangría con 2 espacios)
- Otro elemento anidado
- Cuarto elemento
La sangría estándar para listas anidadas es de dos espacios, aunque algunos analizadores aceptan cuatro. Mantente con dos espacios para máxima compatibilidad.
Listas Ordenadas
Las listas ordenadas (numeradas) usan números seguidos de puntos y un espacio:
1. Primer paso
2. Segundo paso
3. Tercer paso
1. Sub-paso A
2. Sub-paso B
4. Cuarto paso
Aquí hay una característica útil: los números reales que uses no importan. Markdown renumera automáticamente las listas secuencialmente cuando se renderizan. Puedes usar 1. para cada elemento, facilitando reordenar elementos sin renumerar:
1. Primer elemento
1. Segundo elemento
1. Tercer elemento
Esto se renderiza como una lista numerada apropiadamente 1, 2, 3. Esta técnica es particularmente útil al mantener listas largas o reordenar elementos frecuentemente.
Listas de Tareas
Muchos sabores de Markdown (incluyendo GitHub Flavored Markdown) soportan listas de tareas con casillas de verificación:
- [x] Tarea completada
- [ ] Tarea incompleta
- [ ] Otra tarea incompleta
Las listas de tareas son invaluables para gestión de proyectos, seguimiento de problemas y listas de tareas pendientes en documentación.
Consejo rápido: Para incluir múltiples párrafos o bloques de código dentro de un elemento de lista, sangra el contenido subsecuente para alinearlo con el primer carácter del texto del elemento de lista (típicamente 3-4 espacios para listas desordenadas, 4 espacios para listas ordenadas).
Listas de Definiciones
Algunas sintaxis extendidas de Markdown soportan listas de definiciones para glosarios y definiciones de términos:
Término 1
: Definición para término 1
Término 2
: Primera definición para término 2
: Segunda definición para término 2
Aunque no son universalmente soportadas, las listas de definiciones son útiles para documentación técnica y glosarios.
Enlaces e Imágenes
Markdown facilita agregar hipervínculos e imágenes mientras mantiene el texto fuente legible.
Enlaces en Línea
La sintaxis de enlace más común usa corchetes para el texto del enlace y paréntesis para la URL:
[Texto del enlace](https://ejemplo.com)
[Enlace con título](https://ejemplo.com "Texto al pasar el cursor")
El texto de título opcional aparece como información sobre herramientas cuando los usuarios pasan el cursor sobre el enlace. Esto es útil para proporcionar contexto adicional sin saturar el texto visible del enlace.
Enlaces de Estilo de Referencia
Para documentos con muchos enlaces o URLs repetidas, los enlaces de estilo de referencia mejoran la legibilidad:
Este es [un enlace][1] y aquí hay [otro enlace][2].
[1]: https://ejemplo.com
[2]: https://ejemplo.com/pagina "Título opcional"
También puedes usar referencias descriptivas en lugar de números:
Visita [Google][google] y [GitHub][gh].
[google]: https://google.com
[gh]: https://github.com
Las definiciones de referencia pueden aparecer en cualquier lugar del documento y no se renderizarán en la salida. Muchos escritores las colocan al final de las secciones o al final del documento.
Enlaces Automáticos
Envuelve URLs o direcciones de correo electrónico en corchetes angulares para crear enlaces automáticos:
<https://ejemplo.com>
<[email protected]>
La mayoría de los analizadores modernos de Markdown también convierten automáticamente URLs desnudas en enlaces clicables, aunque este comportamiento no está garantizado en todas las plataformas.
Imágenes
La sintaxis de imagen es casi idéntica a la sintaxis de enlace, con un prefijo de signo de exclamación:


El texto alternativo es crucial para la accesibilidad—describe la imagen para usuarios de lectores de pantalla y se muestra cuando la imagen no se carga. Siempre proporciona texto alternativo significativo que transmita el contenido y propósito de la imagen.
La sintaxis de estilo de referencia también funciona para imágenes:
![Logo][logo]
[logo]: /imagenes/logo.png "Logo de la empresa"
Consejo profesional: Markdown estándar no soporta dimensionamiento o alineación de imágenes. Para estas características, necesitarás usar HTML directamente: <img src="imagen.jpg" width="300" alt="Descripción"> o depender de sintaxis extendida de Markdown específica de tu plataforma.
Enlazar Imágenes
Para hacer una imagen clicable, envuelve la sintaxis de imagen en sintaxis de enlace:
[](tamano-completo.jpg)
Esta técnica se usa comúnmente para galerías de imágenes o enlazar miniaturas a versiones de resolución completa.
Bloques de Código y Resaltado de Sintaxis
Markdown sobresale en mostrar código, convirtiéndolo en el formato preferido para documentación técnica y tutoriales de programación.
Código en Línea
Para fragmentos cortos de código dentro del texto, usa comillas invertidas simples:
Usa la función `print()` para mostrar salida.
El archivo `config.json` contiene configuraciones.
Si tu código contiene comillas invertidas, usa comillas invertidas dobles para envolverlo:
``Usa `comillas invertidas` en código``
Bloques de Código Cercados
Para bloques de código de múltiples líneas, usa comillas invertidas triples (```) o tildes triples (~~~) antes y después del código:
```
function saludar(nombre) {
return `¡Hola, ${nombre}!`;
}
```
Esto crea un bloque de código correctamente formateado con fuente monoespaciada y espacios en blanco preservados.
Resaltado de Sintaxis
Especifica el lenguaje de programación inmediatamente después de las comillas invertidas de apertura para habilitar el resaltado de sintaxis:
```javascript
function saludar(nombre) {
return `¡Hola, ${nombre}!`;
}
```
```python
def saludar(nombre):
return f"¡Hola, {nombre}!"
```
```bash
#!/bin/bash
echo "¡Hola, Mundo!"
```