Casillas de verificación en Markdown: listas de tareas
Cómo crear listas de tareas con casillas marcables en Markdown usando corchetes. Sintaxis de GitHub Flavored Markdown, anidado, y en qué plataformas son interactivas.
Las listas de tareas —o checklists— son listas normales en las que cada elemento lleva una casilla que se puede marcar. No están en el Markdown original: llegaron con GitHub Flavored Markdown y hoy las admiten casi todos los procesadores modernos.
Sintaxis
Una lista desordenada donde cada elemento empieza con corchetes: [ ] para pendiente y [x] para completado.
- [x] Escribir el borrador
- [x] Revisar la ortografía
- [ ] Publicar
- [ ] Compartir en redes
Resultado:
- Escribir el borrador
- Revisar la ortografía
- Publicar
- Compartir en redes
Tres detalles que hay que respetar:
- El espacio dentro de los corchetes vacíos es obligatorio.
[ ]con espacio, no[]. - Hay un espacio entre el corchete de cierre y el texto.
- [ ] Tarea, no- [ ]Tarea. - Solo funciona sobre listas desordenadas. Con
1.en lugar de-, la mayoría de procesadores no lo reconocen.
La x puede ir en mayúscula o minúscula: [x] y [X] valen igual.
Casillas interactivas
En algunas plataformas las casillas se pueden pulsar directamente en la vista renderizada, sin editar el texto. Al marcarlas, la plataforma modifica el documento por debajo cambiando [ ] por [x].
| Plataforma | ¿Interactivas? |
|---|---|
| GitHub (issues y PRs) | ✅ Sí |
GitHub (archivos .md del repo) | ❌ Solo visual |
| GitLab (issues) | ✅ Sí |
| Obsidian | ✅ Sí |
| Notion | ✅ Sí |
| VS Code (vista previa) | ❌ Solo visual |
| Reddit / Discord | ❌ No admite |
Es una distinción que confunde: en un issue de GitHub puedes marcar casillas con el ratón; en el README.md del mismo repositorio, las mismas casillas se ven pero no responden. Tiene sentido —un archivo del repositorio solo cambia con un commit—, pero pilla desprevenido.
En los issues y pull requests, GitHub además cuenta las tareas y muestra un indicador de progreso del tipo “3 de 5”. Es lo que convierte una lista de tareas en una herramienta de seguimiento de verdad.
Anidar tareas
Se anidan igual que cualquier lista, con cuatro espacios por nivel:
- [ ] Preparar el lanzamiento
- [x] Escribir la nota de prensa
- [x] Preparar las capturas
- [ ] Grabar el vídeo de demostración
- [ ] Publicar
- Preparar el lanzamiento
- Escribir la nota de prensa
- Preparar las capturas
- Grabar el vídeo de demostración
- Publicar
⚠️ Marcar todas las subtareas no marca la tarea padre automáticamente. En GitHub el contador de progreso tampoco tiene en cuenta la jerarquía: cuenta todas las casillas por igual.
Formato dentro de la tarea
Dentro del texto de cada tarea funciona el resto de sintaxis en línea:
- [ ] Revisar el archivo `config.yml`
- [ ] Leer la [documentación de la API](https://ejemplo.com)
- [x] ~~Arreglar el error de login~~ resuelto en #142
- [ ] **Urgente:** desplegar antes del viernes
- Revisar el archivo
config.yml - Leer la documentación de la API
-
Arreglar el error de loginresuelto en #142 - Urgente: desplegar antes del viernes
Combinar el tachado con la casilla marcada es un patrón muy habitual: refuerza visualmente que algo está cerrado.
Estados personalizados en Obsidian
Obsidian admite caracteres arbitrarios dentro de los corchetes para representar más estados que “hecho” y “pendiente”:
- [ ] Pendiente
- [x] Completado
- [/] En progreso
- [-] Cancelado
- [?] En duda
Con el tema adecuado, cada uno se pinta con un icono distinto. Es específico de Obsidian: en GitHub, cualquier cosa que no sea [ ] o [x] se muestra como texto literal entre corchetes.
Errores frecuentes
Faltan los espacios. -[x]Tarea no funciona. Tiene que ser - [x] Tarea, con espacio después del guion, dentro de los corchetes vacíos y después del corchete de cierre.
Usar lista ordenada. 1. [ ] Tarea no se reconoce en la mayoría de procesadores.
Esperar interactividad donde no la hay. En un archivo del repositorio las casillas son solo visuales. Si necesitas marcarlas con el ratón, muévelas a un issue.
Sangría de dos espacios. Como en las listas normales, con dos espacios el anidado es inconsistente entre procesadores. Usa cuatro.
Compatibilidad
| Procesador | Casillas |
|---|---|
| GitHub / GitLab | ✅ |
| Obsidian | ✅ |
| Notion | ✅ |
| VS Code | ✅ |
| Typora | ✅ |
| Markdown original | ❌ |
| CommonMark | ❌ |
| Discord | ❌ |
Ojo con el detalle: las casillas no están en CommonMark, solo en GFM y en las extensiones que lo han adoptado. En un procesador que no las admita, verás literalmente - [ ] Tarea con los corchetes a la vista. Degrada de forma razonablemente legible, pero no es bonito.
Pruébalo
Comprueba que tus casillas se procesan bien —y sobre todo que la sangría de las subtareas es correcta— en el previsualizador de Markdown.