¿Puedo crear enlaces con 'target="_blank"' en Markdown?

Resuelto ma11hew28 asked hace 13 años • 24 respuestas

¿Hay alguna manera de crear un enlace en Markdown que se abra en una nueva ventana? Si no, ¿qué sintaxis recomiendas para hacer esto? Lo agregaré al compilador de rebajas que uso. Creo que debería ser una opción.

ma11hew28 avatar Dec 13 '10 08:12 ma11hew28
Aceptado

En lo que respecta a la sintaxis de Markdown, si desea obtener más detalles, solo tendrá que usar HTML.

<a href="http://example.com/" target="_blank">Hello, world!</a>

La mayoría de los motores de Markdown que he visto permiten HTML antiguo y simple, solo para situaciones como esta donde un sistema de marcado de texto genérico simplemente no es suficiente. (El motor StackOverflow, por ejemplo). Luego ejecutan toda la salida a través de un filtro de lista blanca HTML, independientemente, ya que incluso un documento exclusivo de Markdown puede contener fácilmente ataques XSS. Como tal, si usted o sus usuarios desean crear _blankenlaces, probablemente aún puedan hacerlo.

Si esa es una característica que vas a utilizar con frecuencia, podría tener sentido crear tu propia sintaxis, pero generalmente no es una característica vital. Si quiero abrir ese enlace en una nueva ventana, haré clic y presionaré Ctrl, gracias.

Matchu avatar Dec 13 '2010 01:12 Matchu

Kramdown lo apoya. Es compatible con la sintaxis estándar de Markdown, pero también tiene muchas extensiones. Lo usarías así:

[link](url){:target="_blank"}
farnoy avatar Jan 16 '2011 13:01 farnoy

No creo que haya una función de rebajas, aunque puede haber otras opciones disponibles si desea abrir enlaces que apunten fuera de su propio sitio automáticamente con JavaScript.

Array.from(document.links)
    .filter(link => link.hostname != window.location.hostname)
    .forEach(link => link.target = '_blank');

jsFiddle .

Si estás usando jQuery:

$(document.links).filter(function() {
    return this.hostname != window.location.hostname;
}).attr('target', '_blank');

jsFiddle .

alex avatar Dec 13 '2010 01:12 alex