Hoja de trucos de Markdown
Última actualización
Títulos
Pon un espacio después de los signos #. El número de signos fija el nivel, del 1 al 6.
| Elemento | Markdown | Resultado |
|---|---|---|
| Título 1 | # Page title | Título de primer nivel, <h1> |
| Título 2 | ## Section | Título de sección, <h2> |
| Título 3 | ### Subsection | Título de subsección, <h3> |
| Títulos 4 a 6 | #### Level 4
##### Level 5
###### Level 6 | <h4>, <h5> y <h6> |
| Título 1, forma alternativa | Page title
========== | <h1>, igual que # Page title |
| Título 2, forma alternativa | Section
------- | <h2>, igual que ## Section |
| Almohadillas de cierre | ## Section ## | <h2>Section</h2>; los signos # del final se descartan |
| Falta el espacio | #Not a heading | Un párrafo normal. El espacio después de # es obligatorio |
Negrita, cursiva y tachado
Los asteriscos funcionan en cualquier sitio, incluso dentro de una palabra. Los guiones bajos solo funcionan en los límites de palabra, así que snake_case queda tal cual.
| Elemento | Markdown | Resultado |
|---|---|---|
| Negrita | **bold text** | Negrita, <strong>bold text</strong> |
| Negrita, guiones bajos | __bold text__ | Negrita, igual que arriba |
| Cursiva | *italic text* | Cursiva, <em>italic text</em> |
| Cursiva, guiones bajos | _italic text_ | Cursiva, igual que arriba |
| Negrita y cursiva | ***bold and italic*** | <em><strong>bold and italic</strong></em> |
| Negrita dentro de una palabra | un**believ**able | Solo el centro de la palabra va en negrita |
| Guiones bajos en una palabra | snake_case_name | Texto normal, sin cursiva |
| Tachado (GFM) | ~~no longer true~~ | Tachado, <del>no longer true</del> |
| Subrayado | <ins>underlined</ins> | Texto subrayado. Markdown no tiene sintaxis de subrayado, así que esto es HTML |
| Resaltado | <mark>highlighted</mark> | Texto resaltado donde el sitio permite la etiqueta <mark>. Markdown no tiene sintaxis de resaltado |
Saltos de línea y párrafos
Pulsar Enter una vez dentro de un párrafo no crea una línea nueva en el resultado. Usa una de estas opciones.
| Elemento | Markdown | Resultado |
|---|---|---|
| Párrafo nuevo | First paragraph.
Second paragraph. | Dos párrafos. Una línea en blanco los separa |
| Salto: dos espacios | Roses are red,
Violets are blue. | Un párrafo con un <br> después de red,. La primera línea termina con dos espacios, que no se ven |
| Salto: barra invertida | Roses are red,\
Violets are blue. | El mismo <br>, con una marca visible. Funciona en CommonMark y en GitHub |
| Salto: HTML | Roses are red,<br>Violets are blue. | El mismo <br>. También funciona dentro de una celda de tabla |
| Un solo salto de línea | Roses are red,
Violets are blue. | Una sola línea: Roses are red, Violets are blue. Los issues y comentarios de GitHub conservan el salto; los archivos .md no |
| Líneas en blanco extra | One.
Two. | Igual que una sola línea en blanco. Para más espacio, pon <br> en su propia línea |
Listas
Sangra un elemento anidado para que quede alineado con el texto del elemento de arriba: 2 espacios bajo - , 3 espacios bajo 1. .
| Elemento | Markdown | Resultado |
|---|---|---|
| Lista con viñetas | - Apples
- Pears
- Plums | Una lista con viñetas, <ul> con tres <li> |
| Otras viñetas | * Apples
+ Pears | * y + también crean viñetas. Cambiar de carácter empieza una lista nueva |
| Lista numerada | 1. Install
2. Configure
3. Run | Una lista numerada, <ol> |
| Numeración perezosa | 1. Install
1. Configure
1. Run | Sigue numerada 1, 2, 3. Solo cuenta el primer número |
| Empezar en un número | 7. Seventh
8. Eighth | <ol start="7">, numerada desde el 7 |
| Lista anidada | - Fruit
- Apple
- Pear
- Vegetables | Una lista dentro del primer elemento |
| Anidada, numerada | 1. Download
- Windows
- macOS
2. Install | Viñetas dentro del paso 1, con 3 espacios de sangría |
| Párrafo en un elemento | - First item
More about the first item.
- Second item | Dos párrafos dentro del primer elemento |
| Código en un elemento | 1. Run this:
```bash
npm install
```
2. Start the app | Un bloque de código dentro del paso 1, sangrado hasta el texto del elemento |
Listas de tareas (casillas)
Una extensión de GitHub Flavored Markdown: un elemento de lista que empieza con [ ] o [x] se convierte en una casilla.
| Elemento | Markdown | Resultado |
|---|---|---|
| Casilla vacía | - [ ] Write tests | Una casilla sin marcar |
| Casilla marcada | - [x] Write tests | Una casilla marcada. [X] también funciona |
| Lista de comprobación | - [x] Draft
- [ ] Review
- [ ] Publish | Una casilla marcada y dos vacías. En los issues y pull requests de GitHub puedes marcarlas con un clic |
| Tareas anidadas | - [ ] Release
- [x] Tag the commit
- [ ] Write the notes | Dos subtareas bajo la primera casilla |
| Falta el espacio | - [] Write tests | Una viñeta normal que dice [] Write tests. Los corchetes necesitan un espacio o una x |
Enlaces
El texto del enlace va entre corchetes y la dirección entre paréntesis justo después, sin espacio entre ambos.
| Elemento | Markdown | Resultado |
|---|---|---|
| Enlace en línea | [Coddy](https://coddy.tech) | <a href="https://coddy.tech">Coddy</a> |
| Enlace con título | [Coddy](https://coddy.tech "Learn to code") | El mismo enlace. El título aparece como tooltip al pasar el ratón |
| URL entre ángulos | <https://coddy.tech> | La propia URL, como enlace |
| URL suelta (GFM) | https://coddy.tech | Un enlace en GitHub y otros sitios GFM, que también enlazan direcciones www.. Texto normal en CommonMark estricto |
| Enlace de correo | <hello@example.com> | Un enlace mailto: |
| Enlace por referencia | Read the [docs][1].
[1]: https://example.com/docs | docs enlaza a la URL. La línea [1]: no se muestra |
| Referencia abreviada | See [GitHub].
[GitHub]: https://github.com | GitHub enlaza a la URL |
| Enlace relativo | [Install guide](docs/install.md) | Un enlace a un archivo relativo a este. En GitHub abre el archivo en el repositorio |
| Enlace a un título | [Jump to setup](#getting-started) | Salta a ## Getting Started en la misma página |
| IDs de los títulos | ## Getting Started! | Recibe el ID getting-started en GitHub: en minúsculas, los espacios pasan a guiones y se elimina la puntuación salvo - y _ |
| Título en otro archivo | [Requirements](docs/install.md#requirements) | Abre el archivo en ese título |
| Espacios en la URL | [Report](my%20report.pdf) | Escribe cada espacio como %20, o encierra la URL entre ángulos: [Report](<my report.pdf>) |
| Abrir en una pestaña nueva | <a href="https://coddy.tech" target="_blank">Coddy</a> | Markdown no tiene sintaxis para esto. El HTML funciona donde el sitio conserva el atributo target |
Imágenes
Una imagen es un enlace con ! delante. El texto entre corchetes pasa a ser el texto alternativo, que leen en voz alta los lectores de pantalla.
| Elemento | Markdown | Resultado |
|---|---|---|
| Imagen |  | <img src="cat.png" alt="A cat asleep on a sofa"> |
| Imagen con título |  | La misma imagen con un tooltip al pasar el ratón |
| Imagen desde una URL |  | Carga la imagen desde la web |
| Imagen con enlace | [](https://coddy.tech) | Una imagen que abre el enlace al hacer clic |
| Imagen por referencia | ![Logo][logo]
[logo]: images/logo.png | Igual que una imagen en línea, con la URL definida una sola vez más abajo |
| Tamaño de la imagen | <img src="logo.png" alt="Logo" width="200"> | La imagen, de 200 píxeles de ancho. Markdown básico no tiene sintaxis de tamaño, así que esto es una etiqueta HTML <img> |
| Imagen centrada | <p align="center">
<img src="logo.png" alt="Logo" width="200">
</p> | Una imagen centrada, como en muchos archivos README de GitHub |
Código y bloques de código
Las comillas invertidas marcan código dentro de una línea; una valla de tres comillas invertidas marca un bloque. Nada dentro del código recibe formato.
| Elemento | Markdown | Resultado |
|---|---|---|
| Código en línea | Run `npm install` first. | npm install en fuente monoespaciada, como <code> |
| Comilla invertida dentro del código | ``Use `git` here`` | El código Use `git` here. Rodéalo con más comillas invertidas de las que contiene |
| Bloque de código | ```
npm install
npm run dev
``` | Un bloque, <pre><code>, que conserva los saltos de línea |
| Resaltado de sintaxis | ```python
def greet(name):
return f"Hello, {name}"
``` | Un bloque de Python con la sintaxis coloreada. Nombres habituales: js, ts, python, bash, json, html, css, sql |
| Valla de virgulillas | ~~~js
console.log("hi");
~~~ | Igual que una valla de comillas invertidas |
| Código sangrado | const total = 42; | Un bloque de código creado con 4 espacios de sangría, después de una línea en blanco |
| Bloque diff | ```diff
- const x = 1;
+ const x = 2;
``` | En GitHub, las líneas eliminadas en rojo y las añadidas en verde |
| Valla dentro de un bloque | ````markdown
```js
let a = 1;
```
```` | Un bloque que muestra la valla interior como texto. La valla exterior necesita más comillas invertidas que la interior |
Tablas
Una extensión de GitHub Flavored Markdown. La segunda línea, la fila delimitadora, convierte la primera en cabecera. Debe tener el mismo número de celdas que la cabecera, o no se crea ninguna tabla.
| Elemento | Markdown | Resultado |
|---|---|---|
| Tabla | | Name | Role |
| ----- | ------ |
| Ada | Admin |
| Linus | Editor | | Una tabla con una fila de cabecera y dos filas |
| Alineación de columnas | | Left | Center | Right |
| :--- | :----: | ----: |
| a | b | c | | Los dos puntos fijan la alineación: izquierda, centrada, derecha |
| Sin barras exteriores | Name | Role
--- | ---
Ada | Admin | La misma tabla. Las barras al principio y al final de una línea son opcionales |
| Ancho de columna | | a | b |
|---|---|
| 1 | 2 | | El ancho depende del contenido. El número de guiones no importa, y las barras no tienen que quedar alineadas |
| Formato en las celdas | | Command | Does |
| --- | --- |
| `git status` | Shows **changed** files | | Código, negrita, enlaces e imágenes funcionan dentro de las celdas |
| Barra vertical dentro de una celda | | Operator | Meaning |
| --- | --- |
| `a \| b` | a or b | | La celda muestra a | b. Escapa la barra como \|, incluso dentro de código |
| Salto de línea en una celda | | Step | Notes |
| --- | --- |
| 1 | First line<br>Second line | | Dos líneas en una celda. Un salto de línea real terminaría la fila |
| Celdas combinadas | <td colspan="2">Both columns</td> | Las tablas de Markdown no pueden combinar celdas. Escribe la tabla en HTML con colspan o rowspan |
Citas
Empieza cada línea con >. Una cita puede contener cualquier otro elemento de Markdown.
| Elemento | Markdown | Resultado |
|---|---|---|
| Cita | > Simple is better than complex. | Una cita sangrada, <blockquote> |
| Varios párrafos | > First paragraph.
>
> Second paragraph. | Una cita con dos párrafos. La línea con > sola los mantiene juntos |
| Cita anidada | > The reply
>> The original message | Una cita dentro de otra |
| Otros elementos dentro | > #### Note
> - Back up first
> - Then upgrade | Un título y una lista dentro de la cita |
| Alerta (GitHub) | > [!NOTE]
> Requires Node 20 or later. | Un recuadro Note de color en GitHub. Los otros tipos son [!TIP], [!IMPORTANT], [!WARNING] y [!CAUTION] |
Líneas horizontales
Tres o más guiones, asteriscos o guiones bajos solos en una línea trazan una línea de lado a lado de la página.
| Elemento | Markdown | Resultado |
|---|---|---|
| Línea | --- | Una línea horizontal, <hr> |
| Otras formas | ***
___ | Dos líneas más |
| Línea después de texto | Some text
--- | Un párrafo y luego una línea. Mantén la línea en blanco |
| Falta la línea en blanco | Some text
--- | Un título de nivel 2, no una línea: --- bajo una línea de texto la subraya |
Notas al pie
Funcionan en GitHub, GitLab y muchos generadores de sitios estáticos. CommonMark estricto no tiene notas al pie.
| Elemento | Markdown | Resultado |
|---|---|---|
| Nota al pie | Markdown dates from 2004.[^1]
[^1]: John Gruber created it, with Aaron Swartz. | Un 1 en superíndice que enlaza a la nota, listada al final de la página |
| Nota con nombre | See the spec.[^spec]
[^spec]: https://spec.commonmark.org | Las etiquetas pueden ser palabras, pero las notas se siguen numerando 1, 2, 3 por orden de uso |
| Dónde definirla | [^1]: The text of the note. | La definición puede ir en cualquier parte del archivo. Siempre se muestra al final |
Escapar caracteres
Una barra invertida delante de un signo de puntuación imprime el propio carácter en lugar de dar formato.
| Elemento | Markdown | Resultado |
|---|---|---|
| Asteriscos literales | \*not italic\* | Texto normal con los asteriscos: *not italic* |
| Almohadilla literal | \# Not a heading | Un párrafo que empieza por # |
| Número y punto | 2024\. A good year. | Un párrafo, no una lista que empieza en 2024 |
| Corchetes literales | \[not a link\](page.md) | Los corchetes y paréntesis tal como se escribieron |
| Comilla invertida literal | \` | Una comilla invertida |
| Barra invertida literal | \\ | Una barra invertida |
| Qué se puede escapar | \ ` * _ {} [] () <> # + - . ! | | Cualquier signo de puntuación ASCII. Una barra invertida delante de una letra o un dígito se queda como barra invertida |
| Entidades HTML | © 2026 & <div> | © 2026 & <div>, como texto |
| Sin escape dentro de código | `*stars*` | El código *stars* tal como se escribió. Dentro del código, una barra invertida es un carácter normal |
HTML dentro de Markdown
La mayoría de los renderizadores dejan pasar el HTML, así que una etiqueta cubre lo que Markdown no tiene. GitHub elimina el HTML inseguro, como <script>, <style>, <iframe> y los atributos style.
| Elemento | Markdown | Resultado |
|---|---|---|
| Teclas del teclado | Press <kbd>Ctrl</kbd> + <kbd>C</kbd> | Ctrl y C dibujadas como teclas |
| Subíndice y superíndice | H<sub>2</sub>O and x<sup>2</sup> | H₂O and x² |
| Sección desplegable | <details>
<summary>Show the answer</summary>
The answer is **42**.
</details> | Una sección que se abre con un clic. Las líneas en blanco permiten que se renderice el Markdown de dentro |
| Markdown en un bloque HTML | <div>
**not bold**
</div> | **not bold** tal como se escribió. Markdown no se interpreta dentro de un bloque HTML hasta que una línea en blanco termina el bloque |
| Texto de color | <span style="color: red">red</span> | Texto rojo en los sitios que permiten estilos en línea. GitHub elimina el atributo style |
Comentarios
Markdown no tiene sintaxis de comentarios. Dos trucos mantienen el texto fuera de la página renderizada.
| Elemento | Markdown | Resultado |
|---|---|---|
| Comentario oculto | [//]: # (This line is never shown) | Nada. La línea es una definición de enlace que ningún enlace usa, así que nunca llega al HTML |
| Forma alternativa | [comment]: <> (Also hidden) | Nada, por el mismo truco |
| Comentario HTML | <!-- TODO: add screenshots --> | Nada en la página, pero el comentario queda en el código fuente HTML |
| Comentario de varias líneas | <!--
This whole block
is hidden
--> | Nada en la página |
| Ubicación | Some text.
[//]: # (comment)
More text. | Dos párrafos. La línea del comentario necesita una línea en blanco antes, o se muestra como texto |
GitHub Flavored Markdown y extras de GitHub
GitHub Flavored Markdown (GFM) es CommonMark más tablas, listas de tareas, tachado y URL que se convierten en enlaces. GitHub añade más por encima.
| Función | Markdown | Dónde funciona |
|---|---|---|
| Tablas | | a | b |
| --- | --- |
| 1 | 2 | | GFM: GitHub, GitLab y la mayoría de las herramientas de documentación |
| Listas de tareas | - [x] Done | GFM |
| Tachado | ~~text~~ | GFM |
| URL sueltas como enlaces | www.coddy.tech | GFM |
| Código con lenguaje | ```js
let a = 1;
``` | CommonMark y GFM. Los colores los pone el sitio |
| Notas al pie | Text.[^1]
[^1]: Note. | GitHub y GitLab, aunque no están en la especificación de GFM |
| Emoji | :rocket: :tada: | GitHub y GitLab convierten los códigos cortos en emoji |
| Menciones | @octocat | GitHub: enlaza al usuario y le envía una notificación |
| Enlaces a issues | #123 | GitHub: enlaza el issue o pull request 123 del mismo repositorio |
| Diagramas | ```mermaid
graph LR
A --> B
``` | GitHub y GitLab dibujan un diagrama Mermaid |
| Matemáticas | $E = mc^2$
$$
\sum_{i=1}^{n} i
$$ | GitHub renderiza matemáticas LaTeX, en línea entre signos $ y como bloque entre líneas $$ |
Toda la sintaxis de Markdown en una página, junto a lo que produce. Esta hoja de trucos de Markdown cubre la sintaxis básica (títulos, énfasis, saltos de línea, listas, enlaces, imágenes, código, citas) y los extras de GitHub Flavored Markdown: tablas con alineación, listas de tareas, tachado, URL que se convierten en enlaces y notas al pie, además de caracteres de escape, HTML y comentarios.
Los ejemplos siguen CommonMark y GitHub Flavored Markdown, las reglas en las que se basan GitHub, GitLab y la mayoría de las herramientas de documentación. Cuando un sitio se comporta de otra forma, la fila lo indica. Para ver cualquier ejemplo renderizado mientras escribes, pégalo en el editor de Markdown.
Preguntas frecuentes sobre la hoja de trucos de Markdown
¿Cómo hago una tabla en Markdown?
| Name | Role |, | --- | --- |, | Ada | Admin |. Los dos puntos en la fila delimitadora alinean una columna: :--- a la izquierda, :---: centrada, ---: a la derecha. Las tablas son una función de GitHub Flavored Markdown, así que funcionan en GitHub, GitLab y la mayoría de las herramientas de documentación, pero no en CommonMark estricto.¿Cómo hago un salto de línea en Markdown?
\), o escribe <br>. Para empezar un párrafo nuevo, deja una línea en blanco. Los issues y comentarios de GitHub son la excepción: ahí un solo salto de línea ya se muestra como salto.¿Cómo escribo un comentario en Markdown?
[//]: # (your comment) en su propia línea, con una línea en blanco antes, es una definición de enlace que nada usa, así que nunca llega a la página ni al HTML. Un comentario HTML, <!-- your comment -->, también queda oculto en la página, pero se mantiene en el código fuente HTML, donde cualquiera que vea el código fuente puede leerlo.¿Cómo hago un bloque de código en Markdown?
```python, para tener resaltado de sintaxis. Para código dentro de una frase, rodéalo con comillas invertidas simples: `npm install`.¿Cómo añado una casilla en Markdown?
[ ] para una casilla vacía o con [x] para una marcada: - [ ] Review o - [x] Draft. Deja el espacio dentro de los corchetes vacíos. Las casillas forman parte de GitHub Flavored Markdown, y en los issues y pull requests de GitHub puedes marcarlas con un clic.¿Cómo cambio el tamaño de una imagen en Markdown?
 siempre muestra la imagen a su tamaño original. Usa en su lugar una etiqueta HTML, como <img src="image.png" alt="alt text" width="300">, que GitHub y la mayoría de los renderizadores aceptan. Indica solo el ancho o solo el alto para mantener las proporciones.¿Cómo enlazo a un título en Markdown?
#: [Setup](#getting-started) salta a ## Getting Started. GitHub construye el ID a partir del texto del título en minúsculas, con los espacios convertidos en guiones y sin la puntuación que no sean guiones y guiones bajos. Para un título de otro archivo, pon el ID después del nombre del archivo: [Setup](docs/install.md#getting-started).¿Qué es un archivo .md?
.md y .markdown son las extensiones habituales, y README.md es el archivo que GitHub muestra en la portada de un repositorio. Cualquier editor de texto lo abre; GitHub, los sitios de documentación y los visores de Markdown lo muestran como texto con formato. Para ver un archivo renderizado mientras lo editas, pégalo en el editor de Markdown.