読者です 読者をやめる 読者になる 読者になる

PHP Markdown Extra テキトー訳 (5)

Footnotes

Footnoteはほぼ参照スタイルのリンクと言っていいだろう。Footnoteは2つの要素から構成される:脚注番号となるテキストマーカーと、文末に付加される定義文だ。つまりこんな感じ:

That's some text with a footnote.[^1]

[^1]: And that's the footnote.

 Footnoteの定義文はドキュメントのどこにあっても見つけ出されるが、Footnoteは必ずテキストに出現した順に文末に並べられる。同じFootnoteには2つ以上のリンクを結びつける事はできない。試しにやってみな。2番目以降のリンクは左にプレインテキストで表示されるから。

 

各Footnoteはそれぞれ固有の名前を持っていなくてはならない。その名前がFootnote定義文へのリンクアンカー名として利用される。だがしかし、そのFootnoteのナンバリングは意味を持たない。Footnoteに使われる名前はどんな文字(数字でなく記号でも)でもHTMLのidアトリビュートとして含める事ができる。

 

Footnoteもブロックレベルの要素を含む事ができる。つまり複数段落でもリストでもblockquoteやらなんやらまとめてFootnoteとできるのだ。これは、リストアイテムと同様の振る舞いをする。そうしたければ、定義文のなかで続く段落を4つのスペースでインデントするだけだ:

That's some text with a footnote.[^]

[^1]: And that's the footnote definition.

    That's the second paragraph.

もし、もっときれいにアラインしたいのなら、1行目を空改行にして、最初の段落を次のように書く:

[^1]:
    And That's the footnote.

    That's the second paragraph.

 

OUTPUT

おそらくFootnoteマークアップだけでは、万人の要求は満たせない事だろう。今後のバージョンではこの他にもマークアップを使えるようなプログラミングインターフェースを提供する予定だ。しかし今は、PHP Markdown Extra のDarring Fireballが定義している仕様に従っている。それによると上記のサンプルをHTMLに展開すると次のようになる:

<p>That's some text with a footnote.
    <sup id="fnref-1"><a href="#fn-1" class="footnote-ref">1</a></sup></p>

<div class="footnotes"> <hr />
<ol>

<li id="fn-1">
<p>And that's the footnote.    <a href="#fnref-1" class="footnote-backref">↩</a></p> </li> </ol>
</div>

 まぁ、若干暗号っぽいが。。。ブラウザではこう見えるはずだ。

That’s some text with a footnote.1


  1. And that’s the footnote.

 リンク内のclass="footnote-ref"class="footnote-backref"アトリビュートはそれらが持っているリンクの関係性を表現している。これらはCSSで次のように表現することもできる。

a.footnote-ref {...}
a.footnote-backref {...}

 Footnoteリンクとbackリンクのclassおよびtitleアトリビュートはカスタマイズする事ができる。詳しくはコンフィギュレーション を見てくれ。

 今日はここまで。。。