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で実現する方法を思いついた、というわけです。
[ 固定リンク ] 長いページを分割する

コメント
コメントを書く