コンテンツにスキップ

外部リンクを新しいタブで開く

外部リンクを新しいタブで開く

Section titled “外部リンクを新しいタブで開く”

Astroではリンクをクリックしたときに同じタブで開く設定になっているが、rehype-external-links拡張機能を使うことで、新しいタブで開くように設定できる。

HTMLでリンクを設定する際に、<a>コンポーネントのtarget属性の値によって、リンクを開く方法を指定できる。

<a href="https://example.com" target="_self">リンクテキスト</a>

Markdownでは、通常のリンクの書き方である

[リンクテキスト](https://example.com)

において、target属性を指定できないが、rehype-external-links拡張機能を使ってtarget属性の制御を行う。

  1. 拡張機能をインストールする
    Terminal window
    npm install rehype-external-links
  2. astro.config.mjsに設定を追加する
    astro.config.mjs
    import rehypeExternalLinks from 'rehype-external-links';
    export default {
    markdown: {
    rehypePlugins: [
    [
    rehypeExternalLinks,
    {
    target: '_blank',
    rel: ['noopener', 'noreferrer'],
    content: { type: 'text', value: ' 🔗' }, // お好みで
    }
    ]
    ]
    }
    };
  1. 今まで通りリンクをMarkdownで書く
    [リンクテキスト](https://example.com)

以上で、外部リンクを新しいタブで開けるようになった。