2xup.org

見出しレベルを調整するモディファイアを追加する Movable Type プラグイン

Movable Type 4 のデフォルトテンプレートでもそうなのだけれど、ブログ記事アーカイブテンプレートの見出しはブログ記事のタイトルが heading level 1 (h1) になっています。2xup.org でも、ドメインルート以外はそのページで一番大きな見出しにしたい部分、例えばブログ記事個々のページではブログ記事のタイトルを h1 としています。

しかしそれを前提にブログ記事を書いた場合、h1 がサイトのタイトルになる、もしくはブログ記事のタイトルが h1 以外になるページでは、ブログ記事に含まれる見出しの出現順序がおかしくなってしまう可能性があります。それを解消する為の Movable Type プラグインを以前に作成して利用していたのですが、先日の Hack-a-thon の時間を利用して公開できる状態にし、ダイナミックパブリッシングにも対応してみました。

使い方

hn_level というテンプレートタグモディファイアが追加されます。ブログ記事本文の見出しレベルを調整したい場合は、以下のように書きます。

<mt:entrybody hn_level="+|-N" />

設定する値は +|-N で、設定した値に応じて見出しレベルを調整します。例えば、ブログ記事本文に書いた heading level 2 (h2) をメインページテンプレートでは heading level 3 (h3) として出力した場合は、メインページテンプレートタグの MTEntryBody ファンクションタグを以下のようにします。

<mt:entrybody hn_level="+1" />

もうちょっと Movable Type 4 っぽく書くなら、テンプレートの最初に MTSetVar, MTSetVarBlock を利用して見出しレベルを調整する値を変数 adj_val に入れておいて、モディファイアでその変数を指定します。

<mt:setvar name="adj_val" value="+1" />
...
<mt:entries>
...
<mt:entrybody hn_level="$adj_val" />
<mt:entrymore hn_level="$adj_val" />
...
</mt:entries>

こうしておくと、hn_level モディファイアを設定するファンクションタグが他にもある場合、編集が簡単になります。

ダウンロード

インストール

デスクトップで解凍した場合は plugins ディレクトリの中にある HeadingLevelConverter ディレクトリを Movable Type の plugins ディレクトリにアップロードしてください。

アップロード後、解凍する場合は mt.cgi のあるディレクトリ (以下[MT]) にアーカイブをアップロード後、解凍すれば plugins ディレクトリに HeadingLevelConverter ディレクトリが展開されます。

Movable Type 3.x で利用する場合

Movable Type 3.x で利用する場合は、HeadingLevelConverter/php/ にある modifier.hn_level.php を、[MT]/php/plugins/ に移動してください。