Markdown.es Logo Markdown.es

¿Te es útil esta web? Apóyala sin coste: si compras en Amazon, hazlo a través de nuestro enlace de afiliado — el precio es el mismo para ti y nos ayuda a seguir.

Escapar caracteres en Markdown: la barra invertida

Cómo mostrar asteriscos, guiones bajos, almohadillas o corchetes literalmente en Markdown sin que se interpreten como formato, usando la barra invertida o entidades HTML.

Antes o después te pasará: quieres escribir un asterisco y Markdown te lo convierte en cursiva. O escribes 2 * 3 * 4 y media frase se pone en itálica.

La solución es escapar el carácter con una barra invertida \.

Sintaxis

Pon una barra invertida justo delante del carácter que quieres mostrar literalmente:

\*Esto no está en cursiva\*
2 \* 3 \* 4 = 24
Un guion bajo\_dentro\_de una palabra

*Esto no está en cursiva*

2 * 3 * 4 = 24

Un guion bajo_dentro_de una palabra

La barra invertida desaparece del resultado final: solo sirve para decirle al procesador “el siguiente carácter es texto, no marcado”.

Qué caracteres se pueden escapar

Estos son los que Markdown reconoce como escapables:

CarácterNombreSin escapar haría
\barra invertidaescapar el siguiente
`acento gravecódigo en línea
*asteriscoénfasis o lista
_guion bajoénfasis
{ }llavesatributos (en algunas extensiones)
[ ]corchetesenlaces
( )paréntesisdestino del enlace
#almohadillaencabezado
+signo de sumalista
-guionlista o línea horizontal
.puntolista ordenada
!exclamaciónimagen
|barra verticalcolumna de tabla

CommonMark amplía la lista a toda la puntuación ASCII, así que \@ o \% tampoco dan problemas, aunque no haga falta escaparlos.

⚠️ Escapar un carácter que no está en la lista no hace nada: la barra invertida se muestra tal cual. \a sale como \a, no como a.

La alternativa: código en línea

En muchos casos hay una solución más limpia que escapar carácter por carácter. Si vas a mostrar una secuencia entera de marcado, envuélvela en código en línea y nada de lo que haya dentro se interpretará:

Escapando:      \*\*negrita\*\*
Con código:     `**negrita**`

Escapando: **negrita**

Con código: **negrita**

La diferencia es que el código en línea se muestra en monoespaciado. Si eso encaja con lo que quieres —normalmente sí, porque estás mostrando sintaxis—, es mucho más cómodo. Si necesitas el carácter en texto normal, escapa.

Casos que aparecen a menudo

Nombres de archivo con guiones bajos. mi_archivo_de_datos.csv se convierte en mi archivo de datos.csv con “archivo de” en cursiva. Aunque los guiones bajos no aplican énfasis dentro de una palabra en CommonMark, sí lo hacen en procesadores más antiguos. Lo seguro es usar código en línea: `mi_archivo_de_datos.csv`.

Multiplicaciones y notas al pie. 3 * 4 o Ver nota * necesitan escape.

Rutas de Windows. C:\Users\javi tiene barras invertidas que Markdown intenta interpretar como escapes. Escríbelo como código en línea o dobla las barras: C:\\Users\\javi.

Emoticonos y expresiones. :-) está bien, pero <3 puede confundirse con una etiqueta HTML abierta. Escápalo o usa código.

Almohadilla al principio de línea. Si un párrafo empieza por # —una etiqueta de red social, por ejemplo— se convierte en encabezado. \#hashtag lo resuelve.

Entidades HTML

Existe una tercera vía: usar la entidad HTML del carácter. Markdown la pasa tal cual al resultado y el navegador la interpreta.

CarácterEntidad
<&lt;
>&gt;
&&amp;
``
*&#42;
_&#95;

Es especialmente útil dentro de tablas, donde escapar la barra vertical con \| a veces da problemas según el procesador. Y es la única forma de mostrar < y > literalmente cuando el procesador admite HTML en línea y trataría <div> como una etiqueta real.

Errores frecuentes

Escapar dentro de un bloque de código. Es innecesario y contraproducente: dentro de un bloque de código nada se interpreta, así que la barra invertida se muestra literalmente y ensucia el ejemplo.

Escapar de más “por si acaso”. Enseñar \! o \. donde no hacen falta ensucia el original sin aportar nada. Escapa solo cuando compruebes que hay un problema real.

Olvidar que el escape es por carácter. \**negrita** solo escapa el primer asterisco; el resultado es * seguido de una negrita a medias. Hay que escapar los cuatro: \*\*negrita\*\*.

Compatibilidad

El escape con barra invertida está en el Markdown original y en todas las especificaciones posteriores. Es universal. Lo que varía es qué caracteres se aceptan: el original definía la lista corta de arriba, CommonMark la amplió a toda la puntuación ASCII.

Pruébalo

El escape es un caso donde la vista previa ahorra mucho tiempo de ensayo y error: pega el texto en el previsualizador de Markdown y ajusta hasta que el carácter aparezca como quieres.