MovableType.jpは、AutoPagerizeに対応しているのをみて良いと思った。ちゃんとコード中に対応クラス指定しているのがすごいね。
てなわけで、MT4.1でAutoPagerizeに対応させるためのコードっていうのを書き出してみた。
AutoPagerizeに対応させるには以下の仕様にしないと動作しない。
nextList
次のページへのリンクをXPathで指定。取得したリンクから次のページを読み込む。
Next pageのリンクでa要素でrel="next" を付ける。
insertBefore
読み込んだページから切り出したノード群を挿入する際に基準となるノードをXPathで指定。 insertBeforeのと言う名の通り、基準となるノードの前に挿入される。
class指定で"autopagerize_insert_before" を付ける
pageElement
ページから切り出すノード群をXPathで指定。
class指定で"autopagerize_page_element"を付ける
この3つを対応させると、AutoPagerize対応になる。
MovableType.jpのブログでは、個別記事(アーカイブ)で上記の指定を行っている。
デフォルトのテンプレートにクラス指定するには、モジュールテンプレートのブログの記事で
1: <div id="entry-<$MTEntryID$>" class="entry-asset asset hentry autopagerize_page_element">
2: <div class="asset-header">
3: <h1 id="page-title" class="asset-name entry-title"><$MTEntryTitle$></h1>
4: <$MTInclude module="ブログ記事のメタデータ"$>
5: </div>
6: <div class="asset-content entry-content"
7: <$MTInclude module="adsense_top"$>
8: <MTIfNonEmpty tag="EntryBody">
9: <div class="asset-body">
10: <$MTEntryBody$>
11: </div>
12: </MTIfNonEmpty>
13: <MTIfNonEmpty tag="EntryMore" convert_breaks="0">
14: <div id="more" class="asset-more">
15: <$MTEntryMore$>
16: </div>
17: </MTIfNonEmpty>
18: <$MTInclude module="adsense_bottom"$>
19: </div>
20: <div class="asset-footer">
21: <MTIf name="entry_template">
22: <$MTInclude module="カテゴリ"$>
23: </MTIf>
24: <$MTInclude module="タグ"$>
25: </div>
26: </div>
1行目の<div id="entry-<$MTEntryID$>" class="entry-asset asset hentry">にclass指定で"autopagerize_page_element"を付ける
モジュールテンプレート、コメントのコードの下に以下のコードを追加する。そうするとAutoPagerize対応になると思う。
1: <hr class="autopagerize_insert_before"/>
2: <div class="content-nav">
3: <ul>
4: <li>次の記事:<MTEntryNext><a href="<$MTEntryPermalink$>" rel="next"><$MTEntryTitle remove_html="1"$></a></MTEntryNext></li>
5: <li>前の記事:<MTEntryPrevious><a href="<$MTEntryPermalink$>" rel="prev"><$MTEntryTitle remove_html="1"$></a></MTEntryPrevious></li>
6: </ul>
7: </div>
対応できた。
これで通常のインデックスページでは、投稿日時での降順でエントリーをみることができる。個別のエントリーを閲覧するときに、autopagerizeに対応できるユーザーであれば、昇順にしてエントリーを見ていくことができる。便利。ユーザーにも喜ばれる。
