« 永琳師匠 | メイン | 独自ドメインが1円? »

2005年10月03日

MTを単なるブログツールとしないために [Web]

Movable Type を使い始めて半年になるが、そのツールとしてのパワフルさや自由度の高さには改めて驚かされている。

とはいえそのままブログや日記として使うのでは、他のブログツールとの差はあまり無い。Movable Type の利点は、なんといってもスタティック(静的)なWebページを作ることが出来ることだろう。フリーのCMSやWikiのほとんどはダイナミック・パブリシングしかできないので、恒久的なリンクがどうしても不可解なクエリ値を含んだものになる。一般的に見て、ユーザやロボットはクエリ値の含んだURLに対して未だに不安感があるようだ。

MTを使えば、普通の(メモ帳やWebオーサリングツールを使ったような)Webページと同じようなサイトも作ることが出来る。つまりはブログではない昔からのWebサイトの形式だ。トップページには各コンテンツへのリンクがあり、各カテゴリページからそれぞれの記事へリンクするという伝統的な構成のそれである。そのようなサイトを作るには、いくつかの条件がある。 これら全ては必須ではないが、私にとっては全て重要な項目である。

  • 記事は全てスタティック(静的)ページである
  • 各記事ファイルは、カテゴリのディレクトリ内にある("/links/friend.html" のように)
  • 記事のファイル名は、意味のあるものである("00001.html" のようではない)
  • 1ページに沢山の記事を詰め込まない
  • 特殊なページ(プロフィールやお問い合わせなど)が存在できる

これらを全て満たすには、いくつか“裏技”的なテクニックを使わざるを得ない。 それによって若干の制限が加わるが、それさえ抑えればなんとかなる範囲である。 比較的苦労しやすい3つの項目をそれぞれ解決してみよう。

カテゴリ名を意味のあるものにする

英語で構成されたカテゴリ名は正しく変換される(例えば "My Hobby" は "my_hobby")が、 日本語のみのカテゴリ名はURLにしたときに、URLに使用できる文字列の関係で("cat1"、"cat2"、"cat3" のように)意味の無い機械的な名前に変換されてしまう。

これではURLから内容を推察することが出来ず、あまり好ましくない。 とはいえ全て英語にするのも難しいし、カテゴリ名だけ英語というのもなんだかおかしな話だ。 何とかカテゴリ名とファイル名を変える方法は無いだろうか。

一つの方法として、カテゴリ名は全て英語にしてしまって、「カテゴリーの説明」欄に日本語のカテゴリ名を保存するという方法がある。カテゴリ名を参照するときは、<$MTEntryCategory$> の替わりに <MTEntryCategories><$MTCategoryDescription$></MTEntryCategories> を使えばいい。 これでファイル名は英語にしつつ、日本語のカテゴリ名を表示できる。

ただ本来の用途としての「カテゴリーの説明」フィールドが埋まってしまうので、その意味では若干出来ることが減ってしまう。

ファイル名を意味のあるものにする

カテゴリ名と同じく、日本語のタイトルを持つエントリーは、 URLに使用できる文字列の関係で("00001.html" のような)意味の無い機械的な名前になる。

これを解決するにはキーワード欄を使う。 キーワードにファイル名に使いたいASCII文字列(例えば "my-memories")を入れておき、 アーカイブの設定で <$MTEntryCategory dirify="1"$>/<$MTEntryKeywords dirify="1"$>.html とする。 こうしておけば、主カテゴリ名のフォルダにキーワード名でファイルができるので(例えば "/my_hobby/my-memories.html")、 ファイル名からある程度内容を推察することが出来るようになる。 これだといかにも「ツールで作りました」という臭いもしない。

ただ、キーワード欄は貴重なフィールドでもあるので、若干制約は大きい。使わないなら追記欄を使ってもいい。

記事以外のページを作る

プロフィールやお問い合わせなど、普通の記事とは別の扱いをしたいページもある。 どこのカテゴリにも属さないし、他のどの記事からも独立している。 MTとは別箇に作ってもいいが、そうすると共通のヘッダやナビゲーションが付けられないので、できれば一緒に管理したい。

そのようなページは、インデックステンプレートの中に作ると良い。ただし、「再構築オプション」のチェックボックスははずすこと。これをつけたままにしておくと、記事を投稿するたびにページが更新されて、無駄な処理が発生してしまう。

ここで作ったインデックステンプレートは、<MTLink module="..."> で参照できる。もちろん直接リンクを張っても構わない。

投稿者 : 10:03 | コメント (0) | トラックバック (0)

トラックバック

このエントリーのトラックバックURL:
http://totora.jpn.org/mt/mt-tb.cgi/50

コメント

コメントしてください




保存しますか?

(書式を変更するような一部のHTMLタグを使うことができます)