技術情報提供ブログ: Movable Type

技術情報ブログトップ»

2008年01月08日

Movable Type 4.1 に関する技術情報・ドキュメント

movabletype.jp のブログでは、MT4.1 で追加される機能や、テンプレートタグに関する情報をはじめ、様々な技術情報を提供しています。

また、MT4.1 で追加される機能に関するドキュメントも順次追加しています。

Movable Type 4.1, MTOS のベータテストも現在進行中です。

また、昨年好評だった Movable Type Hack-a-thon を 2008年1月26日に開催します。

2007年07月18日

サイドバーにアイテムリストを利用したサムネイルを表示する

前回の記事ではアイテム管理機能に伴い新たに加わったテンプレートタグについてご紹介しました。今回はそれらのテンプレートタグを利用して、実際にサイドバーに最近の写真をリストを出力するサンプルをご紹介します。あわせてアイテムリストの出力に便利なテンプレートタグをご紹介します。

photos.jpg 215px*380px

テンプレート

この例では Movable Type 4 Beta 6 時点でのデフォルトテンプレートを元にサンプルを作成します。

<MTIfNonZero tag="AssetCount">
    <MTAssets type="image" lastn="10">
        <MTAssetsHeader>
    <div class="widget-assets widget">
        <h3 class="widget-header">Photos</h3>
        <div class="widget-content">
            <ul class="widget-list"></MTAssetsHeader>
                <li class="item"><a class="asset-image" href="<$MTAssetURL$>"><img src="<$MTAssetThumbnailURL height="70"$>" class="asset-img-thumb" alt="<$MTAssetLabel$>" title="<$MTAssetLabel$>" /></a></li>
            <MTAssetsFooter></ul>
        </div>
    </div>
        </MTAssetsFooter>
    </MTAssets>
</MTIfNonZero>

テンプレート内の各項目の詳細は以下のようになります。

<MTIfNonZero tag="AssetCount"></MTIfNonZero>
アイテムがまだ無い場合は囲んだ内容を表示しないようにします
<MTAssets type="image" lastn="10"></MTAssets>
Movable Type で管理されているアイテムを表示します。アトリビュート属性で種類を画像に、数を最新10件とするように設定しています
<MTAssetsHeader></MTAssetsHeader>
アイテムリストの最初に表示する項目を囲みます
<a class="asset-image" href="<$MTAssetURL$>" title="<$MTAssetLabel$>"> <img src="<$MTAssetThumbnailURL height="70"$>" class="asset-img-thumb" alt="<$MTAssetLabel$>" title="<$MTAssetLabel$>" /> </a>
オリジナルファイルへのリンクとサムネイル画像を表示する為の img 要素を出力します。サムネイル画像は 70px 辺の正方形で表示させたいので、CSS で見た目を調整しやすいように <$MTAssetThumbnailURL$> ファンクションタグに height アトリビュート属性を設定し、高さのみを決め打ちしておきます
<MTAssetsFooter></MTAssetsFooter>
アイテムリストの最後に表示する項目を囲みます

CSS

div.widget-assets div.widget-content ul.widget-list {
  overflow: auto;
  margin-right: 0;
}

li.item {
  display: table-cell;
  float: left;
  margin: 0pt 5px 8px;
  overflow: hidden;
  width: 70px;
}

CSS はリストの各項目の横幅を設定した画像の高さと同じ 70px にし、横方法に画像がはみだした場合は、はみ出した部分を非表示にするという方法をとっています。サムネイルは幅の決まったブロックの中で float プロパティを利用し通常の流れから外し左に寄せることで、一列に2個ずつ表示するようにしています。

Windows IE 6 には『float した方向と同じ方向に margin を設定すると指定値の倍の値が反映される』というバグがあります。float した要素は無条件に display: block; となり、それ以外の指定を無視しますが、display プロパティに inline 値を設定すると『margin の反映値が倍になるバグ』を回避できる為、display: inline; を設定しています。

2007年07月12日

Movable Type Hack-a-thon が開催されます

8月24日に Movable Type の開発責任者 Brad Choate が来日し、開発者カンファレンスを開催します。開発者カンファレンスでは、Movable Type 4 の魅力を開発責任者の視点からお伝えする予定です。また、Movable Type 3 から進化・追加された新しい機能についてもご紹介する予定です。

Brad Choate という名前を聞くと、Movable Type 2.x のころから利用していたユーザーのみなさんは、いくつかのプラグインをインストールする際に extlib ディレクトリに作成した bradchoate というディレクトリ名を思い出すかもしれません。彼は Movable Type 2.x の頃からたくさんの便利なプラグインを作成してきた、Movable Type デヴェロッパーです。

そんな Brad Choate が来日しているせっかくの機会ですので、シックス・アパートでは開発者カンファレンスの翌日、8月25日に Hack-a-thon を企画することにしました。

また、せっかくの機会ですのでテンプレートなどの部分でも何かおもしろい事ができないかなあと考えています。Movable Type 4 より加わった新しい機能によって追加されたテンプレートタグを利用して、おもしろいものを作ったり。テンプレートカスタマイズ方法をみんなで模索してみたり。などいろいろできそうです。

ぜひ、テンプレートタグを駆使していろんな表現をしてみたい!というデザイナのみなさんも参加を検討してみてください。会の詳細や申し込みなど、以下のブログ記事よりお願いします。

2007年07月09日

アイテム管理機能で追加された Movable Type テンプレートタグ

Movable Type 4 ではこれまで FTP ソフトなどでサーバにアクセスして削除などを行っていたファイルやフォルダの管理も、管理画面からおこなうことができるようになりました。こうしてほとんどのデータが Movable Type 4 上で管理できるようになり、先日ご紹介したバックアップ機能を利用して、環境 (データベースやサーバ) の移行などが簡単におこなえるようになりました。

今回はその新しく加わったアイテム管理機能に関する Movable Type テンプレートタグを実際の出力例等と合わせてご紹介します。Movable Type テンプレートタグの出力結果には、以下の画像をアップロードした場合のデータを利用します。

boots.jpg [500px*332px]

サンプル画像 (クリックでオリジナルサイズで表示 [500px*332px])

<MTAssets></MTAssets>

ブログのアイテム一覧のためのブロックタグです。アトリビュート (属性) を指定することで、特定のアイテムを抜き出すことや、並べ替えなどが行えます。ブロックタグ <MTENtries></MTENtries> が、ブログ記事の一覧を表示するのと同じような役割を持っています

type="file_type"
  • image
  • file

指定した形式のファイルタイプに属するアイテムのみを出力

file_ext="file_ext"
  • jpg
  • png
  • mp3
  • doc
  • e.t.c....

指定した拡張子を持つアイテムのみを出力

lastn="n"

指定した数字 n のアイテムを表示します。n は 0 より大きな数字になります

days="n"

指定した n 日数以内に追加されたアイテムをすべて表示します。days は単独で使います。他のアトリビュートと併用すると、days が無視されます

author="author name"

指定したファイル追加ユーザー author name のアイテムをすべて表示します。表示するアイテム数を指定するときは lastn を併用します

offset="n"

指定した n 個のアイテムを除外して表示します。値に 5 を指定すると、最新 5 件のアイテムを除外してリスト表示します。lastn アトリビュートと組み合わせて使います

sort_by="sort_type"
  • file_name
  • created_by
  • created_on

アイテムを並び替える対象を指定します。file_name (名前), created_by (追加ユーザー), created_on (追加日) が指定できます

sort_order="sort_order_type"
  • ascend
  • descend

アイテムを並べる順序を指定します。ascend を指定すると昇順、descend は降順になります。

<MTAsset></MTAsset>

id アトリビュート (属性) を指定し、特定の ID 番号のアイテムを出力する為のブロックタグ。

id="id"

指定した id 番号を持つアイテムを出力

<MTAssetTags></MTAssetTags>

アイテムに設定したタグを表示するためのブロックタグ。<MTEntryTags></MTEntryTags>と同じように以下のファンクションタグが利用できます

  • <$MTTagName$>
  • <$MTTagLabel$>
  • <$MTTagID$>
  • <$MTTagCount$>
  • <$MTTagRank$>
  • <$MTTagSearchLink$>

<$MTAssetID$>

アイテムの ID 番号を表示するファンクションタグ

3

<$MTAssetFileName$>

アップロードしたアイテムの名前を表示するファンクションタグ

boots.jpg

<$MTAssetURL$>

アップロードしたアイテムの URL を表示するファンクションタグ

http://localhost/mt4/my-third-blog/images/boots.jpg

<$MTAssetType$>

アイテムの種類を表示するファンクションタグ

画像

<$MTAssetMimeType$>

アイテムの MIME Type を表示するファンクションタグ

image/jpeg

<$MTAssetFilePath$>

アイテムまでの相対パスを表示するファンクションタグ

/Library/WebServer/Documents/mt4/my-third-blog/images/boots.jpg

<$MTAssetDateAdded$>

アイテムを Movable Type 4 でアップロードした日時を表示するファンクションタグ

2007年7月 6日 17:17
format="format"

指定した format で日付を出力します。例えば format="%Y-%m-%dT%H:%M:%S" とした場合のサンプルは以下のようになります

2007-07-06T17:17:55
language="language"

日付の形式を指定した language のもので出力します。例えば language="en" (英語) とした場合のサンプルは以下のようになります

July  6, 2007  5:17 PM

<$MTAssetAddedBy$>

Melody

アイテムをアップロード (追加) したユーザー名を表示するファンクションタグ

<$MTAssetProperty$>

アイテムの詳細データを表示するファンクションタグ。property アトリビュート (属性) に表示したいデータを設定します

property="file_size"

アイテムのサイズを表示する。format アトリビュートと合わせて、表示形式を選択できます。format を指定しない場合は KB 形式で表示します

240.7 KB
format="0"

単位の無いバイト数をそのまま表示する

246453
format="1"

KB でアイテムのサイズを表示する

240.7 KB
format="k"

キロバイト形式でファイルのサイズを数値のみ表示する

240.7
format="m"

メガバイト形式でアイテムのサイズを数値のみ表示する

0.2
property="image_width"

横幅を表示する (アイテムの種類が画像の場合)

500
property="image_height"

高さを表示する (アイテムの種類が画像の場合)

332
property="label"

アップロード時に設定したアイテムのラベルを表示する

ながぐつにお花
property="description"

アップロード時に設定したアイテムの概要を表示する

長靴の中からお花が!木のまわりを囲んでとってもキャワウィイィです。

<$MTAssetFileExt$>

アイテムの拡張子を表示するファンクションタグ

jpg

<$MTAssetThumbnailURL$>

アイテムの種類が画像の場合、サムネイルの URL を表示する

http://localhost/mt4/my-third-blog/assets_c/17.b983083188bc05bb753163d31fe33de7a32f3692.jpg

<$MTAssetLink$>

アイテムのオリジナルファイルへのリンクを表示するファンクションタグ

<a href="http://localhost/mt4/my-third-blog/images/boots.jpg">boots.jpg</a>

<$MTAssetThumbnailLink$>

アイテムの種類が画像の場合、オリジナルファイルへのリンク付きのサムネイルを表示する XHTML タグを表示するファンクションタグ

<a href="http://localhost/mt4/my-third-blog/images/boots.jpg"><img src="http://localhost/mt4/my-third-blog/assets_c/17.b983083188bc05bb753163d31fe33de7a32f3692.jpg" width="500" height="332"></a>
width="value"

画像のサムネイルの幅を value で出力する。width アトリビュート (属性) のみ指定の場合、高さは比率を保ち自動算出されます (以下は width="150" と指定したサンプル)

<a href="http://localhost/mt4/my-third-blog/images/boots.jpg"><img src="http://localhost/mt4/my-third-blog/assets_c/17.62a6e7e04c74969fdefd18b6e19cf50e71101d02.jpg" width="150" height="99"></a>
height="value"

画像のサムネイルの高さを value で出力する。height アトリビュート (属性) のみ指定の場合、幅は比率を保ち自動算出されます (以下は height="50" と指定したサンプル)

<a href="http://localhost/mt4/my-third-blog/images/boots.jpg"><img src="http://localhost/mt4/my-third-blog/assets_c/17.f3919cb1e62fab6bf2ff88ac996c35c48058333e.jpg" width="75" height="50"></a>
scale="scale"

画像のサムネイルを実際サイズの scale % 縮小して出力します (以下は scale="50" と指定したサンプル)

<a href="http://localhost/mt4/my-third-blog/images/boots.jpg"><img src="http://localhost/mt4/my-third-blog/assets_c/17.04a61a0bd17bb3d85491cc83d4114c4b5deebd93.jpg" width="250" height="166"></a>

今回ご紹介した Movable Type 4 の新機能、アイテム管理機能で追加されたテンプレートタグで、Movable Type 4 で管理しているアイテムを表示したり、情報を出力できるようになりました。次回は、管理しているアイテムをうまく表示するために追加されたテンプレートタグを、簡単な画像ギャラリーのサンプルを元にご紹介したいと思います。

2007年06月27日

ブログ記事の書き方もお好みで

Movable Type 4 のブログ記事投稿画面にはたくさんのご要望をいただいていた WYSIWYG エディタが搭載されました。しかし、これまでのブログ記事投稿画面が WYSIWYG エディタだけになったのではなく、これまでの『改行を変換する』といったフォーマットや、入力したテキストがそのまま反映される『(フォーマット) なし』も選択できます。さらに Markdown や Textail などの記法も追加されており、ブログ記事の投稿を手助けします。

なし
入力したテキストがそのまま反映されます。X/HTML でがっちりとブログ記事を書きたい場合などにも利用できます。
改行を変換

改行を br 要素に変換します。連続する行はひとつの p 要素でマークアップされ、空白行で区切られます。

Movable Type 4 のベータテストに参加いただき
ありがとうございます。

みなさまからのフィードバックお待ちしております。
と記述した場合、以下のように出力されます。
<p>Movable Type 4 のベータテストに参加いただき<br />
ありがとうございます。</p>

<p>みなさまからのフィードバックお待ちしております。</p>
Markdown

決められた記法にしたがいエントリーを記述するとHTMLフォーマットに変換されるフォーマットです

1. 顔を洗って
2. 歯を磨いて
3. 洋服に着替える

という風に書くと

<ol>
<li>顔を洗って</li>
<li>歯を磨いて</li>
<li>洋服に着替える</li>
</ol>

のように出力されます。このブログでも今後詳細をご紹介する予定ですが、Markdown に関するドキュメントは以下のサイトを参考にしてください。

Markdown + SmartyPants

Markdown と SmartyPants フォーマットを組み合わせたフォーマットです

Textile 2

決められた記法にしたがいエントリーを記述するとHTMLフォーマットに変換されるフォーマットです

h1. この行はh1です
p. 段落の始まり *強調*
bq. これは引用です
引用の中でも __修飾__ できます
* 赤
* 緑
* 青
これはリンクの "サンプル (タイトル)":http://example.com/ です。

のように入力すると

<h1>この行はh1です</h1>
<p>段落の始まり <strong>強調</strong></p>
<blockquote><p>これは引用です<br />
引用の中でも <i>修飾</i> できます</p></blockquote>
<ul>
<li>赤</li>
<li>緑</li>
<li>青</li>
</ul>
<p>これはリンクの <a href="http://example.com/" title="タイトル">サンプル</a> です。</p>

と出力されます。

リッチテキスト
WYSIWYG 機能を利用します。

ブログ記事投稿画面では、ブログ記事の入力フォームの右上にフォーマットを選択するセレクトメニューがあります。記事ごとにフォーマットを指定することができるので、書く内容によって変更したり。お気に入りのフォーマットがあれば、毎回さいしょにお気に入りのフォーマットを指定するように設定もできます。

mt4-entrypost-thumb.jpg [450px*205px]

ユーザーごとに設定する

管理者が新規作成するユーザーが通常利用するテキストフォーマットを設定することができます。

  1. 『システムメニュー』より『ユーザー』を選択
  2. 設定したいユーザーを一覧よりクリック
  3. ユーザーごとの設定画面に移動するので、設定項目の一覧より『テキスト形式』を設定します
mt4-textformat-user.jpg [450px*170px]

ブログごとに設定する

ユーザーが通常利用するテキストフォーマットの設定の中に『(ブログのデフォルト設定を使用)』という項目があります。これを選択した場合、適用されるテキストフォーマットの設定は、『ブログの設定』の『ブログ記事』項目で設定できます。

mt4-textformat-blog.jpg [450px*170px]

Movable Type 4 ではブログ記事の投稿に WYSIWYG エディタが追加されただけでなく、プラグインを追加しなくても様々なフォーマットから選択できるようになりました。お気に入りの記法をみつけて、ブログ記事を書く作業を楽しく、または効率化する仕組みが備わっています。

2007年06月25日

Movable Type 4 で reCAPTCHA を利用する

以下の情報は Movable Type 4 Beta での設定方法です。最新のものは以下の記事を参照ください。

CAPTCHA 認証機能も簡単設定可能にでは、Movable Type 4 に追加された CAPTCHA 認証機能についてご紹介しました。この CAPTCHA 機能を利用するには、Movable Type 4 をインストールするサーバに Image::Magick という Perl モジュールがインストールされている必要があります。

Image::Magick のインストールされていない環境でも CAPTCHA 認証機能を利用したい場合のひとつの方法として、外部サービスを利用するというものがあります。今回は、reCAPTCHA という無償で利用できる CAPTCHA 認証提供サービスを Movable Type 4 のコメント部分に導入する方法をご紹介します。

プラグインのインストール

Movable Type 4 Beta には extras フォルダが同梱されています。中には OpenID 関係のプラグインやサンプルプラグインなどがあり、編集しやすくなった Movable Type 4 のテンプレート管理・編集画面 でご紹介した Snippet プラグインのサンプルも用意しています。今回はこのサンプルプラグインの中から、reCAPTCHA を Movable Type 4 で利用する為のプラグイン。つまり、CAPTCHA プロバイダを追加するプラグインのサンプルを利用して、紹介します。

さっそくプラグインをインストールしてみましょう。ここでは、mt.cgi のあるディレクトリを [MT] と表記します。

  1. [MT]/extras/examples/plugins/reCaptcha/plugins にある、reCaptcha ディレクトリを [MT]/plugins に移動 (もしくはコピー)
  2. [MT]/extras/examples/plugins/reCaptcha/php/plugins にある init.reCaptcha.php を [MT]/php/plugins に移動 (もしくはコピー)

以上でインストールは完了です。

reCAPTCHA のアカウントを作成する

reCAPTCHA のトップページ。真ん中あたりにメニューがあります。

  1. reCAPTCHA のトップページに移動し、メニューから GET reCAPTCHA をクリックします
  2. 簡単な reCAPTCHA の紹介ページに Sign up Now! というボタンのあるページに移動しますので、Sign up Now! をクリックします
  3. ログインフォームに移動しますので、New to reCAPTCHA? となっている部分より、アカウントを作成します
  4. ユーザ名やパスワード、メールアドレスなどを入力した後、Are you a human? という問いかけとともに CAPTCHA 認証を行ってアカウントを作成します

アカウント作成後、アカウントメニューから + Add a New Site ボタンをクリックし、reCAPTCHA を導入したい Movable Type 4 がインストールされているサーバのドメインを入力します。

recaptcha-create.jpg [451px*99px]

すると、public key と pribate key という2種類のキーが発行されます。キーは2種類とも利用します (キーは reCAPTCHA にログインすれば、いつでも確認できます)

recaptcha-getkey.jpg [451px*147px]

Movable Type 4 の設定を行う

reCAPTCHA の設定を行い public, pribate 両方のキーを取得したら、先ほど reCAPTCHA プラグインをインストールした Movable Type 4 の管理画面に移動します。

管理メニューより、 プラグインを選択し、プラグインリストの中から reCAPTCHA プラグインの項目へ移動します。利用可能になっていることを確認し、設定の表示をクリックすると、public key と pribate key を入力するフォームが現れますので、両方のキーを入力し、変更を保存ボタンをクリックします。

recaptcha-mt4-setting.jpg [451px*147px]

取得したキーを入力する

同じく管理メニューから設定を選択し、コミュニケーションの設定に移動します。CAPTCHA プロバイダ設定のセレクトメニューに reCaptcha という項目があるのを確認し、選択します (Beta 4 よりこの設定はブログ単位で行えるようになる予定です)

captcha-mt4-setting.jpg [450px*90px]

reCaptcha という項目を選択

そのまま、管理画面の Movable Type ロゴの下にあるブログ選択メニューよりブログごとのコメント設定画面へ移動します。CAPTCHA 認証機能も簡単設定可能に で行ったのと同じように、認証無しコメントを受け付けるように設定します。メールアドレスの入力を必須にしたい場合は、該当の項目もチェックしてください。

anonymouscomment-mt4-setting.jpg [450px*90px]

認証無しコメントの投稿を許可

最後にテンプレートの変更を行います。モジュール Comment Form テンプレートの以下の部分を修正します。

<MTIfNonEmpty tag="MTCaptchaFields">
<MTIfCommentsAccepted><MTIfRegistrationAllowed><MTElse><$MTCaptchaFields$></MTIfRegistrationAllowed></MTIfCommentsAccepted>
<div id="comments-open-captcha">
</div>
</MTIfNonEmpty>

となっている部分を

<MTIfNonEmpty tag="MTCaptchaFields">
<div id="comments-open-captcha">
<$MTCaptchaFields$>
</div>
</MTIfNonEmpty>

のように変更します。さらに Javascript テンプレートの以下の部分を削除 (もしくはコメントアウト)します。

<MTIfNonEmpty tag="MTCaptchaFields">
captcha_timer = setInterval('delayShowCaptcha()', 1000);
</MTIfNonEmpty>

変更後、静的生成の場合は再構築して確認します。全てもしくはエントリーアーカイブのみをダイナミックパブリッシング (動的生成) するように設定している場合は、再構築の必要はありません。

設定完了後、コメントを許可しているブログ記事をチェックしてみてください。コメントフォームに reCAPTCHA が表示されているはずです。

recaptcha-in-mt4.jpg [450px*200px]

コメント認証でログインしている状況でも表示されますが、CAPTCHA 認証をおこなわなくてもコメントの投稿ができます (Beta 4 で同梱される reCAPTCHA プラグインでは、認証無しコメントの場合のみ表示されるようになる予定です)

今週はいよいよ Movable Type 4 Beta 4 がスタートします。これまでお寄せいただいたたくさんのフィードバックから見つかったバグの修正状況は、Movable Type 4.0 Beta Change Log にお礼とともに掲載させていただいています (email アドレスのアカウント名の部分などで掲載させていただいています)。ぜひ、これからの Beta 版を利用するとともにチェックしてみてください。本当にありがとうございます!

2007年06月22日

Movable Type 4 の開発と、ベータテスト、オープンソースについて

こちらの技術情報提供ブログでは、Movable Type 4 の新しい機能についてお伝えしていますが、今回はMovable Typeがどのように開発されているのかと、Movable Type 4 のベータテスト、オープンソースなど今後の方向性について書いてみたいと思います。

Movable Type はこんな風につくられています

まず意外かもしれませんが、「 Movable Type 日本語版 」 というソフトウェアは存在しません。Movable Type はソフトウェア自体が完全に国際化されていて、ソースコードも一つのブランチで管理されています。ただ、実際にインストールして利用する際には、自分の国の言語がデフォルトで選択されているほうが便利なので、コンパイルオプションとして、デフォルトの言語設定を選べるようになっています。

そして開発チームという意味でも、米国、日本という区別があるわけではなく、ワールドワイドで一つのチームとして開発をおこなっています。これにはプロダクトの企画段階も含まれていて、今後のプロダクトの方向性なども、米国、日本の区別無く、チームのメンバー全員が積極的に検討プロセスに参加することが求められます。日本に常駐しているメンバーも、ワールドワイドで共通の開発環境や社内システムにアクセスして、wiki上での企画提案、コードのレポジトリへのチェックイン、バグトラッキングシステムへの報告とバグ修正などをおこないます。 またIRCやチャット、定期的なビデオ会議などで頻繁にコミュニケーションしています。

今回の新バージョン Movable Type 4 の開発にあたっても、開発のタスクは順次、各メンバーにアサインされ、日本に常駐しているメンバーも、Movable Type 4 のコア部分の多くを開発しています。そのなかには、Movable Type を国際化する実装も含まれます。つまり、Movable Type の英語版を、日本語にローカライゼーションするわけではなく、国際化されたソフトウェアを、ワールドワイドで同時に開発しています。

しかし、世界中のチームメンバーで共有されている最大のモノが何かと言えば、それは間違いなく「さらに素晴らしいブログ・ソフトを作りたい」という気持ちです。現在のMovable Type の開発チームに参加しているメンバーは、ほぼ全員が個人ブロガーでもあります。「より便利なツールを使いたい」、「自分が理想とするブログツールをつくりたい」、各メンバーが並々ならぬ思い入れを持っていることもあり、たった一つの文言を決めるだけでも、「そこに、そこまでこだわりますか!」と思わずツッコミたくなるほどアツい議論が交わされることもあります。Movable Type 4 は、まさにそのような議論の中で形作られているソフトウェアなのです。

ベータ・リリースについて

このようなグローバルな開発チーム体制は、迅速な開発と、フィードバックの素早い反映に活かされており、Movable Type のベータ版公開も米国と日本で同時期に開始することが可能となりました。日本の皆様からいただきましたベータ版へのフィードバックも、バグ修正などで対応できるのもは、毎週のベータリリースに盛り込めるように、開発タスクにリアルタイムに反映されています。特に今週リリースされた最新ベータ版では、日本語化ファイルも含まれていますので、ぜひ積極的にベータ・テストにご参加いただければと思います!

Movable Type 4 ベータリリースについて

バグのなかでも、特に日本語環境や、特定のレンタルサーバーの環境などでおきる問題などは、コードの品質を高める上で非常に参考になりますのでレポートをお待ちしております。また、バグ報告以外のフィードバックや機能要望なども、こちらはすぐに反映することは難しいかもしれませんが、今後の開発の参考とさせていただいています。

オープンソース・プロジェクトについて

現在ベータテスト中の Movable Type 4 は、基本アーキテクチャやユーザーインターフェースが新たに刷新されたメジャー・バージョンアップになります。このような大きなバージョンアップを、ベンチャーという限られたリソースの中で実現するには、チームメンバー個々人の積極的なコミットが必要になります。それぞれのブログへの想いをモチベーションに、まずはこのMT4を、プロダクトとして正式にリリースすることが最大の目標となっていますが、同時にもう一つのプロジェクトが現在準備中です。それがオープンソース版のMovable Typeの公開です。

Movable Type のオープンソース版は、これまでMovable Typeとは異なる領域への、新たな挑戦となります。まず、誤解のないように定義しますと、Movable Type 4 と Movable Type オープンソースは、別のプロダクトとなります。もちろん多くの部分は共有されることになるかと思いますが、それぞれのプロダクトは、異なる目標をもっています。

Movable Type 4 は、すでにベータ版に搭載されているように、ブログ記事以外のWEBページ全体を管理する機能や、複数ブログのアグリゲーション、高度なユーザ管理など、様々なビジネスシーンやエンタープライズ用途をサポートするために、大幅な機能強化を実現しています。今後のベータや、あるいは4.0リリース後の継続的なバージョンアップによって、これらの機能をさらに拡充していきます。また、そのなかの大きな柱として、これまでMovable Typeをビジネス・シーンで活用いただいているProNet を始めとする、多くのWEBディベロッパー様が、より効率的に自社ソリューションを開発できるように、機能パックなどの新たなシステムを導入していきます。

Movable Type を導入することで、新しいビジネスやコミュニケーションが生まれる、あるいはこれまで大きな手間がかかっていた企業サイトの管理の手間を大幅に改善する、などなど、商用プロダクトとしての価値を認めていただけるように、開発の手を緩めることはありません。また、すべてのブロガーの皆様に最先端のツールを使っていただきたいという、これまでと変わらないポリシーのもと、個人無償ライセンスを提供させていただくことで、個人ブロガーをサポートしていきます。なぜなら、Movable Typeの開発メンバーが、それをもっとも必要としているブロガーでもあるからです。

Movable Type は、ブログの可能性を信じる多くの人々によって支えられてきたソフトウェアです。沢山のフィードバック、多様なプラグイン、多くのブログや書籍で公開されているインストールやカスタマイズの解説、無償で提供されているブログのデザインなど、Movable Type を囲むエコシステムこそが、Movable Type を Movable Type たらしめているエネルギー源です。

その中で、Movable Typeのオープンソース版は、新たな領域へのチャレンジとなります。Movable Type のオープンソース版ではGPLライセンスが採用される予定です。GPLライセンスのもとでは、すべての開発成果は、参加する全員でシェアされます。Movable Type のオープンソース版の詳細や、具体的な公開次期(3Qを予定)はまだ決定していませんが、オープンソース版の方向性に関しても、コミュニティーの皆様のフィードバックを受けつつ検討していきたいと思います。現在のMovable Type の開発チームと同じく、そこでは国境も言語も、グループや部署も関係ありません。よりよいブログ・ソフトウェアをつくりあげたいというモチベーションに共感していただける開発者の皆様の参加をお待ちしています。

movabletype.org: Welcome to MTOS: the Movable Type Open Source Project

また、この技術情報提供ブログでは、MT4の進捗状況や、新機能の紹介など、Movable Type に関する様々な情報をアップデートしていく予定です。今後ともご期待ください。

技術情報提供ブログの RSS Feed技術情報提供ブログの RSS Feed

2007年06月21日

インポートの強化だけじゃない!バックアップ機能も追加された Movable Type 4

Movable Type 4 では、ブログ記事データインポートの強化。環境のバックアップ、復元という新機能が追加されました。

ブログ記事データのインポート

まずブログ記事データのインポートですが、これまでの Movable Type 形式のフォーマットでのインポートだけでなく、Wordpress eXtended RSS 形式のファイルもインポートできるようになりました。

  1. ブログ管理画面のダッシュボード、もしくはフッタの部分にあるショートカットメニューからツールを選択
  2. ツール画面のコンテンツナビゲーションよりインポートを選択

インポート元セレクトメニューをクリックすると、Wordpress eXtended RSS 形式が選択できるようになっています。

バックアップ機能

ブログ記事データのエクスポートだけでなく、ブログの環境、もしくは Movable Type 全体のバックアップができるようになりました。ブログ記事のデータはもちろん、ファイル管理機能で管理しているファイルや、設定されたタグなど、環境の再構築に必要なデータをごっそりとバックアップできます

ブログごとのバックアップを行うには、ブログ管理画面のダッシュボード、もしくはフッタの部分にあるショートカットメニューからツールを選択し、さらにツール画面のコンテンツナビゲーションよりバックアップを選択します。

また、Movable Type 全体のバックアップを行うには、管理メニューからツールを選択し、コンテンツメニューよりバックアップを選択します。

Movable Type 4 Beta 3 現在、それぞれの背景の色が違うので、どちらのバックアップをおこなうのか、認識できるようになっています。また、Movable Type 全体のバックアップ画面では、バックアップするブログを選択することもできるようになっています。各メニューの詳細を見てみましょう。

バックアップを選択全体の (バックアップ画面のみ)

バックアップするブログを選択できます。初期値はすべてのブログとなります

フォーマットの種類

必要な Perl モジュールがインストールされている場合、.zip または .tar.gz フォーマットで圧縮して出力することができます。必要な perl モジュールは以下になります。

  • Archive::Tar
  • Archive::Zip
  • IO::Compress::Gzip
  • IO::Uncompress::Gunzip
ファイルごとのサイズ

たくさんのブログやブログ記事、ファイルを管理している環境をバックアップするとなると、そのバックアップファイルの容量も大きくなります。その場合、バックアップファイルの上限を設定し、分割できるオプションです。

バックアップファイルは作成後ダウンロードされます。

バックアップファイルから復元

ブログ、もしくは Movable Type 全体のバックアップファイルを利用して環境の復元を行うには、管理メニューからツールを選択し、コンテンツメニューから復元を選択します。

復元するバックアップファイルを選択し (圧縮したものもそのまま) 復元ボタンをクリックします。

ブログのサイトパスと URL を設定します。変更があれば新しいパスと URL を。同じ場合はその内容を入力して次へボタンをクリックします。

この数ステップで、環境の再構築や移動が可能になります。定期的にバックアップを用意しておくと、大切なデータを消してしまったりした時なども、すぐ復旧できる仕組みが備わっています。

2007年06月19日

CAPTCHA 認証機能も簡単設定可能に

Movable Type 4 では標準機能として CAPTCHA 認証が利用できるようになっています。 CAPTCHA 認証の設定をしておけば、コメントポリシーの設定で Anonymous Comments つまり投稿者の特定できない可能性のあるコメントの投稿を許可するように設定している場合、表示された画像の文字列を入力しなければコメントが投稿できないような仕組みを提供することができます。

CAPTCHA 認証フォーム

CAPTCHA 認証の設定

CAPTCHA 認証の設定は Admin (管理) メニューの Setting (設定) にある、Feedback (コミュニケーション) の設定画面で可能です。

CAPTCHA 認証の設定

インストール直後では、CAPTCHA を提供は Movable Type default のみが選択可能です。こちらもプラグインでプロバイダを追加できるような仕組みになっています。

Anonymous Comments を許可する

安心かつ手軽にコメントができるようになった Movable Type 4 でもご紹介しましたが、Movable Type 4 ではコメントするユーザの認証等の設定をブログごとの Preferences (設定) の Blog Setting (ブログの設定) にある Comments (コメント) 項目で設定可能です。

コメントポリシーの設定

Commenting Policy (コメントポリシー) の設定で Anonymous Comments のチェックボックスをチェックし、必要があれば E-mail アドレスの入力を必須にするオプションを選択します。

以上の設定後でブログ全体を再構築すれば、エントリーアーカイブページのエントリー投稿ボタン付近に CAPTCHA 認証のフォームが追加されます。

2007年06月18日

強化された Movable Type 4 のテンプレートタグ

Movable Type のカスタマイズといえばテンプレート。テンプレートといえばテンプレートタグです。Movable Type 4 ではテンプレートタグも強化されました。何度かにわけてそのポイントをご紹介します。まずは基本的なテンプレートのサンプルを見てみましょう。

<MTEntries lastn="1">
<div class="section" id="entry-<$MTEntryID$>">
  <h2><$MTEntryTitle$></h2>
  <$MTEntryBody remove_html="1"$>
</div>
</MTEntries>

サンプルは (X)HTML とテンプレートタグを組み合わせたものです。出力結果を見てみましょう。

<div class="section" id="entry-1">
  <h2>I just finished installing Movable Type 4!</h4>
  <p>Welcome to my new blog powered by Movable Type 4. This is the first post on my blog and was created for me automatically when I finished the installation process. But that is ok, because I will soon be creating posts of my own!</p>
</div>

<MT...></MT...> となっている部分は構築されたページでは表示されず、<$MT...$> となっている部分には対応した情報が、それ以外の部分はそのまま出力されます。つまり Movable Type のテンプレートは HTML だけでなく、様々なドキュメント形式で利用できるということです。

Movable Type 4 では、<MT...></MT...> となっているタグをブロックタグ<$MT...$> となっているタグをファンクションタグ (機能タグ)と呼んでいます。

<MT...></MT...> ブロックタグ
括られたコンテンツをひとつのまとまりとして扱います。
<$MT...$> ファンクションタグ (機能タグ)
指定されたされた値を出力します ($は必須ではありませんが、ブロックタグと区別する為に付けておくと解りやすいです)。また、remove_html="1" のような属性を付けることにより、出力結果を操作できます。

大文字と小文字を区別しません

Movable Type 4 のテンプレートタグは、大文字と小文字を区別をしません。つまり <MTEntries><MtEntries> また <mtentries> は同じ Movable Type タグとして認識されます。<MTSubCategories> のようなタグもどの文字が大文字になるのか迷わずに書るようになりました。

Movable Type タグ内で区切り文字が利用可能に

ちいさな変更ですが、Movable Type 4 のテンプレートタグは XML の表記のような区切り文字が利用できます。つまり <MT:Entries><mt:entries> のような記述が可能になります。

テンプレートタグについては他にも様々な強化が行われています。今後も紹介していきますので、ぜひチェックしてください。

2007年06月15日

Movable Type 4 でダイナミックパブリッシングを使用する

Movable Type は静的生成とダイナミックパブリッシング (動的生成) の両方をサポートしています。まずは両方の特徴を見てみましょう。

静的生成

あらかじめ HTML などのファイルを用意しておき、リクエストが多くなってもサーバの負荷がそれほど大きくならないというメリットがあります。しかし、エントリーの作成時やテンプレートの修正時に再構築が必要になりますので、エントリーの数が多くなるとその分再構築に時間がかかってしまいます。

ダイナミックパブリッシング (動的生成)

閲覧者がページを見る時に動的にページを作成します。エントリー作成時やテンプレート編集後、コメントやトラックバック受信時に再構築の必要がなくなりますので、処理が早くなります。

しかしリクエストが多くなるとサーバへの負荷が大きくなったり、コンテンツの複雑なページの場合、処理が遅くなる場合もあります。

両方をサポートしているので、例えば頻繁にリクエストのある RSS フィードやインデックスページ、変更の少ない CSS ファイルは静的生成にし、他は全て動的生成といったようにテンプレートごとに選択して各々のメリットを活かした使用方法もブログごとに可能です。

ダイナミックパブリッシングを利用する

Movable Type 4 よりダイナミックパブリッシングの設定がより簡単になりました。設定方法を見てみましょう。

  1. Blog Setting 画面に移動し、左のメニューから Publishing を選択
  2. Publishing Options メニューの Dynamic Publishing という項目でダイナミックパブリッシングを利用する範囲を選択します
出力オプション

各メニューの詳細は以下のようになります。

Build all templates statically

すべてのテンプレートを静的生成します (初期状態)

Build only Archive Templates dynamically

アーカイブテンプレートとして生成されるページを動的生成します。

Set each template's Build Option dynamically

選択するとテンプレート各々の編集画面に Build Option メニューが追加され、静的生成か動的生成を選択できます。

build option メニュー
Build all templates dynamically

すべてのテンプレートを動的生成します。Movable Type 4 より追加された機能です。

Build all templates statically (全て静的生成する) 以外を選択したばあい、さらに Enable Dynamic Cache と Enable Conditional Retrieval オプションが表示されます。一度表示したページに変更がなければ、ブラウザのキャッシュを利用してページを表示できるようになりますので、表示が早く、サーバへの負荷を軽減できます。

これらを設定し、保存・再構築します。するとこれまで静的生成されていたファイルは index.xml.static といったファイル名でバックアップされます (特に必要なければ削除してかまいません)。また、以下のファイルが作成されます。

  • template_c ディレクトリと
  • .htaccess ファイル
  • mtview.php ファイル

オプションで Dynamic Cache を利用する設定をしている場合、cache という名前のディレクトリも作成されますので確認してください。あとはページがきちんと表示されるか確認してみましょう。

2007年06月14日

もっと簡単になった Movable Type 4 のインストール

インストールといえば、以前にこのブログでも Movable Type 3.33 より追加された対話式のウィザードによるインストール方法をご紹介しました。Movable Type 4 のインストールウィザードでは、Movable Type のセットアップから最初のブログ作成までのステップまでを行えるようになり、より簡単になりました。前回同様、実際にインストール作業の手順を解説します。

今回の例ではデータベースに MySQL を利用しますので、あらかじめデータベースに接続する為に必要な情報を用意しておきます。

  • データベースのあるサーバのホスト名
  • 利用するデータベースの名前
  • データベースのユーザー名とパスワード

手順を実行した模様のムービーを用意しました

Movable Type のインストールウィザード

クリックでムービーファイルにアクセス (.mov形式 - 約1.5MB)

  1. サーバーに Movable Type をアップロード、
  2. .cgi ファイル等のパーミッションを設定後、ブラウザでインストールしたディレクトリにアクセス (mt.cgi の場所が http://foo.bar/baz/mt.cgi の場合は http://foo.bar/baz/ にアクセス)
  3. ログインリンクをクリック
    1. ようこそ!Movable Type へ!ということで、Begin (始める) ボタンをクリック
    2. インストールに必要な最低限の perl モジュールが存在するかの確認エラーが無ければ Continue (進む) ボタンをクリック
    3. 利用するデータベースを選択します。今回は MySQL を利用しますのでセレクトメニューから選択
    4. データベースに接続する為に必要な情報を入力し、Test Connection (接続テスト) ボタンをクリックします。接続できたら Continue (進む) ボタンをクリック
    5. メールの設定 (ほとんどの場合、sendmail を選択すれば問題ありません。必要な場合、テストメールの送信で確認を行ってください。)
    6. これでインストールの準備が整いました。ここで mt-config.cgi の書き込みができない等のエラーが出た場合は、ディレクトリのパーミッションをチェックしてみてください。問題無ければ Continue (進む) ボタンをクリック
    7. admin ユーザのアカウントを作成します。各々の情報を入力して Continue (進む) ボタンをクリック
    8. 最初のブログのキホン情報を入力します。MT3.x ではインストール後に設定画面で入力したブログの基本情報です。あとは Finish Install ボタンをクリック
  4. インストールが完了したら、さっそく Movable Type にログインします。

手順や、実際に作業したムービーをご覧いただいてもわかるように、セットアップから最初のブログ作成までが解りやすく簡単になりました。

2007年06月13日

コメントの返信も簡単に表示も解りやすく

本日 Movable Type 4 Beta 2 のダウンロードを開始しました。ぜひ試してみてください。

今回は便利になったコメントの返信機能の紹介と新しく登場した MT タグの紹介、その MT タグを利用したカスタマイズについてお話します。

comment-reply.jpgMovable Type 4 では閲覧者から寄せられたコメントの返信を管理画面上で行えるようになりました。ブログごとのコメント管理画面のコメント一覧でリストされたコメントにマウスオーバーすると、返信するリンクが現れます。これをクリックするとコメント返信ウィンドウが表示されます。

コメント返信画面

コメント管理ページの背景が暗くなり、コメント投稿画面が表示される

このウィンドウ内でコメントへの返信が可能です。返信後コメント管理ページに戻ると、返信したコメントとコメントに返信があることが表示されいます。

返信後のコメント一覧

返信コメントがリストに加わり返信数も表示される

Movable Type 4 ではさらにコメントが返信コメントなのか、コメントに返信があるかどうかなどを判別する MT タグも追加されています。サンプルを交えてご紹介します。

<MTIfCommentParent></MTIfCommentParent>
コメントが子 (返信) コメントかどうか。つまりコメントに親コメントがあるかどうかを判断する条件コンテナタグ
<MTIfCommentReplies></MTIfCommentReplies>
コメントが親コメントかかどうか。つまりコメントに子 (返信) コメントがあるかどうかを判断する条件コンテナタグ
<MTCommentParent></MTCommentParent>
コメントが子 (返信) コメントである場合、親コメントとなるコメントの情報を出力する為のコンテナ・タグ。
<MTCommentReplies></MTCommentReplies>
コメントが親コメントである場合、子 (返信) コメントとなるコメントの情報を出力する為のコンテナ・タグ
<$MTCommentRepliesRecurse$>
<MTCommentReplies></MTCommentReplies> でコンテナされた内容を再帰的に表示します

と、やはり文字だけで解説してもピンとこないので、動作を確認するテンプレートをつくってみました。例はさきほど返信のテストをしたコメントを利用します。宣言をしていないので、HTML でも無いテンプレートですが、以下の内容を Entry テンプレートとしてリビルドしてみました。 (<$MTCommentRepliesRecurse$> は実践例で使用します)

<MTComments>
<div style="margin: 1em; border: 1px solid black;">
<$MTCommentBody$>
<p><MTIfCommentParent>このコメントは返信コメントだから</MTIfCommentParent>
<MTIfCommentReplies>このコメントには返信があるから</MTIfCommentReplies>
<MTCommentReplies>返信のコメントの情報が出せるよ</MTCommentReplies>
<MTCommentParent>親コメントの情報が出せるよ</MTCommentParent></p>
</div>
</MTComments>

表示結果は以下のようになります。

<div style="border: 1px solid black; margin: 1em;">
<p>こんんにちはこんにちは!</p>
<p>このコメントには返信があるから返信のコメントの情報が出せるよ</p>
</div>

<div style="border: 1px solid black; margin: 1em;">
<p>コメントありがとう!</p>
<p>このコメントは返信コメントだから親コメントの情報が出せるよ</p>
</div>

これで各々のタグの意味が解りやすくなりました。コメントが親なのか子なのかの判断もできるので、例えば返信コメントだけに返信だと分類する属性をつけることもできます。CSS でスタイル定義すればさらに返信だと解りやすくできそうですね。

<div<MTIfCommentParent> class="reply"</MTIfCommentParent>>
...
</div>

返信コメントが入れ子になるようなサンプル

タグの仕様を理解したところで、返信コメントが入れ子構造になっていくサンプルを作成してみました。サンプルということで、投稿者などの情報は表示せず、コメントの本文のみとしています。また class 属性による分類もどのコメントが返信なのかわかりやすいように設定しています。

<MTComments>
<MTIfCommentParent><MTElse><div class="root">
<$MTComment$>
<MTCommentReplies><div class="reply">
<$MTCommentBody$>
<$MTCommentRepliesRecurse$>
</div></MTCommentReplies>
</div></MTElse></MTIfCommentParent>
</MTComments>

MTComments コンテナタグは Entry アーカイブで利用する場合はそのエントリーに対するコメントの一覧を表示するためのコンテナタグです。

MTComments でコンテナした内容は を利用してまず『コメントが子 (返信) コメントかどうか』の判別をします。そして 条件分岐タグで『コメントが親だった場合』に表示する内容をコンテナしています。つまり、ルートとして表示されるコメントは、返信コメントではないコメントだけにするということになります。この部分だけを抜き出してみると以下のようになります。

<MTIfCommentParent>返信コメントの場合はこの中の内容を<MTElse>返信コメントではない場合はこの中の内容を</MTElse></MTIfCommentParent>

ルートコメントの内容 <$MTComment$> の後には、<MTCommentReplies></MTCommentReplies> コンテナタグを利用して『返信がある場合のみ、返信コメントの情報』を表示するようにします。

返信コメントに返信があった場合も入れ子構造になっていくように <$MTCommentRepliesRecurse$> を利用して <MTCommentReplies></MTCommentReplies> でコンテナした内容を繰り返すようにしています。

出力結果の例は以下のようになります。

<div class="comment">
  <p>コメント1</p>
  <div class="reply">
    <p>コメント1に対するコメント1</p>
    <div class="reply">
      <p>コメント1に対するコメント1に対するコメント1</p>
    </div>
  </div>
  <div class="reply">
    <p>コメント1に対するコメント2</p>
  </div>
</div>
<div class="comment">
  <p>コメント2</p>
</div>

入れ子になる様子を解りやすくするために div 要素を利用しましたが、リスト要素でもコメントツリーを表現できたりできそうです。例の出力結果にあわせて、以下のような CSS を用意すると、入れ子になっている構造がわかりやすくなりますね。

div.reply {
  margin-left: 1.5em;
}

今回ご紹介したコメント機能周辺の新しいタグ以外にも、便利な機能やさまざまな表現を可能にするタグが追加されています。ぜひ Movable Type 4 Beta をお試しください。フィードバックもお待ちしております。

2007年06月12日

Movable Type 4 のテンプレートチェック機能で作業効率アップ!

Movable Type 4 Beta へのフィードバック、本当にありがとうございます。

前回の記事ではテンプレート編集画面の特徴や編集に便利なスニペット機能について触れました。Movable Type 4 の最初の Beta バージョンが発表されてはや一週間。今後のベータバージョンで登場する機能の中から、テンプレートチェック機能をご紹介します。

テンプレートを再構築またはダイナミック・パブリッシングの場合はページを表示したとき、</MTEntries> 終了タグを記述し忘れていたばかりにエラーが表示され、また編集画面に戻ってテンプレートの中から修正箇所を探す。という事がありました。またテンプレートタグの記述ミスが原因で、好みの結果が得られずテンプレートの修正箇所を探すということもありました。

HTML や CSS であれば、うまくいかない場合、Validation サービスなどを利用して、記述ミスが無いかチェックすることで修正箇所発見につなげることができます。しかし Movable Type タグとなればなかなかそうはいきません。

Movable Type 4 では、テンプレート保存時にテンプレートをチェックし、以下のリストにある問題のいずれかがあればそれがテンプレートの何行目にあるのかとあわせてエラーを表示しますので、ミスがあっても修正箇所へ簡単にアクセスできます。

  • コンテナタグの開始または終了タグの記述漏れ
  • MT タグの記述ミス

実際のエラー画面は以下のようになります。

タグ間違いのエラー表示

MT タグの記述ミスエラーの場合 (クリックで拡大)

終了タグの記述漏れのエラー表示

コンテナタグの終了タグ記述漏れの場合 (クリックで拡大)

Movable Type 4 は現在ベータバージョンを公開中です。ぜひ実際に触れてみてください。フィードバックもお待ちしております。

2007年06月11日

編集しやすくなった Movable Type 4 のテンプレート管理・編集画面

Movable Type のカスタマイズといえばテンプレート。Movable Type 4 では管理画面のインターフェイスも刷新され、より使いやすくなりました。今回はその中からテンプレート管理・編集画面についてお話しします。

テンプレート管理画面

Movable Type 4 からはテンプレートの種類を切り替えるメニューは画面の左側に移動しました。これまでと同じ分類の他に Widgets が追加されています。私自身がグッときた機能としては、テンプレート一覧の各項目が、キーボードの KJ で上下に移動、X で選択・選択解除できるようになっているところ。Vim などのエディタを利用している人にとってはおなじみのキーバインドですね。

テンプレート管理画面

デザインももちろん新しくなり、とても見やすくなりました。カスタマイズするとなればいちばんよく見る画面でもあるのでアイコンなどの細かい部分にちょっとした気遣いが見られると嬉しくなります。

テンプレート編集画面

がっちりとした本格的な編集はまだまだテキストエディタに軍配が上がりますが、Movable Type 4 のテンプレート編集画面は、基本的な編集作業や、お気に入りのエディタが使えない状況であってもしっかり作業を手助けしてくれます。エントリー編集画面と同じように、自動保存エキストエリアはマウスで広げることができますし、デザインもすっきりしました。

テンプレート編集画面

すっきりとして編集しやすくなった編集画面 (クリックで拡大)

使用しているテンプレートモジュールの編集画面にもすばやくアクセス
モジュールリストの追加イメージ

右側の Includes and Widgets の項目も必見です。この項目では、編集中のテンプレートで、どのテンプレートモジュールが仕様されているかの一覧だけでなく、そのテンプレートモジュールの編集画面へのリンクも用意されています。Movable Type 4 のデフォルトテンプレートにだけ対応しているというわけではなありません。

<$MTInclude module="xxx"$>

という風にテンプレートモジュールを読み込んでいればオリジナルのテンプレートでも、仕様中のテンプレートモジュールを一覧できます。たくさんのテンプレートで共通利用できる部分をテンプレートモジュールとして管理しても、テンプレートモジュール各々の編集画面にも素早くアクセスできるので、とっても便利です。

良く使うものは Snippet (スニペット) として

テンプレートの編集時に良く利用するものは Snippet として登録しておくことができます。登録した Snippet はテンプレート編集画面のテンプレートタイトル下、Insert... となっているセレクトメニューで選択・挿入できます。

スニペットを選択 スニペットを挿入

リストから選択したスニペットが挿入される

テンプレートで良く利用するコードやテキストを スニペットに追加してみましょう。スニペットは以下のようなフォーマットで一組となります。

include_module:
  label: MTInclude module
  content: <$MTInclude module=""$>

CSS のように読みやすく簡単なフォーマットですね。インデントはタブ文字ではなく、半角スペースで行います。各項目の詳細も書いておきます。

スニペットの名前:
  label: セレクトメニューに表示する名前
  content: 挿入する内容

いくつもある場合もまとめて書けます。Movable Type のテンプレートタグやアトリビュートだけでなく、日付フォーマットや (X)HTML の要素や micoroformats などを登録しておくと便利です。

include_module:
  label: MTInclude module
  content: <$MTInclude module=""$>
isodate:
  label: MTEntryDate (ISO 8601)
  content: <$MTEntryDate format="%Y-%m-%dT%H:%M:%S"$><$MTBlogTimezone$>

あとはこの塊がテンプレート編集で追加できるスニペットである事を書きます。

template_snippets:
  include_module:
    label: MTInclude module
    content: <$MTInclude module=""$>
  isodate:
    label: MTEntryDate (ISO 8601)
    content: <$MTEntryDate format="%Y-%m-%dT%H:%M:%S"$><$MTBlogTimezone$>

こうしてできたファイルは YAML ファイルといいます。YAML とは構造データの表現フォーマット。インデントを利用してデータの構造を表現しています。詳細は以下などを参考にしてください。

YAML ファイルができあがったら、config.yaml というファイル名で保存します。わかりやすいように Template_Snippet なんて名前のフォルダを作成して、その中に config.yaml を入れておきましょう。

ここまでの作業が終わったら、スニペットを追加したい Movable Type 4 の plugins フォルダにさきほどの Template_Snippet フォルダをアップロードします。え?これってプラグインなの?と思うかもしれませんが、実はそうなんです。Movable Type 4 ではスニペットを追加するような事をするくらいのプラグインなら YAML ファイルだけでプラグインが書けます。ちょっとドキドキしちゃいますね。

アップロードが終わったら、テンプレートの編集画面に戻って Insert... となっているセレクトメニューを選択してみましょう。先ほど作成したプラグインが読み込まれ、スニペットが追加されています。

追加したスニペットを選択 追加したスニペットを挿入

プラグインで追加したスニペットが使えるようになった

今回は Movable Type 4 のテンプレートの管理・編集画面についてご紹介しました。ただ新しいインターフェイスになっただけでなく、テンプレートの編集を助けてくれる便利な機能もたくさん追加されています。ぜひ Movable Type 4 Beta でお試しください。フィードバックもお待ち致しております。

2007年06月08日

安心かつ手軽にコメントができるようになった Movable Type 4

Movable Type 4 Beta がリリースされました。ベータテスターとして参加してくださっているみなさん。フィードバックありがとうございます。

私もさっそくローカル環境にインストールして新機能などに触れてみています。このブログでも気になるポイントをお伝えしたいと思います。

Movable Type 4 では OpenID によるコメント認証をサポートしたので、コメントを投稿するユーザの認証に TypeKey だけでなく、アカウントや URL を OpenID として利用できるサービスの情報なども利用できるようになりました。主なメリットとしては以下のようなものがあります。

  • 入力の手間を省く事ができる
  • オープンなネットワークを利用して安心・手軽にコメントできる
  • OpenID や対応したサービスのアカウントがあれば、新たに登録しなくてもよい

今回はより安心・手軽にコメントできるようになった、コメント認証機能をご紹介します。

Movable Type Native
コメントするブログを管理している Movable Type 4 のアカウントで認証します。複数人で Movable Type 4 を管理している場合、そのユーザは自分のアカウントでサイン・インしてコメントできます。
OpenID

既に OpenID を持っている場合、その ID でサイン・インしてコメントできます。OpenID については、以下の記事がとっても解りやすいです。

LiveJournal

LiveJournal のアカウントは OpenID として利用できるので、アカウント名でサイン・インできます。

Vox

Vox のアカウント名 (http://xxx.vox.com/ の xxx の部分)も OpenID として利用できます。

コメント認証の設定

これらの認証のオン・オフは、ブログごとの設定で可能になります。

  1. Movable Type 4 にログインしたら、Config メニューから Blog Setting を選択します
  2. 今度は画面左側のメニューから Comments を選択します
  3. Commenting Policy という項目で、認証に利用するアカウントを選んでチェックし保存。初めての設定であれば全体の再構築も行っておきます (既にいづれかのコメント認証を利用する設定を行っている場合、全体の再構築の必要はありません)
Commenting Policy の設定画面

設定はこれで完了です。

コメントしてみる

設定が済んだら実際にコメントしてみましょう。事前に投稿してあった記事のページに移動し、コメントの項目を見てみると、サイン・インできるようになっています。

サイン・イン可能な状態
  1. Sign in をクリックします
  2. どのアカウントで認証するか、を右側のメニューから選びクリックします
Vox のアカウントを利用

Vox のアカウントを利用する

例えば私、上ノ郷谷の Vox アカウントは nipeke ですので、メニューから Vox を選択し、表示された入力フォームに nipeke と入力し、Sign in ボタンをクリックします。

少し前まで同じブラウザで Vox を利用していたなど、Vox にログインしている状況である場合は、サイン・インが完了し、コメント入力に移動します。もし、そうでない場合は、Vox にログインするフォームが表示されますので、Vox にログインするとコメント入力に移動します。サイン・インしたアカウント名が表示されるとともに、コメント入力フォームが現れるでしょう。

Vox ログインフォーム

名前やメールアドレスといった入力項目が無いのは、利用するアカウントで設定されたものが自動的に使われるからです。

ログイン後のコメント投稿フォーム

2006年10月04日

mt-wizard.cgiでMovable Typeを簡単にインストール

こんにちは。上ノ郷谷(かみのごうや)です。

Movable Type 3.3には、対話式ウィザードを提供するmt-wizard.cgi というプログラムが追加されました。Movable Type 3.3のマニュアルにはmt-wizard.cgiを使ったインストール方法は記述されていませんが、mt-wizard.cgiを使えば今までより簡単にMovable Typeをインストールできるようになります。

これまでは、サーバーに Movable Type をアップロードしたあと、mt-config.cgi-original を mt-config.cgi にリネームし、ややこしい内容をテキストエディタ等で編集して、再度ブラウザでmt-config.cgiにアクセスする、といった手順を踏むのが標準的なインストール方法でした。これに対してmt-wizard.cgi を利用すれば、Movable Type をサーバーにアップロードして、ブラウザで mt-wizard.cgi にアクセスし、必要な項目を入力すれば、簡単にインストールを行うことができます。

mt-wizard.cgi を利用した Movable Type 3.33-ja のインストール

mt-wizard.cgi を利用した Movable Type 3.33-ja のインストールを Movable Type は既にダウンロードされ、必要な Perl モジュールが揃った環境、使用するデータベースは、SQLiteと想定してまとめてみます。実際に mt-wizard.cgi にアクセスしてから、最初にログインするまでのムービーも用意しておりますので、実際の手順をご確認しつつご覧ください。

mt-wizard.cgi を利用したインストールムービー

画像をクリックすると、.wmv 形式の動画がご覧になれます。.mov 形式の画像は以下のリンクをクリックしてください。

mt-install.jpg

  1. サーバーに Movable Type をアップロード
  2. .cgi のファイルのパーミッションを 755 に変更
  3. mt.cgi のあるディレクトリ内に db という名前のディレクトリを作成
  4. 作成した db ディレクトリのパーミッションを 777 に変更
  5. ブラウザで mt-wizard.cgi で設定
    1. インストールされていない perl モジュールの確認
    2. 使用するデータベースの選択 (今回は SQLite もしくは、SQLite2 を選択)
    3. 先ほど作成した db ディレクトリの後に、mt.db といった名前のデータベースファイルの名前を入力
    4. db ディレクトリへの接続の確認 (うまくいかない場合は、db ディレクトリのパーミッションを確認し、指定をフルパス /home/user/mt/db/mt.db での指定に変更してみてください)
    5. メールの設定 (ほとんどの場合、sendmail を選択すれば問題ありません。必要な場合、テストメールの送信で確認を行ってください。)
    6. 作成された mt-config.cgi の内容を確認後、『インストールボタン』をクリック
  6. admin ユーザーの情報を入力し、『インストールを続行』ボタンをクリック
  7. インストール完了後、ログインして終了

mt-wizard.cgi の登場で Movable Type のインストールはより簡単になりました。現在は最低限の設定を行えるようになっていますが、ユーザーの皆様からのご意見でより良いものにしていきたいと考えています。ぜひ、Movable Type フィードバックフォームより、ご意見をお送りください。どうぞよろしくお願いします。

2006年09月29日

出力するコンテンツを状況によって変更する

Movable Type タグの中には、MTIf といったかたちではじまるものがあります。これらのタグは条件判定をし、条件に一致した場合のみコンテナ(囲まれた)されたコンテンツを表示する。という機能を持ちます。また、条件判定コンテナタグの中では、MTElse コンテナタグが利用可能です。MTElse コンテナタグは、条件判定コンテナタグが判定する条件に一致しない場合のみ、コンテナされたコンテンツを表示します。簡単な例を図に示します。

mtif.png

休日の予定を設定することを考えてみてください。天気予報が晴れだった場合は、ピクニックに、でも雨だった場合には映画鑑賞にといったような設定をすることがあると思います。このような条件によって答えを判断する条件分岐を行えるタグが MTIf といったかたちではじまるタグです。

条件判定を行う対象はタグによって様々です。中でも MTIfNonEmpty というタグは、ユーザーが入力できるフィールドを対象に条件判定が可能になるので、Movable Type の可能性を広げます。

MTIfNonEmpty

MTIfNonEmpty とは、tag アトリビュートで指定したタグになにか値がある場合のみ、タグで囲まれたコンテンツを表示するというタグです。実際にテンプレートには以下のようにマークアップされます。

<MTIfNonEmpty tag="値の有る無しを設定できる変数タグ">
  tagアトリビュートで指定したタグに値がある時のみ、表示するコンテンツ
</MTIfNonEmpty>

このままでは、tag アトリビュートで指定したタグに値が無い場合は、何も表示されません。ですので、MTElse タグと併用し tag アトリビュートで指定したタグに値が無い場合にも、なにかしらのコンテンツを表示するようにします。

<MTIfNonEmpty tag="値の有る無しを設定できる変数タグ">
  tagアトリビュートで指定したタグに値がある時のみ表示するコンテンツ
  <MTElse>tagアトリビュートで指定したタグに値が無い時のみ表示するコンテンツ</MTElse>
</MTIfNonEmpty>

この MTIfNonEmpty タグをうまく利用すると、様々なケースに対応できるようになります。MTIfNonEmpty タグは様々なタグに値があるのか無いのかを判別して働くので、ほぼすべてのタグが対象です。いくつか利用例を示してみます。

エントリーにカテゴリーが設定されている場合はカテゴリー名を表示し、設定されていない場合は、『カテゴリーなし』と表示する

MTEntries コンテナタグ内で利用できる MTEntryCategory 変数タグに値がある(エントリーにカテゴリーが設定されている)場合は、MTEntryCategory の値(メインカテゴリー名)を返します。しかし、MTEntryCategory 変数タグに値が無い(エントリーにカテゴリーが設定されていない)場合は、MTElse コンテナタグに内包された『カテゴリーなし』というテキストが表示されます。

<MTEntries>
  <MTIfNonEmpty tag="MTEntryCategory">
    <$MTEntryCategory$>
    <MTElse>カテゴリーなし</MTElse>
  </MTIfNonEmpty>
</MTEntries>
最新10件のエントリーの中で、任意のエントリーにだけ new マークをつける

MTEntries コンテナタグで利用できる lastn アトリビュートで 10 と指定し、最新10件のエントリーを表示させます。エントリーごとに持っているキーワード MTEntryKeywords を利用します。もし、キーワードに何か一文字でも文字が入っていたら、<li class="new"> を表示。しかし何も無い場合は <li> を表示するように設定しています。キーワードに何か入っている場合だけ、<li class="new"> になるので、スタイルシートと組み合わせて指定した記事(キーワードに何か入力したエントリー)のみ『new』アイコンを表示させることができます。

    <MTEntries lastn="10"> <MTIfNonEmpty tag="MTEntryKeywords"><li class="new"><MTElse><li></MTElse></MTIfNonEmpty><a href="<$MTEntryPermalink$>" title="<$MTEntryTitle$>"><$MTEntryTitle$></a></li> </MTEntries></ul>

また、定義する CSS のサンプルは以下のようになります。

li.new {
  padding-left: 20px;
  background: transparent url(new-icon.gif) no-repeat left center;
}

今回の例では、MTEntryKeywords の値を利用しましたが、MTEntryExcerpt でも同様の事が可能です。MTIfNonEmpty で値の有無を条件判定する対象がエントリーの概要の場合、ブログの基本設定で『概要にいれる文字数』を『0』に設定する必要があります。これはエントリー投稿時に概要を空白にしていても、エントリーの本文から指定文字数自動挿入される為です。

2006年09月04日

アーカイブマッピング機能を利用して、一件のエントリーで様々なファイルを生成する

こんにちは、上ノ郷谷(かみのごうや)です。

archive001.jpg前回の『Six Apart - 技術情報提供ブログ: Movable Type で StyleCatcher に対応したスタイルライブラリコンテンツを作成する』の『アーカイブテンプレートを利用する』でもご紹介しましたが、Movable Type のアーカイブマッピング機能を利用すれば、各アーカイブに複数のテンプレートを設定することができ、一つのエントリーで同じコンテンツの様々なファイルの生成が簡単にできます。例えば、一件は普通の HTML(.html)ファイルに、もう一件はエントリー本文の内容のみが書かれたテキストファイル(.txt) として構築することや、モバイル向けのページを PC 向けのページと同時に生成する事も可能です。今回はその例含めて、アーカイブマッピングをもう少し詳しく解説してみたいと思います。

アーカイブマッピングの設定はブログ単位で行えます。なお、この記事は Movable Type 3.3x をベースに書いています。

『設定 (詳細モード) > 公開』のページ下部に設定項目が用意されています。各々は以下の図のような設定を行えます。

archive-setting.jpg

一件のエントリーで同内容のページを3種作成する

アーカイブテンプレートを追加し、各々を個別エントリーアーカイブに関連づけ、任意のマッピングを設定すれば一件のエントリーの投稿で生成されるページを増やすことができます。例えば、一件は普通の HTML ファイルに、もう一件はエントリー本文の内容のみが書かれたテキストファイル。として構築することも可能です。サンプルを示してみます。

新規テンプレートの作成

個別エントリーアーカイブテンプレートはデフォルトで用意されており、そのテンプレートを利用すれば、デフォルトの個別エントリーアーカイブアーカイブページは生成されます。しかし、エントリー本文の内容のみを表示する.txtファイルを生成するテンプレートは存在しないため、新規作成する必要があります。内容はエントリー本文の内容のみですので、以下のようになります。テンプレートの名前はテンプレートを判別するものですので、任意の名前を設定してください。ここでは『エントリー本文テキスト』とします。

<$MTEntryBody$>
アーカイブマッピングの設定

設定から『公開』タブを選択し、公開設定画面に移動します。アーカイブマッピングの設定は、画面の一番下のセクションで設定可能です。『マッピングを新規作成』をクリックし、以下のように設定します。

アーカイブの種類
エントリー
テンプレート
エントリー本文テキスト

つづいてスタイルシートアーカイブテンプレートで生成したファイルの出力フォーマットを設定します。出力フォーマットの変更は、セレクトメニューから『カスタマイズする』を選択し、テキストフィールドに直接記入します。今回は、通常の個別エントリーアーカイブと同じ場所に.txtファイルとして生成するように設定しますので、以下のように出力フォーマットを設定します。ここで利用する、アーカイブ・ファイル名定義の詳細はマニュアルにも記載されておりますので、是非参考にしてください。

%y/%m/%F.txt
mapping-setting.jpg

この例では、個別エントリーアーカイブを使用しましたが、以上のようにすると、アーカイブごとに複数のテンプレートを設定できることが解ります。

同じアーカイブの種類に複数のアーカイブがあっても、『優先』とチェックされているアーカイブが『固定リンク』で表示されるファイルになりますので、各々のアーカイブのデフォルトな利用法は保持しつつ、様々なファイルの出力ができます。先日ご紹介したSix Apart - 技術情報提供ブログ: Movable Type で StyleCatcher に対応したスタイルライブラリコンテンツを作成するでは、エントリーの追記に入力した CSS ファイルの内容を個別エントリーアーカイブごとに .css ファイルとして生成するように設定しましたし、追加するテンプレートの内容をシンプルにすることで、携帯電話に対応したコンテンツを別に持つ事も可能です。

archive002.jpgこのように Movable Type ではテンプレートとアーカイブマッピングを利用して、様々なファイルを任意の場所に、生成することができます。今回は一件のエントリーのエントリー本文(<$MTEntryBody$>)を利用して2種類のアーカイブを出力しましたが、マッピングするアーカイブテンプレートの内容を変更すれば、エントリー本文(<$MTEntryBody$>)を利用した PC 用 html ファイル。エントリー追記(<$MTEntryMore$>)を利用した .txt ファイル、抜粋(概要)(<$MTEntryExcerpt$>) の内容を利用した携帯向けコンテンツという風に、一件のエントリーから様々なコンテンツをもつ、様々な形式のファイルを生成することもできます。

2006年08月07日

Movable Type で StyleCatcher に対応したスタイルライブラリコンテンツを作成する

こんにちは、上ノ郷谷(かみのごうや)です。

前回の記事では、StyleCatcher に対応したスタイルライブラリを構築するのに必要なファイルや情報を中心に紹介しました。今回は前回紹介した構築方法を元に、StyleCatcher に対応したスタイルライブラリを Movable Type で構築してみます。Movable Type を利用して構築することで、ただのスタイルライブラリページではなく、テーマスタイルを紹介とスタイルライブラリを兼ねたサイトの構築が可能になります。また、エントリーの投稿と、アーカイブテンプレート、アーカイブマッピングをうまく利用し、テーマスタイル紹介記事のエントリーの投稿がスタイルライブラリへのテーマ追加になるような仕組みの構築も簡単です。実際にどのようになるかを理解していただくために、動作サンプルムービーを作成いたしました。必要に応じて、ご参照ください。

利用する主な MT タグ

今回のカスタマイズで利用する主な Movable Type タグは以下のようになります。

  • <MTArchiveList></MTArchiveList>
  • <MTEntries></MTEntries>
  • <$MTEntryBasename$>
  • <$MTEntryKeywords$>
  • <$MTEntryMore$>

利用する主なテンプレート

  • メインページテンプレート
  • スタイルシートアーカイブテンプレート (新規作成)

エントリー投稿の仕組み

テーマスタイル紹介記事のエントリーの投稿がスタイルライブラリへのテーマ追加になるような仕組みを構築する為に、どのフィールドにどういった内容を入力するかといった、エントリーを投稿する際のルールを作成します。テンプレートの参考になるだけでなく、後にこのルールをまとめたガイドラインを作成しておくのも良いですね。

エントリーのタイトル
テーマの名前を入力
エントリーの本文
thumbnail.gif を表示する為の img 要素を含むテーマ紹介コンテンツ
追記
スタイルシートファイルの内容
概要
テーマの概要
キーワード
テーマのディレクトリ名を (入力例: path/)
エントリー・ファイル名
エントリーのファイル名, CSS のファイル名 (拡張子除く 例: theme_nema)
ファイルのアップロード機能
テーマのサムネイルに利用する画像や CSS ファイルで利用する画像は、ファイルのアップロード機能を利用してアップロードします。アップロード先は、キーワードに入力するテーマのディレクトリ名(例: path/)と同じです。

アーカイブテンプレートを利用する

エントリー投稿の仕組みでも書きましたが、 CSS ファイルの内容は追記のフィールドに入力します。ですので、テーマで利用する CSS ファイルの作成には新たにテンプレートを用意します。また、.css というファイル形式にする為にアーカイブマッピング機能を利用します。

アーカイブテンプレートを追加する

スタイルシートアーカイブテンプレートの作成追記に入力した CSS ファイルの内容をテーマで利用する CSS ファイルとして書き出す為に利用するテンプレートを用意します。テンプレートはアーカイブテンプレートの中に作成します。テンプレート管理画面に移動し、アーカイブタブをクリックします。アーカイブテンプレート一覧になったら『新規テンプレートの作成』をクリックし、テンプレート編集画面に移動します。テンプレートの内容は以下のようになります。

テンプレート名
スタイルシートアーカイブテンプレート
このテンプレートにリンクするファイル
空白
テンプレートの内容
<$MTEntryMore convert_breaks="0"$>

エントリーの追記を値として返す MTEntryMore タグに改行フォーマットを無効にするよう、値が 0 (off) の convert_breaks アトリビュートを設定しています。これで、追記のフィールドに入力した CSS ファイルの内容は改行フォーマットが適用されず、入力したそのままの状態で作成されます。

アーカイブマッピングの設定

作成したテンプレートをエントリーアーカイブ (1エントリーに1つのページを作成する) の一つとして利用できるよう、アーカイブマッピングを設定します。あわせて、エントリーの追記に入力した CSS を内容に持つスタイルシートを書き出すため、書き出し先や出力フォーマットも設定します。このような作業の前にエントリー投稿の仕組みなどをまとめておくと、とても便利です。

アーカイブマッピング設定

まずスタイルシートアーカイブテンプレートをエントリーアーカイブとして書き出すように設定します。設定から『公開』タブを選択し、公開設定画面に移動します。アーカイブマッピングの設定は、画面の一番下のセクションで設定可能です。『マッピングを新規作成』をクリックし、以下のように設定します。

アーカイブの種類
エントリー
テンプレート
スタイルシートアーカイブ

つづいてスタイルシートアーカイブテンプレートで生成したファイルの出力フォーマットを設定します。エントリー投稿の仕組みでも書きましたが、スタイルシートアーカイブで構築するファイルは、各テーマごとのディレクトリに .css ファイルで書き出す必要があります。また書き出し先のパスは、これも作成したまとめを参照し、キーワードフィールドを利用して書き出すので、出力フォーマットは以下のようになります。出力フォーマットの変更は、セレクトメニューから『カスタマイズする』を選択し、テキストフィールドに直接記入します。

出力フォーマット設定

<$MTEntryKeywords$><$MTEntryBasename$>.css

これで、1エントリーにつき、2つのエントリーアーカイブを各々違う場所に違うファイル形式で出力することができました。Movable Type では、アーカイブマッピングを利用してこのように各々違う役割のアーカイブを持たせることができます。今回のように追記の内容のみを表示するもの、同じように本文のみを表示するもの、様々なアーカイブを出力させることができます。

同じアーカイブの種類に複数のアーカイブがあっても、『優先』とチェックされているアーカイブが『固定リンク』で表示されるファイルになりますので、各々のアーカイブのデフォルトな利用法は保持しつつ、様々なファイルの出力ができます。アーカイブごとに複数のテンプレートを持つという事に関しては、また別の記事でまとめてみたいと思います。

CSS ファイルの URL を明示する為の link 要素を追加する

スタイルライブラリとして読み込むページの HTML ファイルには テーマの CSS ファイルを示す link 要素をエントリー投稿時に構築するようにします。

スタイルライブラリとして読み込むページとは、StyleCatcher の管理画面でテーマ/リポジトリへの URLに入力する URL の参照するページの事です。今回は一つのブログでテーマスタイルの紹介と、スタイルライブラリを兼ねたページを作成するので、作成するブログのトップページに link 要素を追加します。変更するテンプレートは、メインページテンプレートです。

テンプレートに追加するのは、MTArchiveList を利用して、全てのエントリーを表示するようにし、CSS ファイルの URL は作成したまとめで設定したようにキーワードの値を反映するようにしています。<$MTBlogURL$> 以下は、さきほど設定した出力フォーマットと同じです。

<MTArchiveList>
<MTEntries>
  <link rel="theme" type="text/x-theme" href="<$MTBlogURL$><$MTEntryKeywords$><$MTEntryBasename$>.css" />
</MTEntries>
</MTArchiveList>

サンプルテンプレート

今回変更・追加した2点のテンプレートサンプルを用意致しました。参考にしてください。

サンプルメインページテンプレート
サンプルスタイルシートアーカイブテンプレート (新規作成)

2006年07月20日

Movable Type をページ作成管理ツールとして利用する

こんにちは、上ノ郷谷(かみのごうや)です。

今日は、Movable Type を使って、ウェブサイト上のページを簡単に管理する方法をご紹介します。Movable Typeを簡易なCMS(コンテンツ管理システム)として利用するひとつの例です。

Movable Type はテンプレートを利用してコンテンツ(ウェブページ)を生成します。この仕組みをうまく利用して、ユーザーがブログにエントリー投稿するのと同じ感覚で、指定のウェブページを作成することができるようになります。ユーザーはHTMLを意識せずに、任意のウェブページを作成できます。

投稿したエントリーは、エントリーアーカイブとしてMovable Type上で保管されますので、今回の仕組みはエントリーアーカイブテンプレートを利用して実装します。

本来エントリーアーカイブは、コメント一覧やコメント投稿機能などが埋め込んでありますが、エントリーアーカイブテンプレートから、これらの部分を削除してしまえば、単なるウェブページと変わりありません。ユーザーは、Movable Typeのエントリー投稿画面(通常ブログを書く画面)を利用して、コンテンツの入力や修正が可能になります。

仕様をまとめる

こういった利用法の場合、仕様をまとめる作業を事前に行うと後々の作業を効率化できますので、まずエントリー投稿時の仕様をまとめます。また、生成するページの書き出し先を自由にカスタマイズできるようにアーカイブマッピング (公開設定) の仕様もまとめます。

エントリー投稿時の仕様
フィールド 入力する値
エントリー本文 作成するページのタイトル
ページの内容 作成するページのコンテンツ
追記 空白
概要 ページの概要 (あれば)
キーワード ページの書き出し先のパス (必要時のみ)
エントリー・ファイル名 エントリーのファイル名 (拡張子除く)
アーカイブマッピング (公開設定) の仕様

作成するページを特定のディレクトリに書き出したい場合、エントリー投稿の仕様にまとめたようにキーワードのフィールドにパス名を入力します。ですので、エントリーアーカイブの書き出し先をその仕様にあわせたものに設定する必要が有ります。

<$MTEntryKeywords$><$MTEntryBaseName$>.html

追加するパスがあった場合 (キーワードが空白ではない場合) のみ、キーワードのフィールドで設定したパスを表示し、そのパスに書き出すようにしています。

作成した仕様を元にテンプレートを作成する

作成した仕様を元に作成するエントリーアーカイブテンプレートのサンプルは以下のようになります。

<?xml version="1.0" encoding="<$MTPublishCharset$>"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
  <head profile="http://www.w3.org/2003/g/data-view">
    <meta http-equiv="Content-Type" content="text/html; charset=<$MTPublishCharset$>" />
    <meta http-equiv="Content-Style-Type" content="text/css" />
    <meta http-equiv="Content-Script-Type" content="text/javascript" />
    <MTIfNonEmpty tag="MTEntryExcerpt">
      <meta name="description" content="<$MTEntryExcerpt encode_html="1"$>" />
    </MTIfNonEmpty>
    <title><$MTEntryTitle$></title>
    <link rel="home" title="" href="/" />
    <link rel="stylesheet" media="screen" href="<$MTBlogURL$>styles-site.css" type="text/css" />
    <link rev="made" href="mailto:mail@foo.com" title="お問い合わせメールアドレス" />
  </head>
  <body>
    <div class="section" id="container">
      <h1><$MTBlogName$> - <$MTEntryTitle$></h1>
      <div class="section" id="content">
        <$MTEntryBody$>
      </div>
    </div>
    <address>Copyright &copy; <$MTBlogName$>.</address>
  </body>
</html>

仕様を明示する

ブログの概要には、どんな目的のブログなのか書いておくと、管理が非常に楽になります。また、エントリーのルールは、各ブログ管理画面のスタートページ(トップページからブログの名前をクリックして最初に表示されるページ)に書いておくと投稿者が迷う事なく、更新を行えます。

メインのブログリストに
ブログリストにブログの役割を明示
ブログの概略ページに
ブログの概略ページにエントリールールを明示

2006年06月19日

StyleCatcher 用のスタイルライブラリを作成する

こんにちは。Movable Type の製品企画を担当する上ノ郷谷(かみのごうや)です。今回は Movable Type 3.3 より標準機能として同梱される StyleCatcher 機能で利用できるスタイルライブラリ(テーマファイルを格納している公開テーマスタイルリポジトリ)の公開方法をまとめます。

  1. スタイルライブラリの作成に必要なファイル
  2. 公開テーマのディレクトリ構成
  3. スタイルシートにスタイルの情報を追加する
  4. 作成したテーマのプレビュー画像を用意する
  5. スタイルライブラリページの作成

スタイルライブラリの作成に必要なファイル

スタイルライブラリを作成するにあたり、必要なファイルは以下になります。

公開テーマのディレクトリ構成

公開するテーマは以下のようなディレクトリ構成で配布する必要があります。

テーマディレクトリサンプルひとつのテーマは一つのディレクトリにまとめられ、テーマで使用される(CSS ファイル内で指定される)画像は、テーマプレビューの画像ファイルとともに、テーマディレクトリの中に含まれます。

テーマで使用される画像の形式は指定されません。またファイル名も統一する必要はありません。CSS ファイルと同じディレクトリに格納されるので、基本的に指定のサンプルは以下のようになります (background-image の場合)。

background-image: url(theme-style-image01.gif);

スタイルシートにスタイルの情報を追加する

テーマのスタイルシートファイルの最初に以下のサンプルを参考にコメントを追加します。このコメントが作成したライブラリを読み込み、スタイルを参照した時に表示される項目になります。

/*
name: Beckett
designer: Lilia Ahner
designer_url: http://www.lilia.com
developer: Lilia Ahner
developer_url: Lilia Ahner
*/

各項目の概要の基本的な項目は以下のようになります。

name
スタイルテーマの名前
designer
(StyleCatcher でテーマの詳細を表示した際に Author として表示されます)
テーマデザイナーの名前
designer_url
テーマデザイナーを示す URL
developer
テーマ開発者の名前(デザイナーと同じ場合があるので、その場合は記入の必要はありません)
developer_url
テーマ開発者を示す URL

作成したテーマのプレビュー画像を用意する

thumbnail-image.pngStyleCatcher プラグインでテーマを参照した際に表示されるプレビュー画像を用意します。画像は2種類必要で、ルールに基づいた作成が必要になります。各々の概要は以下のようになります。どの画像が StyleCatcher 管理画面でどのように使用されるかは画像を参照してください。 (クリックで拡大します)

thumbnail.gif (サンプル画像)
スタイルライブラリを読み込んだ際に表示されるテーマ一覧、これまでキャッチしたテーマ一覧に使用される小さいサイズのテーマプレビュー画像です。gif 形式で、サイズは 120px*84px である必要があります。また、ファイル名も thumbnail.gif でなければなりません。
thumbnail-large.gif (サンプル画像)
テーマ一覧から、ひとつのテーマを選択し詳細を表示した際に使用される大きいサイズのテーマプレビュー画像です。.gif 形式で、サイズは 280px*210px である必要があります。また、ファイル名は thumbnail-large.gif でなければなりません。

スタイルライブラリページの作成

スタイルシートとプレビュー用画像の準備ができたら、今度はスタイルライブラリとなるページの XHTMLファイルを作成します。ページの内容は自由に作成していただいて問題ありませんが、link 要素でテーマスタイルシートの URL を指定する必要があります。以下にサンプルを示します。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
  <head profile="http://www.w3.org/2003/g/data-view">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="description" content="StyleCatcher プラグインで利用できるスタイルライブラリ" />
    <meta name="dc.title" content="Style Library" />
    <title>Style Library</title>
    <link rev="made" href="mailto:admin@mail.address" title="管理者 メールアドレス" />
    <link rel="theme" type="text/x-theme" href="http://www.sixapart.com/movabletype/styles/bold_palettes/theme-beckett/theme-beckett.css" />
    <link rel="theme" type="text/x-theme" href="http://www.sixapart.com/movabletype/styles/classic/theme-earth/theme-earth.css" />
    <link rel="theme" type="text/x-theme" href="http://www.sixapart.com/movabletype/styles/classic/theme-green_grass/theme-green_grass.css" />
  </head>
  <body>
    ...
  </body>
</html>

サンプルのような HTML を用意し、link 要素で各テーマの CSS ファイルの URL へリンクします。この作業はスタイルライブラリを公開するにあたり、とても重要になります。link 要素一つではエラーになってしまう可能性がありますので、複数用意する事をお勧めします。ページの内容(<body></body> にコンテナされるコンテンツ)は無くても基本的にスタイルライブラリとしては機能します。

スタイルライブラリは、Movable Type を利用して構築することもできます。次回の記事では実際に Movable Type を利用して スタイルライブラリコンテンツを構築してみたいと思います。

技術情報ブログトップ»

このページのトップへ