MTのコンテキストについての考察と解説

MovableTypeのテンプレートを書くにあたってまず理解すべきなのは、MTタグやテンプレートの種類よりも、まずコンテキストなのではないかと思います。CSSによるレイアウトを学ぶにあたって、ブロックモデルを理解すべきであるのと一緒です。というわけで、このコンテキストについて解説しようと試みます。

コンテキストとは

直訳すれば「文脈」です。ここではテンプレートにおける前後の文脈のことをそう呼びます。自然言語における人間の会話や文章にも前後の文脈というものが存在しますから、会話を例に挙げます。

Aさん:今日は天気がいいですね。
→「今日の天気」のコンテキスト

MTのテンプレートでは現在のコンテキストに適合しないMTタグを使おうとすると、エラーが出るようになっています。

コンテキストに適合しないタグを使おうとするとエラーが出る

人間の会話において、文脈に沿っていない話題や発言をすると会話が成立しなくなるのと同じです。

Aさん:今日は天気がいいですね。
→「今日の天気」のコンテキスト
Bさん:はい、僕はハンバーグが好きです。
→コンテキストに沿っていないのでエラー

コンテキストの種類と、テンプレートとの関係

MTのコンテキストは大別すると「ブログ記事」・「ブログ記事リスト(アーカイブ)」・「ウェブページ」の3つです。そしてこれはテンプレート一覧の「アーカイブテンプレート」の種類でもあります。これらのテンプレートは、最初から該当のコンテキストを持っており、「ブログ記事」アーカイブは最初から「ブログ記事」コンテキストを持っています。

「アーカイブテンプレート」の一覧の例

「ブログ記事リスト」では「日付別」・「ユーザー別」・「カテゴリ別」という、大別して3つの分類を「アーカイブマッピング」で与えることができます。このテンプレートに該当するコンテキストが与えられるだけでなく、この指定を元にページファイルが生成されます。

例えば「カテゴリ」アーカイブマッピングを選択したテンプレートでは、最初から「ブログ記事リスト」コンテキストと、「カテゴリ」コンテキストを持ちます。

コンテキストの指定方法

任意のコンテキストを作り出すために使用するのがMTEntriesや、MTArchivesMTPagesなどのブロックタグです。これらのタグで囲んだ部分はそのタグが表すコンテキストが設定され、指定の回数分繰り返されます。例えば以下の例は、「最新5件の記事のタイトル」を出力します。

<mt:Entries lastn="5">
<p><$mt:EntryTitle$></p>
</mt:Entries>

<mt:Entries>に囲まれた部分が5回繰り返されますが、その内容は「ブログ記事」コンテキストの最新5件であることを<mt:Entries lastn="5">が表しています。

このように、任意のコンテキストを作り出すMTタグは数多く存在しており、その全てはブロックタグです。ブロックタグで囲んだ内容はそのタグの属するコンテキストになる、と覚えておけばよいでしょう。

コンテキストは入れ子にできる

ブロックタグを入れ子にしたり、特定のアーカイブテンプレート内にブロックタグを記述することによって、コンテキストを入れ子にすることができます。入れ子にしたコンテキストでは、特に指定をしない限り、親のコンテキスト内で対象を絞り込んだものとなります。

例えば以下は記事ごとに、記事本文に続いてコメント一覧を表示するための記述です。

<mt:Entries lastn="5">
<div class="entry">
<h3><$mt:EntryTitle$></h3>
<div class="entry-body">
<$mt:EntryBody$>
</div>
<div class="comments">
<h4>記事へのコメント</h4>
<ul>
<mt:Comments>
<li>
<$mt:CommentAuthor$>さんのコメント:<br />
<$mt:CommentBody$>
</li>
</mt:Comments>
</ul>
</div>
</div>
</mt:Entries>

<mt:Entries><mt:Comments>を入れ子にすることによって、「特定のエントリーへのコメント」に絞り込んで出力させています。なお、特にコンテキストの指定がない状態で<mt:Comments>タグを使用すると、そのブログに対して投稿されたコメント全てが対象となります。

このエントリーの内容はMovableType4(現時点での最新製品版:Version 4.261)におけるものです。まもなく出荷となるMovableType5では「ウェブサイト」という概念が追加されるそうですし、コンテキストの種類には追加や修正があるかもしれません。

alty partyに参加させていただきました。

final alty party THE FINAL @東京ドームホテルというイベントに参加させていただきました。(天下一カウボーイ大会の2次会的なイベントだそうです)その様子を写真でお送りします。
iPhoneで撮った写真ですが、手ブレがひどくて見づらい写真ばかりになってしまいました・・・。

alty party その1
開会の様子

alty party その2
スペシャルゲスト、ハドソンの中本氏と、アノドス森氏の対談

alty party その3
対談中のスライド。テーマは独立について。

alty party その4
プレゼントの抽選会

alty party その5
当たるとスクリーンがこんな画面に。森氏がにんじんを持ってます。

alty party その6
いろいろ食べました。飲みました。(写真はもうデザートですが)
ホテルのお食事はどれも美味しいものばかりでした。大満足・・・。

alty party その7
プレゼント抽選会の様子。当選者はもれなく、かわいいカウガール二人に縄で縛ってもらえます。うわああああ、なんというサービスwww

alty party その8
清水氏、閉会の挨拶。

alty party その9
それを聞く人々。会場、広いです・・・。

alty party その10
こちらもスペシャルゲストの漫画家、平沢たかゆき氏。平沢氏の書いたオリジナル漫画が、参加者全員のお土産に・・・!内容については・・・ごにょごにょ。

alty party その11
閉会後、天下一カウボーイ大会参加者の皆様で記念撮影をされていました。

alty party その12
帰宅後、お土産をチェック。「残暑見舞」とあります。

alty party その13
開けると、Bio_100%オリジナルビールが2本。

alty party その14
どうやら「青いビール」みたいです。また「色モノ」ですかw

alty party その15
こんなところにもBioくんが!芸が細かいです。

天下一カウボーイ大会参加者のためのイベントということで、私は畑違いの人間でありいわゆる「アウェー」な感じでしたが、主催者、参加者の皆様ともに「自分の仕事で世界を変える」という情熱を持った方々であることがひしひしと伝わってきました。
alty partyはアノドス森氏のポケットマネーで開催されているという衝撃のイベントですが、今回が最後だそうです。これだけのパーティをポケットマネーでやってしまうという太っ腹さ、粋狂さにはただただ感心します(冗談ではなく)。ここまで「振り切れてる」ことは、普通はできません・・・。

Continue reading

web creators 2009年9月号にちょっぴり載りました

7月末に発売となっていたweb creators 2009年9月号の「WEB DESIGN WORKS – Pick Up! 今月のPickUpサイト」というコーナーにちょっぴり載りました(遅)。

会社で、とあるNPO法人様のサイトをコーディングさせていただいたので、そのことで掲載いただきました。写真にもちょっぴり載っていますが、なんか私だけ与太ってるな、と思いました(謎)

「JavaScript&Ajax プロが教える“本当の使い方”」の一部を執筆しました

7月31日に発売となったMdNの「JavaScript&Ajax プロが教える“本当の使い方”」という本の一部を執筆しました。

JavaScript・JavaScriptライブラリ・Ajaxの基本説明と、作例+解説ネタが27ネタという構成となっています。27ネタのうち8ネタを自分が書いています。(表紙などのクレジット表記には名前は出ていません)

こういった書籍の執筆は初めてということもあり原稿自体を書くのにも骨が折れましたが、それよりも作例を作るのに骨が折れました。
画面デザインを作成する作業は久しぶりにやりましたよ・・・数年前、業務としてデザインを少しばかりさせてもらった経験が生きました。それから、作例で使っているおそまつな写真は、自分でデジカメで撮ったものです。ちょくちょく撮り貯めておいた写真が、期せずして役に立った形です。何がどこで役に立つか、わかったもんじゃないですね。。

初級・中級者向けのJavaScript・Ajax本ということで、「初心者にもわかりやすく」と心がけてに書いたつもりですが、いやはや、どう評価していただけることか。
結構内容ぎっしりの本なので、よかったら書店などで手に取ってみてください。

JavaScript & Ajax プロが教える“本当の使い方”
MdN編集部
MdN
売り上げランキング: 46663

コマンドプロンプトでディレクトリを作る

新しい案件をやる際に、ディレクトリマップを作ってそれに沿ってローカルにディレクトリを作って行こう、という時のお話。これをエクスプローラーで「新規作成→フォルダ」としてちくちく作っていくのは非常にだるいので、コマンドでできないか調べて、やってみました。

職場のマシンはWindowsXPなので、コマンドプロンプトでこれをやる方法。
まず「スタートメニュー→ファイル名を指定して実行」でcmdと入力してコマンドプロンプトを立ち上げます。

作業ディレクトリに移動はcdコマンド。

C:\Documents and Settings\UserName>cd folderPath\folderPath

上位の階層に移動する場合は

c:\documents and settings\username>cd ../../

とかやればいいです。

もし異なるドライブに移動する場合(以下の例はcドライブ→dドライブ)

c:\documents and settings\username>d:

ドライブ名:)と入力するだけで、そのドライブのルートに移動できます。
ディレクトリの区切り文字はlinux系と違ってバックスラッシュじゃないと行けないのね。独自路線を突っ走るwindows・・・さすがです(謎)

ディレクトリの作成はmdコマンド。
以下はdドライブの直下にフォルダ「hoge」を作る例。

d:\>md hoge

以上です。