はじめに

はてなダイアリーなどでは標準の機能として備わっている「脚注」。Movable Typeで実現を可能にするのが「Footnote」プラグインです(「MTMacro」プラグインの導入が前提)。Movable Type 4.21でも動きました。導入・使用方法をメモします。

プラグインの入手・導入

1)まずは「MTMacro」プラグインをダウンロード、以下のページからダウンロードできます。
bradchoate.com: MTMacro

2)「MTMacro」プラグインをインストール、このページを参考にするといいでしょう。
Six Apart - Movable Type プラグインディレクトリ: MTMacro

3)「Footnote」プラグインをダウンロード
Footnote Plugin - six olq

4)「Footnote」プラグインをインストール
いつもどおりにfootnote.plをpluginsディレクトリにアップロードします

MTMacroとは

マクロって言葉をご存知でしょうか。WordやExcelを使う方ならおなじみかもしれません。通常マクロとは特定の操作手順をプログラムとして記述して自動化する機能として説明されます。MTMacroとはそれのMovable Type版です。ちょっと古いですがこのページで活用例が紹介されています

Footnoteとは

Footnoteとは「脚注」の意味です *1 。tDiaryやはてなダイアリーではお馴染みの脚注機能を実現してくれるのがFootnoteプラグインです。MTMacroプラグインが導入済みであることが前提条件です。

*1 : こんな感じの機能です

MTMacroとFootnoteの使い方の流れ

■定義部
まずはテンプレート内でマクロの内容を定義します。定義する<MTMacroDefine>タグはsixapart社のプラグインディレクトリの説明では<body>タグの直後に置くことが勧められています。

■適用部
定義したマクロの内容を有効にしたい場所を指定します。配布元によると2通りの方法が挙げられています
a)適用したい部分のMTタグにモディファイア「apply_macros」を追加

<MTEntryBody apply_macros="1">
b)適用したい部分をMTタグ「MTMacroApply」で囲む

<MTMacroApply>
<MTEntryBody>
</MTMacroApply>

■表示部
テンプレート上で、脚注の内容を表示したい部分に記述を追加します。

定義・適用・表示は、各テンプレートに記述を追加することによって、そのテンプレート内だけで機能します。

実際に追加した記述

Footnoteの配布元ページで記述例が丁寧に挙げられているので、今回は自分が追加した記述をここに残します。

1)マクロを定義

<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>
<div class="fnbody"><p>
<MTFootnotes>
<MTFootnoteNumbers glue=" ">
<a href="#efn-<$MTEntryID$>-<$MTFootnoteTotalNumber$>"
   id="fn-<$MTEntryID$>-<$MTFootnoteTotalNumber$>">
*<$MTFootnoteNumber$></a>
</MTFootnoteNumbers>
: <MTFootnoteString><br />
</MTFootnotes>
</p></div>
</MTIfFootnoteExist>
</MTFootnoteGet>
</MTFootnote>
</MTMacroDefine>

2)マクロの内容を有効にしたい部分にマクロを適用
<$MTEntryBody$>と、<$MTEntryMore$>を<MTMacroApply>~</MTMacroApply>で囲みます。

3)脚注の内容を表示したい部分に記述を追加

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

<hr/>だと配色などの関係でデザインから浮いてしまうというので、取り除いてやってdiv要素にclass属性を設定してborder-topプロパティで代用してCSSでデザインを制御しました。

定義部と表示部はテンプレートモジュール化

定義部と表示部はテンプレートモジュール化することが配布元の記事で推奨されています。モジュール名は「fndefine」、「fnprint」が例として挙げられています。テンプレートモジュールを作成して保存したら、各テンプレートには

<MTInclude module="fndefine">

<MTInclude module="fnprint">

と、シンプルな記述を加えるだけで済みますね。

実際にブログ記事に脚注をつけてみよう

マクロで先ほどfnタグというものを定義しました。<fn>~</fn>で囲んだ箇所は脚注の内容となります。例えば

footnote<fn>脚注の意</fn>

とブログ記事中に記述すると

footnote *2

*2 : 脚注の意

こういった感じで脚注が表示されます

フィードでは<fn>タグって無視されるんじゃないの?大丈夫なの?

footnote<fn>(脚注の意)</fn>

脚注の内容を表示する際に括弧(半角)は無視される仕様になっています。フィード上ではfootnote(脚注の意)と表示されます

すごく長いドキュメントなんだけど、章ごとに脚注を表示したいよ!

ブログ記事を作成時に、「<fn></fn>」と書くことによってそれまでにたまっている脚注の内容をいったん表示する仕様になっています

終わりに

とても使い勝手のいいプラグインなので皆さんも是非導入してみてください!では。

Tweetbacks

No Tweets Found About This Entry.

Leave Your Words




Trackback URL