2005年9月19日
Movable Type のカテゴリーリストの表示が消える
久々に、Movable Type ネタ。 Movable Typeについてご質問を受けた。その内容はMovable Typeにて、カテゴリーのリストを画面の横に表示している。 トップページでの表示は問題ないが、個別のカテゴリーページに行くと カテゴリーリストの内容が表示されなくなってしまう。 カテゴリーリスト表示部分はモジュールとして共通化しており、 トップページからも、他のページからも 同様にインクルードしているので、まったく同じものが 表示されるはずなのだが...というご質問。 例えば、このブログ「シリコンバレー 24時」でも 同様のカテゴリーリストを画面の右側に表示している。
テンプレートの該当するモジュール部分を拝見すると、 カテゴリーリストの表示部分が
<MTSubCategories>で挟んであった。 これは、Movable Typeのマニュアルに載っている例そのもので、 このように、それをそのままご利用になっておられる方も多いと思う。
カテゴリーを表示するためのスクリプト
</MTSubCategories>
実は、MTには カレント・カテゴリーみたいな考え方がある。 つまり「現在対象としているカテゴリー」が暗黙のうちに指定されている。 MTのトップページを表示している場合、カレント・カテゴリーもトップレベルとなり、 そのサブ・カテゴリーを表示するとなると結局、全てのカテゴリーが表示されることになる。 ところが、ある特定のカテゴリーのページへ移動すると、 カレント・カテゴリーも自動的にそのカテゴリーに指定されてしまい、 そこからのサブ・カテゴリーを表示するとなると、結果として何も表示されない、 もしくは、そのカテゴリーの下にカテゴリーがあった場合だけその分だけが表示される、 ということになる。 これはこれでこういう仕様なので、バグでもなんでもない、正常動作なのである。
ところが、Movable Typeをお使いの方の中には、 今回のご質問の方と同様、どのページからでも全てのカテゴリーのリストを表示させたい、 とお考えの方もおられると思う。 さて、そういう場合はどうしたらよいか。 そこはさすが、Movable Type。解決策が用意してある。 結論としては、上記のテンプレートタグ「<MTSubCategories>」を 「<MTTopLevelCategories>」に変更すればよい。 具体的には、
<MTTopLevelCategories>てな感じ。 これで、どのカテゴリーに居ても全てのカテゴリーのリストを表示できるようになる。
カテゴリーを表示するためのスクリプト
</MTTopLevelCategories>
カテゴリー: MTカテゴリー , MTテンプレートタグ 22:26 | コメント (0) | トラックバック (0)
2005年5月18日
Movable Type のテンプレートタグ (1) 「dirify」
先日の『Movable Type のカテゴリー(8) 「同一ディレクトリ名問題」』に関連する記述をマニュアルの中に見つけたので、今回はそれについて。
テンプレート・タグのタグ・アトリビュートとして、「dirify」というものがある。詳しくは、マニュアルを見ていただければわかることだが、少し引用させていただくと、
dirifyを 1 を設定すると、タグを「dirify」します。すなわち、タグの値を、ファイル名や検索用に合わせたものに変換します。値は、小文字(abc...)に変換され、HTMLのタグやエンティティは除去され、普通でない文字 (アルファベット、数字、アンダースコア (_)、空白以外の文字) は除去され、空白はアンダースコア (_) に変換されます。
とあり、また、補足として、
(訳注: 日本語は dirify によってすべて除去されてしまいます)
とある。
このことから、Movable Type では、エントリーのファイル名や、カテゴリーのディレクトリ名にこの規則が適用されているということがわかる。やはり、先日のブログで指摘したとおり、エントリーやカテゴリーのタイトルにおいて、「英語と日本語が混在し、かつ、日本語部分のみが異なる場合、それぞれを識別できなくなってしまう」という問題が起こるわけだ。
カテゴリー: MTカテゴリー , MTテンプレートタグ 02:09 | コメント (0) | トラックバック (0)
2005年5月17日
Movable Type のカテゴリー(8) 「同一ディレクトリ名問題」
Movable Type 関連のカテゴリーとして、「MT カテゴリー」、「MT テンプレート」という名前でカテゴリーを作成していた。正確に言うと、先頭の「MT」は半角、次に半角スペース1個が続き、それに、「カテゴリー」もしくは「テンプレート」という全角の文字。双方のカテゴリーともディレクトリ名が 「mt_」 になっており、結果的に、どちらのリンクも同じアドレスへリンクされていた。
このように、日本語と英語が混在したカテゴリー名の場合、注意が必要のようだ。
カテゴリーのディレクトリ名規則を推測すると、
- 英語のみのカテゴリー名の場合は、それをそのまま小文字に変換してから、そのカテゴリーのディレクトリ名とする。
- 上記 1.において、スペースが含まれる場合は、そのスペースをアンダーバー「_」に変換してから、ディレクトリ名とする。
- 日本語のみの場合は、「catXX」のようなXX部分には、ユニークな半角の数字が用いられる。
- 英語と日本語が混在するカテゴリー名の場合は、日本語部分を削除し、残った英語部分に、上記 1. 2. のルールを適用する。
といった感じである。
ということは、英語と日本語が混在するカテゴリー名で、日本語部分のみが異なる場合、現行の Movable Type は、同じディレクトリにカテゴリーアーカイブを書き込んでしまうことになる。そのため、このブログ・サイトの場合、「MT カテゴリー」を作成した後、「MT テンプレート」を作成したが、先に存在していた「MT カテゴリー」にはアクセスできなくなった。
回避策として、日本語のみの「MTカテゴリー」、「MTテンプレート」という全て全角文字のカテゴリー名に変更した。その結果、cat8 cat16 というディレクトリ名になり、それぞれに問題なくアクセスできるようになった。
カテゴリー: MTカテゴリー 10:34 | コメント (0) | トラックバック (0)
2005年4月19日
Movable Type のカテゴリーについて(7) 「エントリーの削除」
カテゴリー内に一つしかエントリーがない状態で、そのエントリーを削除したらどうなるかテストしてみる。
現在、カテゴリー「日本語カテゴリー」の中に、エントリー「ダミー2」が一つだけ存在している。この状態から「ダミー2」を削除してみる。 ちなみに、このエントリーのアーカイブ内でのアドレスは、arch/2005/04/post_2.html となっている。
エントリーの削除の方法は、カテゴリーの削除の場合とほぼ同じで、「エントリーのリストと編集」のページの一覧右側の削除欄の四角い箱にチェックマークを入れてから削除ボタンをクリックするだけ。確認用の別ウィンドウが開き、「1 個のエントリーを削除していいですか。」という警告文が表示される。 確認後、削除ボタンをクリックすると、エントリーリストからエントリー「ダミー2」が消えている。
「サイトの再構築」を行い、トップページを開いてみると、「ダミー2」が、本文からも「最近のエントリー」からも消えている。また、カテゴリー欄の「日本語カテゴリー」からのリンクもなくなっている。 但し、カテゴリー「日本語カテゴリー」に対応しているディレクトリ「cat4」とその下の「index.html」は存在したままであった。
ちなみに、この実験は、数日前に行ったものです。
カテゴリー: MTカテゴリー 21:28 | コメント (0) | トラックバック (0)
2005年4月18日
Movable Type のカテゴリーについて(6) 「カテゴリーの削除」
現在、カテゴリー「toplevel」の中に、タイトル「ダミー1」というエントリーがある状態で、カテゴリー「toplevel」を削除してみる。
カテゴリーの削除の方法は、管理項目カテゴリーのページを開き、カテゴリー一覧の各行右側の削除欄の四角い箱にチェックマークを入れてから削除ボタンをクリック。確認用の別ウィンドウが開き、「1 個 のカテゴリーを削除していいですか? カテゴリーを削除すると、そのカテゴリーを設定されたエントリーは、カテゴリーが設定されていない状態になります。」という警告文が表示される。確認後、削除ボタンをクリックすると、カテゴリーのページから、カテゴリー「toplevel」が消えている。
ここで、エントリー一覧を見てみると、タイトル「ダミー1」のカテゴリーは空白になっている。
また、「サイトの再構築」を行い、トップページを開いてみると、ここでもカテゴリー「toplevel」が消えている。しかし、リンクはなくなっても、ディレクトリ「toplevel」とその下の「index.html」は存在したままである。
カテゴリー: MTカテゴリー 18:23 | コメント (0) | トラックバック (0)
2005年4月17日
Movable Type のカテゴリーについて(5) 「日本語のカテゴリー名」
日本語のカテゴリー名のテストとして、「日本語カテゴリー」というカテゴリーを作成してみた。半角英数でのカテゴリー名の時と同様、この段階で「サイトの再構築」を行ってみても、トップページのカテゴリー欄に日本語で「日本語カテゴリー」と表示はされるが、そこからのリンクはない。
前回の「Movable Type のカテゴリーについて(4) カテゴリー名の大文字・小文字問題」で作っておいたダミーエントリー「ダミー2」を、この「日本語カテゴリー」というカテゴリーに移してから「サイトの再構築」を行ってみた。結果としては、のカテゴリー欄の「日本語カテゴリー」という項目からリンクが張られており、そのリンクをたどると、「ダミー2」の内容が表示された。
この際、このページのアドレスはアーカイブ・パスの下に「cat4」というディレクトリが作成され、その下に「index.html」ができている。日本語のカテゴリー名に対しては、「cat4」というようなディレクトリ名になるようだ。
また、前回の「Movable Type のカテゴリーについて(4) カテゴリー名の大文字・小文字問題」での上書き問題は解消され、カテゴリー名「toplevel」のリンク先の内容も、「ダミー1」にもどっており、カテゴリー間の矛盾がなくなった。
カテゴリー: MTカテゴリー 20:09 | コメント (0) | トラックバック (0)
2005年4月16日
Movable Type のカテゴリーについて(4) 「カテゴリー名の大文字・小文字問題」
前回の「Movable Type のカテゴリーについて(3) 同名カテゴリー実験」の 実験(2)について、そのままの状態から引き続き試してみた。
すると、トップページのカテゴリー欄からは、ディレクトリ「toplevel」(全小文字)下の「index.html」にリンクができている。これは、カテゴリー名「TopLevel」(最も初めに作った大文字・小文字混在カテゴリー)からのリンクがなくなっていたため、そのまま、そのディレクトリを利用したかたちになっている。
では、ということで、新たなダミーエントリー「ダミー2」をカテゴリー名「TopLevel」(最も初めに作った大文字・小文字混在カテゴリー)に登録してみた。
すると、これも、トップページのカテゴリー欄からは、ディレクトリ「toplevel」(全小文字)下の「index.html」にリンクができている。つまり、以前あった、カテゴリー名「toplevel」(最後に作ったカテゴリー)の内容を上書きしてしまった。
もう一度、管理画面で確認すると、確かに、「ダミー1」のエントリーはカテゴリー名「toplevel」(全小文字)に属しており、「ダミー2」のエントリーはカテゴリー名「TopLevel」(大文字・小文字混在)に属している。
これは、Movable Type の一種のバグではなかろうか?
細かなバグに目くじらを立てようとは思わないが、同一カテゴリー名で、大文字・小文字で使い分けるのはやめた方がよいようだ。
後日、環境を整えて、この件について改めて調査してみたい。
カテゴリー: MTカテゴリー 16:46 | コメント (0) | トラックバック (0)
2005年4月15日
Movable Type のカテゴリーについて(3) 「同名カテゴリー実験」
前回の「Movable Type のカテゴリーについて(2)」で、カテゴリー名「TopLevel」がディレクトリ名「toplevel」の様に小文字化されることがわかった。
そこで、
(1) 意地悪な実験として、まず、全く同じ名前のカテゴリーは作成できるか?
(2) 次に、カテゴリー名「toplevel」というカテゴリーは作成できるか?
を実験してみた。
実験(1)では、全く同じ名前のカテゴリーができてしまった。
この段階で「サイトの再構築」を行ってみると、トップページのカテゴリー欄に、同じ名前のカテゴリーが2つ並んでいる。
これにダミーのエントリー入れて(移して)、「サイトの再構築」を行ってみると、
新たに、「toplevel_」という名前にアンダーバーが付加されたディレクトリが作成され、その下に「index.html」ができている。
また、トップページのカテゴリー欄からは、ディレクトリ「toplevel_」下の「index.html」にはリンクができているが、従来のカテゴリー名「TopLevel」からのリンクはなくなっている。 ただし、リンクはなくなっているが、ディレクトリ「toplevel」と、その下の「index.html」は存在したままになっている。
【教訓】
・同じ名前のカテゴリーができてしまう。
・Movable Typeのカテゴリー上では移動したエントリーも実際のディスク上では削除されてない。つまり、ゴミが溜まってゆく。
実験(2)については、長くなったので次のエントリーで。
カテゴリー: MTカテゴリー 10:20 | コメント (0) | トラックバック (0)
2005年4月10日
Movable Type のカテゴリーについて(2) 「カテゴリーの作成とそのディレクトリ」
これからはしばらく、Movable Typeの「カテゴリー」について、実験してわかったことを記録してゆく。カテゴリーとアーカイブにおける実際のディレクトリの関係から調査してみる。
トップレベル・カテゴリー「TopLevel」を作成してから「サイトの再構築」を行ってみた。これだけではトップページのカテゴリー欄に表示はされるが、そこからのリンクはない。(中に何のエントリーもないので当たり前だが)この時点では、アーカイブ・パスの下にも何もできていない。
ダミーのエントリーを作成し、それをそのカテゴリー「TopLevel」に加えてから「サイトの再構築」を行ってみた。 トップページのカテゴリー欄からもリンクが張られているし、この時点で、アーカイブ・パスの下にも「toplevel」というディレクトリが作成され、その下に「index.html」ができている。ダミーのエントリーの内容は、この「index.html」の中に入っている。
この際、カテゴリー名「TopLevel」がディレクトリ名「toplevel」の様に小文字化されている。
カテゴリー: MTカテゴリー 15:43 | コメント (0) | トラックバック (0)
2005年4月 9日
Movable Type のカテゴリーについて(1)
誰でもブログを始めれば、まずは、その設定を あーでもない、こーでもない、と試すことになるのでしょうけれど、御多分に漏れず、私の場合も同じ経過をたどることになりそうだ。 折角なので、その様子も防備録としてこのブログに記録してゆこう。
まだ、このエントリーが2つ目ということで、わからないことだらけだが、「Movable Type 3.1 ガイド」によると、「サブカテゴリー」が使えるとのことなので、まずはそれについて調査して行きたい。
ただ、管理画面の「カテゴリー」を見ても、「トップレベル・カテゴリーを作成する」というのは見つかるが、サブカテゴリーを作成する方法がみつからない。とりあえず、現在のところ、「ブログについて」というトップレベル・カテゴリーを作ってみた。トップレベルカテゴリーは、「エントリーの投稿」ページの主カテゴリーのメニューから選択ができるようになった。
まだまだ、調査したいこと、試してみたいことが沢山あるが、それを試すためにブログのエントリーがいくつも必要となる。しばらくは、こうした、ほとんど内容のないエントリーが続くことになりそうだ。
カテゴリー: MTカテゴリー 00:26 | コメント (0) | トラックバック (0)