大分前になりますが、MovableTypeを使用した案件でちょっとハマった部分があるのでメモ。
調べてみると、どうやら散々既出だったみたいですが、ブログ記事のファイル名で、アンダーバー、もしくはハイフンを使用していた場合、それぞれが置換されてしまう現象です。
MovableTypeでは、書き出すページのパスと名前をアーカイブマッピングから設定できます。
例えば、moco-moco.comでは、ブログ記事のアーカイブパスは次のようにyymmのハイフンで設定しています。
▽moco-moco.comの設定
ブログ記事:yyyy/mm/entry-basename.php :(-)ハイフンで設定
ウェブページ:folder-path/page-basename.php :(-)ハイフンで設定
アーカイブマッピングの設定では、このように(-)ハイフンと (_)アンダーバーの違いだけのような微妙な選択肢がチラホラ。
しかし、この設定がとても重要。
「entry-basename」のようにハイフンでアーカイブパスを設定していた場合、ファイル名に(_)アンダーバーを使用すると、それが(-)ハイフンに置換されてしまいます。
具体例を挙げましょう。moco-moco.comの場合、ブログ記事の出力は次のように設定しています。
▽moco-moco.com:アーカイブマッピングの設定
ブログ記事:yyyy/mm/entry-basename.php
「entry-basename」のようにハイフン(-)でアーカイブパスを設定しています。そこに新規でエントリーを作成、その時「出力ファイル名」に(_)アンダーバーを使用した名前で作成します。
▽新規エントリーで(_)アンダーバーを含む名前を設定
例):file_sheep.php
上記アンダーバーのファイル名『file_sheep.php』で出力ファイル名を指定した場合、再構築を行うと、出力されるファイル名は
▽再構築後、書き出されるブログ記事
file-sheep.html (アンダーバーがハイフンに置換されたファイル名)
このように(_)アンダーバーで設定したはずのファイル名が、
置換前:file_sheep.html
↓
置換後:file-sheep.html
アーカイブパスで設定した(-)ハイフンに置換されてしまうのです。
これはブログ記事だけではなく、ウェブページでも同じ現象が起こります。
微妙にバグのような気もしますが、対策が解ればなんてことはない問題なのでアーカイブ化しておきます。
▽参考リンク
・MT:アンダーバーがハイフンになっちゃう理由がわかった
http://blog.telepath.co.jp/oyama/2008/05/mt_080527.html