技術情報提供ブログ

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点のテンプレートサンプルを用意致しました。参考にしてください。

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

トラックバック

トラックバック URL

コメント

コメント投稿

本エントリーに関係のないご質問はサポートにお願いします。また、Movable Type に関するフィードバックは専用フォームよりお願い致します。

コメント投稿フォーム:

このページのトップへ