注釈プラグイン Footnote Plugin

Movable Typeはそれなりに高機能なコンテンツ管理システム(誰も高度なプログラムとは言ってない)で使ってるといろいろ便利な事が多い→ユーザも多いんすけども、wikiを使ったほうが便利な事とかも結構あったりします。

たとえば、文書の階層化。wikiはコレが非常に得意で、マニュアルのような階層化した文章を書くときにwikiを使うと階層メニューまで自動で作ってくれる→ラクをすることができますし、注釈(脚注)を

{{fn ココが注釈}}

と書くだけで簡単に挿入出来たりとか、キーワードに自動的にリンクを張ったりとか、便利な小技を幾つも備えております。

そのため

等、MTをwikiで書く的な取り組みが幾つか為されてる(英語圏ではもっと多いらしい)んすが、wikiにそう慣れてる訳でもなく、既にHTMLタグ入力を前提にMTを幾つか改造しちゃってるワタシとかだと、wikiで書くことで便利さの幾つかを手放さなきゃならなくなる→逆に不便になる事も(-_-;)

ということで、今回は「wikiで書く」のではなく「wiki的な注釈(つまりこんなの)書きを実現するプラグイン」Footnote Pluginを導入してみました。

Footnote PluginはMTMacroというプラグイン上で動作するように作られてるので、まずMTMacroを導入します。

  1. 上記ページからmtmacros-1_52.zipを貰ってくる
  2. 解凍する
  3. macros.pl → /mt/plugins/
  4. macros.pm → /mt/extlib/bradchoate/
  5. postproc.pm → /mt/extlib/bradchoate/
  6. 以上のように配置

これでMTMacroプラグインが導入出来ました。

続いてfootnoteプラグインを導入します。

  1. 上記ページからfootnote.plを貰ってくる
  2. /mt/plugins/にコピー

footnoteプラグインは上記のとおりマクロなので、実行するためには事前にマクロを定義しなければなりません。「マクロの定義とかはテンプレートモジュールにしとくと便利ですよ」とのことなので、素直にそうします。

040617a.gif

今まで一度も使ったことなかったんで、ちょっと探しました。「新しいテンプレートモジュールを作る」メニュー(^_^;)

でもこれ、「部品」を作るのに非常にイイ機能ですね。幾つかのテンプレートで共通→コピペで同期化してる部分とかをコレにすれば、1回の変更ですべて変更出来ちゃうという。

fndefine

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

fnprint

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

その後Individual Entry Archiveの

<$MTEntryMore isbn="1"$>

<MTInclude module="fndefine">
<MTMacroApply><$MTEntryMore isbn="1"$></MTMacroApply>

とし(isbnの記述があるのは既にmt-isbnプラグインを導入しているため)、注釈を表示させたい下のほうに

<MTInclude module="fnprint">

と入れときました。

その後、Individual Entry Archiveを再構築してから注釈を入れたいところに

<fn>(これが注釈ですよ)</fn>

とか書くことで(これが注釈ですよ)と表示されるようになりました(^_^) 最新状況や詳細については公開テンプレートを参照のこと。

このように<fn>タグ間に()を挟んで注釈を書くようにしとくと、<fn>タグが効かない環境(MT4i環境では駄目とか。まぁMT4iの仕様を考えればむしろ当然ですが(^^;;)でも(これが注釈ですよ)となり、「注釈と本文がシームレスに混じり合う最悪の事態」を避けられますのでお勧めです。

.footnote {
font-family:"MS Pゴシック", "ヒラギノ角ゴ Pro W3", "Osaka", verdana, arial, sans-serif;
color:#444488;
font-size:small;
font-weight:normal;
padding:1em;
margin-left:3em;
border-top:2px dotted #888888;
line-height:110%;

}

↑参考までに、注釈部のスタイルシート。

このMTMacroというプラグインは他の事にも色々使えそうでなかなか面白そうですんで、少し調べておこうかと思ってます。