2007年03月11日

ブログのページを分割する方法いろいろ

ブログのページを分割する方法は実際のところいろいろあります。今回、自分でページ分割プログラムを作るためにこれまでに調べてきたことを、まとめておきます。

ココログは、シックスアパート社のブログツール「MovableType」をベースにしたブログサービスです。シックスアパート社自身も同様のブログサービス「TypePad」を提供していますが、TypePadがどちらかというとMovableTypeの最新の機能を比較的早めに取り込んでいく(もしくは選考して提供していく)傾向にあるのに対し、ココログは非常に慎重なバージョンアップをしています。

というわけで、まずはココログのベースとなっているMovableTypeで使えるページ分割機能をさがしました。MovableTypeの基本機能にはページ分割機能はないため、これらの機能は「プラグイン」として第三者から提供されています。

MTPaginate
たぶんいちばんよく知られた、ページ分割用プラグインではないかと思います。ただし、アーカイブページをPHP化してダイナミックページにする必要があるため、PHPが動作するサーバでないと動かすことができません。そのため、ほかの多くのプラグインが(おそらくダイナミック化したページでは)使えないようです。また、MTPagenateage独自のタグをテンプレートに記述する必要があります。

DivPages
日本人の藤本壱氏によるプラグイン。MTPaginateと同様にアーカイブページをダイナミックページにする必要がありますが、そのダイナミックページ化も同氏の「Perl版ダイナミック・パブリッシング」を用います。Perlを用いるため、多くのプラグインはそのまま動作するそうです。DivPages独自タグをいくつかテンプレートに記述する必要があります。

ArchivePage
静的ページでページ分割を実現するプラグイン。これも日本のlab.fancs.comさんの作によるもの。これも独自タグを書き込みますが、比較的やさしそう。ただし。バージョンが0.02であり、作者本人が「利用にあたってはデータのバックアップ等を行うようにしてください」と呼びかけています。

Paged Archives
Alden Bates氏作。これも静的ページでページ分割を実現するプラグイン。検索しても日本語での情報があまりないけれど、実際に利用している日本語ブログがいくつか見つかるので、日本語版MovableTypeでも動作には問題なさそう。

また、プラグインなどを使わない方法もあります。

MT で PHP を使わずにページ分割
タイトルどおり、PHPもPerlも、JavaScriptも使いません。カテゴリアーカイブのテンプレートをページ数分だけ用意し、生成するテクニック。半自動ですが、もっとも手軽だしプラグイン不要でここまでできれば十分かも。実は僕も同じことを考えましたが、ココログではできないなあと思ってあきらめた手段。

それから、裏技的には、以下の方法も考えました。

WordPressに乗り換える
よく調べていないのですが、オープンソースのブログツールWordPressはPHPでできているダイナミック生成型のブログツールなので、ページ分割機能はたぶんデフォルトであるのではないかなあと想像。MovableTypeからの乗り換えツールも含まれていて移行は簡単らしい。

僕の作ったスクリプトも末席に加えさせてください。

JavaScriptでページ分割
JavaScriptを利用するためサーバ側にプログラム設置が不要。テンプレートを2箇所書き換えるだけで簡単に設置できます。JavaScriptを動作させていないブラウザでは利用できません。

さて、自分でスクリプトを書く前に、上記の中でココログで使えそうなものを検討したわけですが、まずプラグインはまっさきに全滅です。ココログはサーバ側に一切のプログラム設置ができないため、プラグインの導入は不可能なのです(これはココログだけでなく、TypePadも含めてすべてのブログサービスはそうでしょう)。

では、自分でレンタルサーバを借りてMovableTypeを設置してココログから移行し、プラグインを導入するか、というと、これもいくつかの理由であきらめました。まず、スパムの対策を自分でやるのが面倒だし(ココログは結構スパムをはじいてくれている)、サーバにトラブルがあったとき自分で対応するのも面倒だし、なにより、移行すると記事のURLが変わってしまうのです。これは、ココログからデータをインポート/エクスポートするときに避けられない問題です。そんなわけで、ココログから移行しないでできる方法を模索することにしました。

そこで、「MTでPHPを使わずにページ分割」なのですが、ココログではカテゴリアーカイブのテンプレートが含まれる「バックナンバーテンプレート」を増やすことができないようなのです。なのであきらめました。でも、いま考えてみると、インデックステンプレートしてカテゴリアーカイブのテンプレートを作ればできるような気がしました。今度試してみよう。

そんなわけで、結局自分で作るしかないかー、と思い、いろいろ考えた末にJavaScriptで実現する方法を思いついた、というわけです。

[ ] 長いページを分割する

次 >>  ココログでは.htaccessは使えない
前 <<  paginate4cocolog.jpの仕組はシンプル


トラックバック http://app.cocolog-nifty.com/t/trackback/36569/14226454

コメント

コメントを書く