« Pilot / Kari | Main | p2p技術を用いたIP電話ソフトウェアSkypeが固定電話や携帯電話にも対応 »

›7 27, 2004

MovableTypeをカスタマイズしよう

[ PC Tips ] [ Movable Type ]

MovableTypeカスタマイズの覚え書きとして。自分がやったことの中からある程度汎用だと思われるモノをピックアップ。MTのバージョンは2.661です。

■カテゴリーに日本語を使おう

 カテゴリー別のアーカイブなどはカテゴリー名がファイル名になるわけで、日本語を使うと問題がでるです。そこで、Category Descriptionを使うです。
カテゴリを日本語名で表示する

■スパムコメント対策をしよう

 MovableType設置経験のある方ならスパムの一つでももらったことがあると思います。私も設置して一週間以内に3つほど頂きました。完全放置という手もあるのですが、幾つかの対策をとる事でガードする手もあるです。私はファイル名変更とチェックボックスのみですが、しばらくスパムはきてないですね。
参考
MTコメントスパム対策

■編集作業を楽に行おう

 MovableTypeにblockquoteボタンやH4ボタンを付けたりできるですよ。ちょっとしたアイデアですが効果は絶大!だと思う
blockquoteを簡単に

 自動でHTMLを吐いてくれるというのは非常に便利なのでありますが、実際に使ってみると少し困った事もしばしば。blockquote中でpタグを使うとそれ以降の文章がずれるというIE独自の不具合なんかがその例ですかね。そんな時はHTML生成エンジンを直接いじってしまおうという発想。素敵
発見!>「Convert Line Breaks」<書き換え!


■アーカイブ関連を見直そう

 MobavleTypeは自動でカテゴリー別のページやMounthly・(Weekly・)Dailyのアーカイブページを作成してくれるです。これが便利と言えば便利なのですが、デフォルト状態では効率が悪く、アクセシビリティにも問題がある気がします。
 まず、Dailyアーカイブは不要かと。カレンダーとの連携機能が素敵なのは間違いないのですが、無くてもいいかな?というわけでdailyアーカイブは削除です。

 Categolyアーカイブは同じカテゴリーの記事を纏める機能を担当するのだと解釈しています。複数のテーマ(カテゴリー)を書き連ねていても自動で分類整理してくれる事は、情報過多の現状に非常に適している機能だと思います。ここでは目次となるIndexをサイドバー的に表示することでアクセシビリティの向上が見込めるかな?と思います。
 Monthlyアーカイブは全ての記事を読む人向けの機能ですかね?分類機能や検索機能がついているMobavleTypeにおいてこのカテゴリーを使用する目的は多分そんなところだと思います。ここでは他のカテゴリーに戻れるリンクを設置すればいいかな?
 Individualアーカイブは一つのエントリーの情報を全て表示する個別のページです。Web検索を通じて飛んでくる人が最初にたどり着くのはTOPページと同様以上にIndividualアーカイブの一つである可能性が強い。そのため、このブログが何を扱っていて他に有益な情報があるのかどうかを判断させる必要があると思うです。その記事のカテゴリーの表示、同じカテゴリーのIndexの表示が有効になるかな。
 と、ここまでが私の考えるアーカイブ別の役割とか担当とかです。で、実際に私が行った作業は以下の通り。

テンプレートの編集→新しいアーカイブ・テンプレートを作る、でcategorytitleというものを作成。中身は

<div class="sidetitle">
Index of <$MTCategoryDescription$>
</div>
 
<div class="side">
<table>
<MTEntries>
<tr><td style="vertical-align: text-top">●</td><td><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></td></tr>
</MTEntries>
</table>
</div>

 BLOGの設定 → アーカイブの設定 Dailyのチェックをはずす。Categolyアーカイブにcategorytitleを追加(テンプレートは<$MTArchiveCategory dirify="1"$>title.html)。
 生成されたCategory別htmlファイルは同じCategory内の記事のIndexになるです。んで、このHTMLを表示したい部分で取り込ませればいいわけです。(取り込むページをshtmlにして取り込みたい位置に<!--#include file="<$MTEntryCategory$>title.html" --> または、phpにして<? include"/public_html/module/entrylist/<$MTCategoryLabel$>.php";?>のような感じに。
)この時、読み込むアーカイブの種類によって指定方法が異なる事に注意。
参考
軽量な「Master Archive Index」を考える

 また、カテゴリー別の最新記事の表示なんかはどこでも使い回せそう。これも別ファイルを作成してしまいましょう。こちらは新しいインデックス・テンプレートを作る です。名前はCategory 出力ファイル名はarchives/category.htmlとしました(この辺は変更した方がいいかも)。中身は以下の通り。

<div class="sidetitle">
Categories
</div>
<div class="side">
<MTCategories>
<table>
<tr><td colspan=3><div class="rsstitle">
<a href="<$MTCategoryArchiveLink$>">■ </a><$MTCategoryDescription$> [<$MTCategoryCount$> items]</div></td></tr>
<MTEntries lastn="10" >
<tr><td > </td><td style="vertical-align: text-top">└</td><td><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></td></tr>
</MTEntries>
</table>
</MTCategories>
</div>
 
 
<div class="sidetitle">
Archives
</div>
 
<div class="side">
<MTArchiveList archive_type="Monthly">
 
<a href="<$MTArchiveLink$>"><$MTArchiveTitle$></a> [<$MTArchiveCount$> items]<br
/>
</MTArchiveList>
</div>

 で、これも好きなところで読み込むようにしましょう。カテゴリー名を日本語化している人は、カテゴリー名の先頭に数字をつけるとここでの並び順が任意に選べますね(11_PCnews・13_freesoft等)。しかも表示自体には数字が入らないのでスッキリ!

 これで軽量化を兼ねた最適化が行えたと思うです。で、ついでにインデックステンプレート内のMaster Archive IndexとStylesheetを自動で再構築しないようにしました。Master Archive Indexは初期状態ではどこからもリンクされていなかったと思いますし(嘘かも)、全記事一覧を表示させるメリットと、これを毎回構築する負荷のデメリットを考えればチェックをはずしても問題ないと思います。Stylesheetは毎回再構築させる意味はありませんし。
 それでもMaster Archive Indexを使用したいという人は、cronなどで深夜ひっそりと構築させる事をお勧めします。または、上記で作成したカテゴリー別のhtmlがあるのでそれを読み込ませるというのも一つの方法だと思います。


Posted by kroko 1 Comments: / 2 TrackBack
Comments

MT3が出ている現状で一体どれほどの需要があるかは謎です

Posted by: kroko at 2004年07月27日 14:15
Post a comment












Remember personal info?