Gibt es eine Möglichkeit, in Markdown einen Link zu erstellen, der in einem neuen Fenster geöffnet wird? Wenn nicht, welche Syntax empfehlen Sie dazu? Ich werde es dem von mir verwendeten Markdown-Compiler hinzufügen. Ich denke, es sollte eine Option sein.
461
s
aus demhttps:
ausreicht, um die gewünschte Funktionalität zu erhalten.Antworten:
In Bezug auf die Markdown-Syntax müssen Sie nur HTML verwenden, um diese Details zu erhalten.
Die meisten Markdown-Engines, die ich gesehen habe, erlauben einfaches altes HTML, nur für Situationen wie diese, in denen ein generisches Text-Markup-System es einfach nicht schneidet. (Zum Beispiel die StackOverflow-Engine.) Anschließend wird die gesamte Ausgabe unabhängig davon über einen HTML-Whitelist-Filter ausgeführt, da selbst ein Nur-Markdown-Dokument problemlos XSS-Angriffe enthalten kann. Wenn Sie oder Ihre Benutzer
_blank
Links erstellen möchten , können sie dies wahrscheinlich immer noch.Wenn dies eine Funktion ist, die Sie häufig verwenden werden, ist es möglicherweise sinnvoll, eine eigene Syntax zu erstellen, diese ist jedoch im Allgemeinen keine wichtige Funktion. Wenn ich diesen Link in einem neuen Fenster starten möchte, klicke ich selbst bei gedrückter Strg-Taste darauf, danke.
quelle
_blank
. Es ist eine bessere Benutzererfahrung, Dinge in einem Browser zu behalten. Sie können einfach zurückschlagen oder mit der Befehlstaste klicken (Mac-Benutzer hier :)), wie Sie sagen.[Visit this page](http::/link.com(
um die Idee des Öffnens zu bekommen .Kramdown unterstützt es. Es ist mit der Standard-Markdown-Syntax kompatibel, hat aber auch viele Erweiterungen. Sie würden es so verwenden:
quelle
target="_blank"
Ich glaube nicht, dass es eine Abschriftenfunktion gibt.
Möglicherweise sind jedoch andere Optionen verfügbar, wenn Sie Links, die außerhalb Ihrer eigenen Site verweisen, automatisch mit JavaScript öffnen möchten.
jsFiddle .
Wenn Sie jQuery verwenden, ist es ein bisschen einfacher ...
jsFiddle .
quelle
Jakob Nielsen says you shouldn't do that
ein schreckliches Argument ist.Mit Markdown-2.5.2 können Sie Folgendes verwenden:
quelle
Eine globale Lösung besteht darin, sie
<base target="_blank">
in das<head>
Element Ihrer Seite einzufügen. Dadurch wird jedem Ankerelement effektiv ein Standardziel hinzugefügt. Ich verwende Markdown, um Inhalte auf meiner Wordpress-basierten Website zu erstellen, und mit meinem Theme-Customizer kann ich diesen Code oben auf jeder Seite einfügen. Wenn Ihr Thema das nicht tut, gibt es ein Plug-Inquelle
Ich benutze Grav CMS und das funktioniert perfekt:
Körper / Inhalt:
Some text[1]
Körper / Referenz:
[1]: http://somelink.com/?target=_blank
Stellen Sie einfach sicher, dass das Zielattribut zuerst übergeben wird. Wenn der Link zusätzliche Attribute enthält, kopieren Sie diese und fügen Sie sie am Ende der Referenz-URL ein.
Arbeiten Sie auch als direkter Link:
[Go to this page](http://somelink.com/?target=_blank)
quelle
Verwenden Sie für Ghost Markdown:
Fand es hier: https://cmatskas.com/open-external-links-in-a-new-window-ghost/
quelle
[open new window][1] \n [1]: (https://abc.xyz" target="_blank)
. Vielleicht verwechsle ich etwas, oder das soll nicht so funktionieren?Es ist also nicht ganz richtig, dass Sie einer Markdown-URL keine Linkattribute hinzufügen können. Überprüfen Sie zum Hinzufügen von Attributen den verwendeten zugrunde liegenden Markdown-Parser und dessen Erweiterungen.
Insbesondere
pandoc
muss eine Erweiterung aktiviert werdenlink_attributes
, die ein Markup im Link ermöglicht. z.Brmarkdown
,bookdown
,blogdown
und so weiter), das ist die Syntax , die Sie wollen.pandoc
mit+link_attributes
Hinweis: Dies unterscheidet sich von der
kramdown
Unterstützung des Parsers, die eine der oben akzeptierten Antworten ist. Beachten Sie insbesondere, dass sich kramdown von pandoc unterscheidet, da ein Doppelpunkt erforderlich ist -:
- am Anfang der geschweiften Klammern -{}
zBestimmtes:
quelle
Sie können dies über nativen Javascript-Code wie folgt tun:
JSFiddle-Code
quelle
In meinem Projekt mache ich das und es funktioniert gut:
Verknüpfung
Aber nicht alle Parser lassen Sie das tun.
quelle
<a href="https://example.org/" rel="nofollow" title="title" target="_blank">Link</a>
Es gibt keine einfache Möglichkeit, dies zu tun, und wie @alex bemerkt hat, müssen Sie JavaScript verwenden. Seine Antwort ist die beste Lösung, aber um sie zu optimieren, möchten Sie möglicherweise nur nach den Links nach dem Inhalt filtern.
Der Code ist mit IE8 + kompatibel und kann am Ende Ihrer Seite hinzugefügt werden. Beachten Sie, dass Sie den ".post-content a" in die Klasse ändern müssen, die Sie für Ihre Posts verwenden.
Wie hier zu sehen: http://blog.hubii.com/target-_blank-for-links-on-ghost/
quelle
Ich bin auf dieses Problem gestoßen, als ich versucht habe, Markdown mit PHP zu implementieren.
Da die vom Benutzer generierten Links, die mit Markdown erstellt wurden, in einem neuen Tab geöffnet werden müssen, Site-Links jedoch in einem Tab bleiben müssen, habe ich Markdown geändert, um nur Links zu generieren, die in einem neuen Tab geöffnet werden. Es werden also nicht alle Links auf der Seite verlinkt, sondern nur diejenigen, die Markdown verwenden.
In Markdown habe ich die gesamte Linkausgabe so geändert, dass sie
<a target='_blank' href="...">
mit find / replace einfach genug war.quelle
Ich bin nicht der Meinung, dass es eine bessere Benutzererfahrung ist, in einem Browser-Tab zu bleiben. Wenn Sie möchten, dass Personen auf Ihrer Website bleiben oder zum Lesen dieses Artikels zurückkehren, senden Sie sie in einem neuen Tab ab.
Aufbauend auf der Antwort von @ davidmorrow werfen Sie dieses Javascript in Ihre Site und verwandeln Sie nur externe Links in Links mit target = _blank:
quelle
Sie können beliebige Attribute mit {[attr] = "[prop]"} hinzufügen
Zum Beispiel [Google] ( http://www.google.com ) {target = "_ blank"}
quelle
Für abgeschlossene Alex beantwortet (13. Dezember 10)
Mit diesem Code könnte ein intelligenteres Injektionsziel erreicht werden:
Sie können die Regexp-Ausnahmen ändern, indem Sie dem Gruppenkonstrukt eine weitere Erweiterung hinzufügen
(?!html?|php3?|aspx?)
(verstehen Sie diesen Regexp hier: https://regex101.com/r/sE6gT9/3 ).und für eine Version ohne jQuery überprüfen Sie den folgenden Code:
quelle
Automatisiert nur für externe Links mit GNU sed & make
Wenn man dies systematisch für alle externen Links tun möchte, ist CSS keine Option . Man könnte jedoch den folgenden
sed
Befehl ausführen, sobald der (X) HTML-Code aus Markdown erstellt wurde:Dies kann weiter automatisiert werden, indem der obige
sed
Befehl zu a hinzugefügt wirdmakefile
. Weitere Einzelheiten finden Sie GNUmake
oder sehen , wie ich das getan habe auf meiner Website .quelle
Das funktioniert bei mir: [Page Link] (Ihre URL hier "(target | _blank)")
quelle