Movable Typeのテンプレートに用いる事のできるタグには、いくつか汎用的な属性を用いる事ができる。これは、タグの値を目的の形式に整えたりする時に用いる。例えば、タグによって出力される文字を全て小文字にしたりといったもの。その中に、「dirify」という属性がある。これは、タグの中に「dirify=”1″」と書き込む事で、出力される文字列をファイル名に適した形に変更する。例えば、ファイル名に適さない文字を除去したり、置き換えたり。
前置きはここまで。最近、このサイトはMovable Typeのバージョンを3.2に上げたけど、どうもこのdirifyの挙動が変わっているらしい。今回目に付いた変化は、カテゴリー名にこれを用いた場合。今までこのサイトは、カテゴリーHTMLのファイル名を「category/c<$MTCategoryID zero_pad=”2″$><$MTArchiveCategory dirify=”1″$>.html」としていた。つまりこれは、c[カテゴリーに割り振られる一意のID2桁][カテゴリー名のdifiry].html、といった形。例えば今現在、「Book」カテゴリーのHTMLファイルは「c06book.html」というファイル名になっている。
IDをファイル名につけるのは、重複を避けるため。というのも、このdifiry属性、日本語を除去する働きをするため、例えば「ローゼンメイデン」と「絶対少年」という2つのカテゴリーの場合、日本語が除去されてしまうと両方とも空の名前になってしまい、重複が起こる。そのため、このIDをファイル名に設定する必要があった。
ところが今気付いた点として、このdirifyによって文字が空になった場合、勝手に「cat[カテゴリーに割り振られる一意のID]」という文字列が生成されるようになった模様。だから、今まで「ローゼンメイデン」カテゴリーのHTMLファイルは「c13.html」だったのに、今現在は「c13cat13.html」というファイル名になっている。
これは、Movable Typeを扱う上ではあまり問題が無いのだけど、例えばそのカテゴリーHTMLに対して静的リンクを張った場合や、検索エンジンからの来訪には対応できない。だから、サイトを運営する側にとって、こういった仕様変更はあまり感心できない。せめて、以前の形式も併用できるように何らかの互換性を持たせて欲しかった。
それ以前に、このカテゴリーに割り振られるIDはサイトを移転したりするとIDが振り直されてしまうため、できることならあんまり使いたくないんだよねぇ。
「ITmediaニュース:Movable Type開発は日本主導に 企業ニーズに対応」より、開発が日本に移された暁には、真っ先にこのdirifyの挙動を何とかしていただきたい、と思う。
コメントを残す