Existe-t-il un moyen de créer un lien dans Markdown qui s'ouvre dans une nouvelle fenêtre? Sinon, quelle syntaxe recommandez-vous pour ce faire. Je vais l'ajouter au compilateur de Markdown que j'utilise. Je pense que cela devrait être une option.
462
s
dehttps:
pour obtenir les fonctionnalités que je veux.Réponses:
En ce qui concerne la syntaxe Markdown, si vous voulez obtenir des informations détaillées, vous n'aurez qu'à utiliser HTML.
La plupart des moteurs Markdown que j'ai vus autorisent le HTML ancien, juste pour des situations comme celle-ci où un système de balisage de texte générique ne le coupera pas. (Le moteur StackOverflow, par exemple.) Ils exécutent ensuite l'intégralité de la sortie via un filtre de liste blanche HTML, car même un document uniquement Markdown peut facilement contenir des attaques XSS. En tant que tel, si vous ou vos utilisateurs souhaitez créer des
_blank
liens, ils le peuvent probablement.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 fonctionnalité vitale. Si je veux lancer ce lien dans une nouvelle fenêtre, je vais le cliquer-ctrl moi-même, merci.
la source
_blank
du tout. C'est une meilleure expérience utilisateur pour garder les choses dans un seul navigateur. Ils peuvent simplement riposter ou cliquer sur la commande (utilisateur Mac ici :)), comme vous le dites.[Visit this page](http::/link.com(
pour avoir l'idée d' ouverture .Kramdown le soutient. Il est compatible avec la syntaxe Markdown standard, mais possède également de nombreuses extensions. Vous l'utiliseriez comme ceci:
la source
target="_blank"
Je ne pense pas qu'il existe une fonction de démarque.
Bien qu'il puisse y avoir d'autres options disponibles si vous souhaitez ouvrir automatiquement des liens qui pointent en dehors de votre propre site avec JavaScript.
jsFiddle .
Si vous utilisez jQuery, c'est un peu plus simple ...
jsFiddle .
la source
Jakob Nielsen says you shouldn't do that
est un terrible argument.Avec Markdown-2.5.2, vous pouvez utiliser ceci:
la source
Une solution globale consiste à mettre
<base target="_blank">
dans l'<head>
élément de votre page . Cela ajoute effectivement une cible par défaut à chaque élément d'ancrage. J'utilise le démarquage pour créer du contenu sur mon site Web basé sur Wordpress, et mon personnalisateur de thème me permettra d'injecter ce code dans le haut de chaque page. Si votre thème ne fait pas ça, il y a un plug-inla source
J'utilise Grav CMS et cela fonctionne parfaitement:
Corps / contenu:
Some text[1]
Corps / référence:
[1]: http://somelink.com/?target=_blank
Assurez-vous simplement que l'attribut cible est passé en premier, s'il y a des attributs supplémentaires dans le lien, copiez / collez-les à la fin de l'URL de référence.
Fonctionne également comme lien direct:
[Go to this page](http://somelink.com/?target=_blank)
la source
Pour l'utilisation de démarque fantôme:
Je l'ai trouvé ici: https://cmatskas.com/open-external-links-in-a-new-window-ghost/
la source
[open new window][1] \n [1]: (https://abc.xyz" target="_blank)
. peut-être que je me trompe quelque chose, ou ce n'est pas ment pour fonctionner de cette façon?Il n'est donc pas tout à fait vrai que vous ne pouvez pas ajouter d'attributs de lien à une URL Markdown. Pour ajouter des attributs, vérifiez avec l'analyseur de démarque sous-jacent utilisé et quelles sont leurs extensions.
En particulier,
pandoc
a une extension à activerlink_attributes
, qui permet le balisage dans le lien. par exemplermarkdown
,bookdown
,blogdown
etc.), c'est la syntaxe que vous voulez.pandoc
avec+link_attributes
Remarque: Ceci est différent
kramdown
du support de l' analyseur, qui est l'une des réponses acceptées ci-dessus. En particulier, notez que kramdown diffère de pandoc car il nécessite deux points -:
- au début des accolades -{}
, par exempleEn particulier:
la source
Vous pouvez le faire via un code javascript natif comme ceci:
Code JSFiddle
la source
Dans mon projet, je fais cela et cela fonctionne très bien:
Lien
Mais tous les analyseurs ne vous permettent pas de le faire.
la source
<a href="https://example.org/" rel="nofollow" title="title" target="_blank">Link</a>
Il n'y a pas de moyen facile de le faire, et comme @alex l'a noté, vous devrez utiliser JavaScript. Sa réponse est la meilleure solution mais afin de l'optimiser, vous voudrez peut-être filtrer uniquement sur les liens post-contenu.
Le code est compatible avec IE8 + et vous pouvez l'ajouter en bas de votre page. Notez que vous devrez remplacer le ".post-content a" par la classe que vous utilisez pour vos publications.
Comme vu ici: http://blog.hubii.com/target-_blank-for-links-on-ghost/
la source
J'ai rencontré ce problème lors de la tentative d'implémentation du démarquage à l'aide de PHP.
Étant donné que les liens générés par l'utilisateur créés avec markdown doivent s'ouvrir dans un nouvel onglet, mais les liens de site doivent rester dans l'onglet, j'ai modifié markdown pour ne générer que des liens qui s'ouvrent dans un nouvel onglet. Donc, tous les liens de la page ne sont pas liés, juste ceux qui utilisent le démarque.
Dans le démarquage, j'ai changé toute la sortie du lien pour être
<a target='_blank' href="...">
ce qui était assez facile en utilisant find / replace.la source
Je ne suis pas d'accord pour dire que c'est une meilleure expérience utilisateur de rester dans un onglet de navigateur. Si vous souhaitez que les internautes restent sur votre site ou reviennent pour terminer la lecture de cet article, envoyez-les dans un nouvel onglet.
En s'appuyant sur la réponse de @ davidmorrow, jetez ce javascript dans votre site et transformez simplement les liens externes en liens avec target = _blank:
la source
Vous pouvez ajouter des attributs à l'aide de {[attr] = "[prop]"}
Par exemple [Google] ( http://www.google.com ) {target = "_ blank"}
la source
Pour réponse alex complétée (13 décembre 10)
Une cible d'injection plus intelligente pourrait être effectuée avec ce code:
Vous pouvez modifier les exceptions d'expression régulière en ajoutant plus d'extension dans la
(?!html?|php3?|aspx?)
construction de groupe (comprenez cette expression régulière ici: https://regex101.com/r/sE6gT9/3 ).et pour une version sans jQuery, vérifiez le code ci-dessous:
la source
Automatisé pour les liens externes uniquement, en utilisant GNU sed & make
Si l'on souhaite le faire systématiquement pour tous les liens externes, CSS n'est pas une option . Cependant, on pourrait exécuter la
sed
commande suivante une fois le (X) HTML créé à partir de Markdown:Cela peut être encore automatisé en ajoutant la
sed
commande ci-dessus à amakefile
. Pour plus de détails, consultez GNUmake
ou voyez comment je l'ai fait sur mon site Web .la source
Cela fonctionne pour moi: [Page Link] (votre URL ici "(target | _blank)")
la source