MovableType で脚注を使う

 LDR(livedoor Reader) で購読しているブログのうち、少なくないいくつかははてダ(はてなダイアリー)を利用しているブログなのですが、はてなダイアリーで良いなあと思っていたのが脚注機能です。ボクもはてなダイアリーは使ったことがあるのですが、脚注を駆使してまでの文章を書いたことはありませんでした。ただ、この機能が MT(MovableType) にもあれば利用したいなあという思いが募ってきたので、相変わらず重い腰をなんとか上げて調べてみました。そこで見付けたのが Footnote Plugin です(他にもエントリーのフォーマットで実現出来る HikiDoc プラグインも試してみたのですが、もう何年も MarkDown フォーマットで書いてきたので今更エントリーのフォーマットを変更するのも躊躇しました)
 導入の仕方は難しくありません。Footnote Plugin の説明通りにやれば簡単に導入できます。ボクも説明に従って、脚注の表示部分のテンプレートだけちょっと書き換えたくらいです。extlib/bradchoate ディレクトリを作ったのは久しぶりだったので一瞬ノスタルジックな気分にさえなりました(昔は大変お世話になったものです。)
 内容がかぶるのですが、簡単に導入方法を書いておきます。

1 プラグインをインストール

 Footnote PluginMTMacro をそれぞれダウンロードし、下記のディレクトリにコピーします。

1.1 footnote

(MT)/plugins/footnote.pl

1.2 macro

(MT)/plugins/macros.pl
(MT)/extlib/bradchoate/macros.pm
(MT)/extlib/bradchoate/postproc.pm

 (MT)/extlib/bradchoate/ というディレクトリは初期状態では存在しないので作ります。
 これでプラグインのインストールは完了です。

2 テンプレートを追加・編集

 脚注の定義と表示、適用を行います。

2.1 脚注定義

 脚注を使うためのタグの定義、脚注へのリンクフォーマットを定義します。『2.2 適用』よりも先に記述する必要があります。テンプレートモジュールにして、<body> の直後に読み込むようにしました。

<MTMacroDefine ctag="fn">
  <MTFootnote value="[MTMacroContent]" reset="[MTMacroAttr name='reset']">
    <MTFootnoteSet>
      <sup>
        <a href="#fn-<$MTEntryID$>-<$MTFootnoteTotalCount$>" id="efn-<$MTEntryID$>-<$MTFootnoteTotalCount$>" title="<$MTFootnoteString remove_html='1'$>">*<$MTFootnoteCount$></a>
      </sup>
    </MTFootnoteSet>
    <MTFootnoteGet>
      <MTIfFootnoteExist>
        <ul class="fnbody">
          <MTFootnotes>
            <li>
              <MTFootnoteNumbers glue=" ">
                <a href="#efn-<$MTEntryID$>-<$MTFootnoteTotalNumber$>" id="fn-<$MTEntryID$>-<$MTFootnoteTotalNumber$>">*<$MTFootnoteNumber$></a>
              </MTFootnoteNumbers>
              : <MTFootnoteString>
            </li>
          </MTFootnotes>
        </ul>
      </MTIfFootnoteExist>
    </MTFootnoteGet>
  </MTFootnote>
</MTMacroDefine>

2.2 適用

 Footnote Plugin を適用する箇所を指定します。<$mt:EntryBody$><$mt:EntryMore$> に適用するので、それぞれ <$mt:EntryBody apply_macros="1"$> <$mt:EntryMore apply_macros="1"$> と変更します。

2.3 脚注表示

 実際の脚注が表示される部分です。こちらもテンプレートモジュールにして、<$mt:EntryBody apply_macros="1"$> <$mt:EntryMore apply_macros="1"$> のあとに表示されるように読み込みました。

<MTIfFootnoteExist>
  <ul class="fnbody">
    <MTFootnotes>
      <li>
        <MTFootnoteNumbers glue=" ">
          <a href="#efn-<$MTEntryID$>-<$MTFootnoteTotalNumber$>" id="fn-<$MTEntryID$>-<$MTFootnoteTotalNumber$>">*<$MTFootnoteNumber$></a>
        </MTFootnoteNumbers>
        : <MTFootnoteString>
      </li>
    </MTFootnotes>
  </ul>
</MTIfFootnoteExist>

3 使用例

 上記の定義だと、エントリー本文の <fn> ~ </fn> に挟まれた部分が自動的に脚注になります。本文から脚注へのリンク、逆に脚注から本文中の該当箇所へのリンクも自動的に表示されます。他にも、エントリーの途中でそれまでの脚注を表示できたり、<fn>( ~ )</fn> と書くと『(』と『)』が無視されたり(逆に footnote を適用していない部分では『LDR(livedoor Reader)』と表示されるので文章がおかしくなりません)と、ホントに至れり尽くせりです。

 なお、導入方法は Footnote Plugin のページを参考にしました(ほとんどコピペですいません。)

comments powered by Disqus