ハイパーリンク
- 公開日: 2019/10/27
- 更新日: 2019/10/27
画像にハイパーリンクを設定する場合は、ブロック画像、インライン画像を参照下さい。
ハイパーリンクアンカー
ある単語にハイパーリンクターゲットを設定するのは非常に簡単で、その単語の末尾にアンダーハイフンを入れるだけです。空白を含むフレーズに対してリンクターゲットを設定したい場合は、フレーズをバッククォート ` で囲った上、末尾にアンダーハイフンをいれます。括弧、句読点などは空白と同様単語区切りになりうるため、これらの文字を含む単語やフレーズ(以下、アンカーテキストと総称)にリンクターゲットを設定する場合もバッククォートで囲む必要があります。なお、アンカーテキストはアルファベットの大文字と小文字を区別しません。 abcde_ と ABCDE_ 、さらには aBcDe_ は同じアンカーテキストとして評価されます。
日本語のように空白を単語区切りとして使用しない言語をしている場合など、アンカーテキストの前後に空白をはさみたくないという状況はしばしばあるかと思います。そのような場合はリンクテキストを「バックスラッシュ[1]+空白」で書こうと良いでしょう。「バックスラッシュ+空白」はreStructuredText上では空白と同様単語区切り文字として機能しますが、docutilsでHTMLに変換する際は無視されます。
ターゲット先URLの指定
リンクターゲット先のURLは、別の場所(前でも後でも構いません)に以下のフォーマットで指定します。
アンカーテキスト_ です。こっちは `アンカーテキスト(その2)`_ です。 .. _アンカーテキスト: URL1 .. _`アンカーテキスト(その2)`: URL2
同一とみなされるアンカーテキストが文書内に複数ある場合、それらは同じものとして扱われます。つまり、
abcde_ ABCDE_ abcde_ AbCdE_ .. _abcde: URL3
という文書の場合、文書中の全てのアンカーテキストはURL3へのハイパーリンクとなります。
別の記述方法
アンカーテキストとターゲット先URLを一緒に記述することもできます。具体的には
`アンカーテキスト <URL>`_
という形で記述します(リンクテキストと<の間には空白を挟む必要があることに注意)。この記述方法においても、以下のように同じアンカーテキストが複数ある場合は同じものとして扱われます。同じアンカーテキストで別のリンク先にリンクしたい場合は、アンダーハイフンを2つにします。
`abcde <URL4>`_ と ABCDE_ はどちらも同じリンク先URL4を指します。 `abcde <URL5>`__ と `abcde <URL6>`__ は別のリンク先になります。
また、文書中にプロトコル(http://とか)を含むURLをそのまま記述すると、docutilsでHTMLに変換するさいに自動的にハイパーリンクが設定されます。
文書内へのリンク(id属性)
見出しを設定すると、その見出し[2]にはid属性が設定されます。id属性の値は、ある程度以上の文字数の欧文のフレーズであれば見出しの内容そのもの(大文字は小文字に、空白はハイフンにそれぞれ置き換えられます)となりますが、一文字だったり英数が混ざっていなかったりするとid1という連番のidになります。同じ名前(大文字と小文字の違いのみの場合は同一扱い)の見出しが複数ある場合は、2番目以降に登場した見出しのid属性もid1という連番となります。
厳密にいえば、その見出しから次の同一レベル又は上位レベルの見出しの直前までをくくったDIV要素
連番のidは見出しを追加したり、変更したりすると変わる可能性があります。文書によっては非常に不便なので、見出しとは違うid属性を設定したいという場合もあるかと思います。そのような場合は、文字列の置換(replace)を行うとよいでしょう。
|unique hedding name| ===================== 段落 .. |unique hedding name| replace:: 見出しだよ
これをdocutilsでHTMLに変換するとこうなります。
<div class="section" id="unique-hedding-name"> <h2>見出しだよ</h2> <p>段落</p> </div> </div>
段落中の任意のテキストにid属性をつけたい時はテキストをバッククォートで囲った上、前にアンダースコアを入れます(_`text`)。もちろん日本語などではid属性は連番になってしまいます。見出し以外の任意のテキストに連番じゃないid属性を入れる方法はよくわかりませんでした。
メールアドレス
URLの代わりにメールアドレスを指定すると、mailto属性のハイパーリンクになります。