軽量マークアップ言語であるreStructuredText (reST)でハイパーリンクを記述する際に、常に新規ウィンドウでリンクを開くようにする方法について、調べてみました。

1.   前提知識

1.1.   HTMLで直接書く場合

HTMLで新しいウィンドウで開くリンクを書く場合は、下記のようにtarget属性に「_blank」を指定します[1][2][3][4][5][6]

1
Googleはこちら→ <a href="https://www.google.com" target="_blank">Google</a>

1.2.   reStructuredTextで通常のリンクを書く方法

新規ウィンドウで開くことを指定しない、通常のリンクをreStructuredTextで記述するには、下記の方法があります[7]

1.2.1.   シンプルに直接URLを記述する[8]

1
Googleはこちら→ https://www.google.com

1.2.2.   インラインで記述する[9]

1
Googleはこちら→ `Google <https://www.google.com>`_

1.2.3.   リンク先を別途定義して記述する[10]

1
2
3
Googleはこちら→ GOOGLE_

.. _GOOGLE: https://www.google.com

2.   結論

reStructuredTextで新規ウィンドウで開くリンクをダイレクトに記述する記法は提供されていませんでした[11]

ただし、下記のように置換定義rawディレクティブを組み合わせて書くことで実現出来ます[12]

1
2
3
4
5
Googleはこちら→ |GOOGLE|.

.. |GOOGLE| raw:: html

  <a href="https://www.google.com" target="_blank">Google</a>

3.   余談

スマートフォンでWEB閲覧するユーザーが増えてきた現状では、わざわざ新しいウィンドウでリンクを開くように指定するのはナンセンスである、という意見もあります[13]

でも最近、これはもうリンク先がどこであろうと指定しない方がいいんじゃないか、と思ってます。

もちろんサイトによってそれぞれ使いわけはあると思うんだけど、少なくともほとんどの手元のサイトの場合はいらない。

—「頭ん中」(HTML の a 要素に target="_blank" をつけるのはもうやめよう)