大分前になりますが、MovableTypeを使用した案件でちょっとハマった部分があるのでメモ。

調べてみると、どうやら散々既出だったみたいですが、ブログ記事のファイル名で、アンダーバー、もしくはハイフンを使用していた場合、それぞれが置換されてしまう現象です。

MovableTypeでは、書き出すページのパスと名前をアーカイブマッピングから設定できます。

例えば、moco-moco.comでは、ブログ記事のアーカイブパスは次のようにyymmのハイフンで設定しています。

081104_mt01.gif
▽moco-moco.comの設定
ブログ記事:yyyy/mm/entry-basename.php :(-)ハイフンで設定
ウェブページ:folder-path/page-basename.php :(-)ハイフンで設定

アーカイブマッピングの設定では、このように(-)ハイフンと (_)アンダーバーの違いだけのような微妙な選択肢がチラホラ。

081104_mt02.gif

しかし、この設定がとても重要。

「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

コメントする