« お好み焼き大好き! | メイン | Category を日本語に&順序を思い通りにする »

2004年05月05日

Permalink の本当に“恒久的な”決め方

Permalink(その記事の恒久的なリンク) と Category の設定・分類の仕方は皆さん、いろいろ苦労されているようです。
僕は Permalink に関しては以下のように決めました。これに関してはもうずいぶん前に決めていたのですが、今回 Category の設定がようやく決まったので、一緒に覚え書きとしてあらためてエントリにしておきます。

Permalink はデフォルトでは各記事に自動的につく EntryID(タグとしては正確には<$MTEntryID$>)で一意に決められます。ただしこれが曲者で、削除されたエントリなどがあり、ID 番号が飛び飛びになっているものを別のサーバーに移動しようというときなど、移転先であらたに連番がついてしまい、“Perma”(nent) link ではなくなってしまうのです。

変更方法

これの解決方法はいくつか考えられていますが、いずれもとにかくなんらかの“絶対的で一意な”値を入れ込み、本当に恒久的な URI を設定しようというものです。
変更するのは、

●メインメニュー > Sky's The Limit(<ここは各 BLOG の名称です)編集メニュー > 設定

の3番目『アーカイブの設定』のところです。
アーカイブの種類の一番上に『Individual』というのがありますが(テンプレートは Individual Entry Archive)、このアーカイブ・ファイルのテンプレートの空欄に変更したものを書き込みます(下図参照)。
040505_ArchiveSet_ind.gif

実際のタグとその意味

僕はここに以下のように記載しました。

<$MTArchiveDate format="%Y%m/%d-%H%M"$><$MTEntryKeywords dirify="1"$>.php

ひとつひとつ説明します。

<$MTArchiveDate$>
は、そのアーカイブを最初に作成した日付・時刻などを表すタグです。
日時を表すのにさまざまな形式を取ることができ、タグの中に「format=""」で決めることができます。
format="%Y%m/%d-%H%M"
の各要素の意味は以下の通りです。

%Y:西暦年号・4桁(例:2004)
%m:月 1桁の場合には最初に0がつく(例:05)
%d:日付 1桁の場合には最初に0がつく(例:05)
%H:時・24時間表示(例:18)
%M:分 1桁の場合には最初に0がつく(例:03)

また、

<$MTEntryKeywords$>
は、各エントリの作成画面の下の方に現れる『キーワード』欄に記入した言葉(英数字)を表します。
キーワードはデフォルトでは表示されていません。これは作成画面の一番下の『この画面の表示をカスタマイズする』を押し、画面の設定のカスタムの中の『キーワード』にチェックを入れることで表示されるようになります(下図参照)。
040505_WinCustomize.gif

dirify="1"
をつけると、たとえばキーワードに「About Movable Type」と書いた時、このタグに置換される文言は「about_movable_type」のようになります。すなわち URI などに使われても問題のない形に“整形”してくれるものです。 #ところでこの「dirify」という言葉ですが、手元の英和辞典はもちろん、ググってもドンピシャとみつけることができませんでした。新語、もしくは MT の“造語”かなにかなのでしょうか?

以上により、たとえば2004年5月5日の午後6時3分に、Honda NSX とキーワード記入したエントリを投稿すると、その Individual Archive には自動的に

200405/05-1803honda_nsx.php
とつけられるわけです。

スラッシュやハイフンはなに?

ところでこの中のスラッシュ(/)やハイフン(-)はなにを意味するんでしょうか?
実はこの

<$MTArchiveDate format="%Y%m/%d-%H%M"$><$MTEntryKeywords dirify="1"$>.php
のデータは実際には、

●メインメニュー > Sky's The Limit 編集メニュー > 設定

の『基本設定』で設定した Archive URL のデータの後ろにつけられるのです。
僕のこの Blog の場合、Archive URL は

http://blog.skys.jp/archives/
ですから、最終的に生成される URI は、
http://blog.skys.jp/archives/200405/05-1803honda_nsx.php
となるわけです。
つまり
%Y%m/%d-%H%M
のスラッシュから前の部分で、archives ディレクトリ直下に「200405」というディレクトリを作り(再構築すると自動的にできます)、その中に日付と時刻(分まで)で一意的に決まるファイルが生成される、というわけです。ハイフンは単にこれを入れた方が日付と時刻との区別がつきやすいから、ということです。

ですからもし、年別のディレクトリを作り、さらにその中に各月のディレクトリを作りたければ、

%Y/%m/%d-%H%M
として年号と月の間にもうひとつスラッシュを入れればよいわけです。
僕は年単位でエントリを一覧するということはほとんどあり得ないのではないかと思ったのと、サーバーを直接のぞいた場合、ディレクトリ構成が深すぎると扱いが面倒、ということを考え、月ごとのディレクトリのみが生成されるこの記述を選びました。

ただし、実際にはこういう設定にしてみたものの、キーワードはめんどくさいこともあり、ほとんど入れていません。あまり長いアドレスにしない方がいいような気がしています。
ですからほとんどの場合、

http://blog.skys.jp/archives/200405/05-1803.php
といった形になっています。いつのエントリか一目瞭然なこともあり、とてもわかりやすくていいと思っています。

なお、参考にさせていただいた他の記事に、<$MTArchiveDate$> の代わりに <$MTEntryDate$> を使っているものがありました。
どちらでも同じようにうまくいくようですが、Archive Template の中では <$MTArchiveDate$> を使う方がより正確なんじゃないかな、と判断して上記のような記述にしています。
が、実は両者の違いについて今ひとつわからないし、上の判断でいいのか自信がありません。どなたかご存じの方がいらっしゃればぜひご教示くださればうれしいです。

投稿者 Shin : 2004年05月05日 01:47

トラックバック

このエントリーのトラックバックURL:
http://skys.jp/mt/mt-tb.cgi/511

このリストは、次のエントリーを参照しています: Permalink の本当に“恒久的な”決め方:

» Category を日本語に、かつ順序を思い通りに表示させる方法 from Sky's The Limit
『Sky's The Limit: Permalink の本当に“恒久的な”決め方』にも書いたように、やっと Category の設定を固定することができました。... [続きを読む]

トラックバック時刻: 2004年05月05日 03:50

コメント

">Live Texas Holdem Online with Real People

投稿者 texas holdem poker : 2005年02月08日 20:02

コメントしてください




保存しますか?