html github gatsby - Can I create links with 'target=“_blank”' in Markdown?

8 Answers

Kramdown supports it. It's compatible with standard Markdown syntax, but has many extensions, too. You would use it like this:

hugo ghost mkdocs

Is there a way to create a link in Markdown that opens in a new window? If not, what syntax do you recommend to do this. I'll add it to the markdown compiler I use. I think it should be an option.

With Markdown-2.5.2, you can use this:


There's no easy way to do it, and like @alex has noted you'll need to use JavaScript. His answer is the best solution but in order to optimize it, you might want to filter only to the post-content links.

    var links = document.querySelectorAll( '.post-content a' );  
    for (var i = 0, length = links.length; i < length; i++) {  
        if (links[i].hostname != window.location.hostname) {
            links[i].target = '_blank';

The code is compatible with IE8+ and you can add it to the bottom of your page. Note that you'll need to change the ".post-content a" to the class that you're using for your posts.

As seen here:

I'm using Grav CMS and this works perfectly:

Some text[1]


Just make sure that the target attribute is passed first, if there are additional attributes in the link, copy/paste them to the end of the reference URL.

Also work as direct link:
[Go to this page](

I ran into this problem when trying to implement markdown using PHP.

Since the user generated links created with markdown need to open in a new tab but site links need to stay in tab I changed markdown to only generate links that open in a new tab. So not all links on the page link out, just the ones that use markdown.

In markdown I changed all the link output to be <a target='_blank' href="..."> which was easy enough using find/replace.

You can add any attributes using {[attr]="[prop]"}

For example [Google] ({target="_blank"}

Automated for external links only, using GNU sed & make

If one would like to do this systematically for all external links, CSS is no option. However, one could run the following sed command once the (X)HTML has been created from Markdown:

sed -i 's|href="http|target="_blank" href="http|g' index.html

This can be further automated by adding above sed command to a makefile. For details, see GNU make or see how I have done that on my website.