786 Stimmen

Kann ich in Markdown Links mit 'target="_blank"' erstellen?

Gibt es eine Möglichkeit, in Markdown einen Link zu erstellen, der sich in einem neuen Fenster öffnet? Wenn nicht, welche Syntax empfehlen Sie dafür? Ich werde es in den von mir verwendeten Markdown-Compiler einbauen. Ich denke, es sollte eine Option sein.

585voto

Matchu Punkte 80505

Was die Markdown-Syntax betrifft, so müssen Sie, wenn Sie so detailliert werden wollen, einfach HTML verwenden.

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

Die meisten Markdown-Engines, die ich kenne, erlauben einfaches HTML für Situationen wie diese, in denen ein allgemeines Textauszeichnungssystem einfach nicht ausreicht. (Die StackOverflow-Engine, zum Beispiel.) Sie lassen dann die gesamte Ausgabe durch einen HTML-Whitelist-Filter laufen, da selbst ein reines Markdown-Dokument leicht XSS-Angriffe enthalten kann. Wenn Sie oder Ihre Benutzer also eine _blank Links, dann können sie das wahrscheinlich immer noch.

Wenn Sie diese Funktion häufig verwenden werden, kann es sinnvoll sein, eine eigene Syntax zu erstellen, aber im Allgemeinen ist es keine wichtige Funktion. Wenn ich den Link in einem neuen Fenster öffnen möchte, klicke ich ihn selbst mit der Strg-Taste an, danke.

520voto

farnoy Punkte 6868

Kramdown unterstützt sie. Es ist mit der Standard-Syntax von Markdown kompatibel, hat aber auch viele Erweiterungen. Sie können es wie folgt verwenden:

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

135voto

alex Punkte 457905

Ich glaube nicht, dass es eine Markdown-Funktion gibt, obwohl es möglicherweise andere Optionen gibt, wenn Sie Links, die außerhalb Ihrer eigenen Website verweisen, automatisch mit JavaScript öffnen möchten.

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

jsFiddle .

Wenn Sie jQuery verwenden:

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

jsFiddle .

95voto

meduvigo Punkte 1347

Mit Markdown v2.5.2 können Sie dies nutzen:

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

29voto

coatless Punkte 18713

Es stimmt also nicht ganz, dass man einer Markdown-URL keine Link-Attribute hinzufügen kann. Um Attribute hinzuzufügen, müssen Sie den verwendeten Markdown-Parser und seine Erweiterungen überprüfen.

Im Besonderen, pandoc hat eine Erweiterung, die es ermöglicht link_attributes , die Markierungen im Link erlauben. z.B.

[Hello, world!](http://example.com/){target="_blank"}
  • Für diejenigen, die von R (z.B. mit rmarkdown , bookdown , blogdown und so weiter), ist dies die Syntax, die Sie brauchen.
  • Für diejenigen, die nicht R müssen Sie möglicherweise aktivieren Sie die Erweiterung beim Aufruf von pandoc con +link_attributes

Note : Dies ist anders als die kramdown Unterstützung des Parsers, was eine der oben akzeptierten Antworten ist. Beachten Sie insbesondere, dass kramdown sich von pandoc unterscheidet, da es einen Doppelpunkt benötigt -- : -- am Anfang der geschweiften Klammern -- {} z.B.

[link](http://example.com){:hreflang="de"}

Im Besonderen:

# Pandoc
{ attribute1="value1" attribute2="value2"}

# Kramdown
{: attribute1="value1" attribute2="value2"}
 ^
 ^ Colon

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X