408 votes

markdown target = "_ blank"

Est-il possible de créer un lien dans la liste déroulante qui s'ouvre dans une nouvelle fenêtre? Si non, quelle syntaxe recommandez-vous pour cela? Je vais l'ajouter au compilateur markdown que j'utilise. Je pense que ça devrait être une option.

326voto

Matchu Points 37755

Aussi loin que la syntaxe Markdown est concerné, si vous voulez obtenir détaillée, vous aurez juste à utiliser le langage HTML.

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

La plupart des Démarques des moteurs que j'ai vu de permettre le bon vieux HTML, juste pour ce genre de situations où un générique de balisage de texte du système, ne suffit pas. (StackOverflow moteur, par exemple.) Ils ont ensuite exécuté l'ensemble de sortie via un code HTML filtre de liste blanche, peu importe, car même avec un Abattement document peut facilement contenir les attaques XSS. En tant que tel, si vous ou vos utilisateurs veulent créer _blank liens, puis ils ont probablement encore.

Si c'est une fonctionnalité que vous allez utiliser souvent, il peut être judicieux de créer votre propre syntaxe, mais ce n'est généralement pas une caractéristique essentielle. Si je veux lancer le lien dans une nouvelle fenêtre, je vais ctrl-cliquez sur moi-même, merci.

318voto

farnoy Points 1410

Kramdown le soutient. Il est compatible avec la syntaxe Markdown standard, mais possède également de nombreuses extensions. Vous l'utiliseriez comme ceci:

 [link](url){:target="_blank"}
 

108voto

alex Points 186293

Je ne pense pas qu'il existe une fonctionnalité de démarquage.

Bien qu'il puisse y avoir d'autres options disponibles si vous souhaitez ouvrir des liens qui pointent en dehors de votre propre site automatiquement avec JavaScript.

 var links = document.links;

for (var i = 0, linksLength = links.length; i < linksLength; i++) {
   if (links[i].hostname != window.location.hostname) {
       links[i].target = '_blank';
   } 
}
 

jsFiddle .

Si vous utilisez jQuery, c'est un peu plus simple ...

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

jsFiddle .

6voto

MrPenguin Pablo Points 11

Vous pouvez le faire via du code javascript natif comme ceci:

 
var pattern = /a href=/g;
var sanitizedMarkDownText = rawMarkDownText.replace(pattern,"a target='_blank' href=");
 

JSFiddle Code

0voto

David Morrow Points 1162

Si vous utilisez Jquery, vous pouvez facilement le réparer

 $('a').attr('target','_blank');
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X