5章 テンプレート
WebRelease において、テンプレートとはページを生成するときに使用する雛形のことです。WebRelease では、すべてのページはテンプレートから生成されます。従って、ページを作成するためには、まずテンプレートを作成する必要があります。(テンプレートを使わずにページを作成する方法はありません)
多くの場合、サイトを構成するページ群は、何種類かのパターンに分類できます。例えば、「プレスリリース」とか、「製品情報」など、それぞれが一定のスタイルを持ったページ群の集まりとしてサイトが構成されている場合が多いのではないでしょうか。
ページのパターンごとにテンプレートを用意し、ページを作成する時には、適切なテンプレートを選び、テンプレートの定義に従って必要な情報を入力してゆく方法を採れば、ページのスタイルの統一を保ちながら、効率的にページを作成できるようになります。
テンプレートは下記の各部分から構成されています。テンプレート作成の作業は、これらの各部分について適切に定義を与えることで完了します。
文書型定義は、そのテンプレートで扱うページの情報の構造を定義します。1種類のテンプレートからバリエーションのあるたくさんのページを作り出すためには、テンプレートに「ページごとに違った情報を埋め込む部分」を用意しておき、ページを作成する時に、この埋め込み部分のデータを入力します。このページごとに入力する情報の構造を定めるのが、テンプレートの文書型定義です。
WebRelease は、この文書型定義からページ編集画面の入力項目を自動生成します。また、この文書型定義に従って入力されたページのコンテンツデータに対して、展開(後述)でマークアップを与えることでページを生成します。
文書型定義は、要素を組み合わせて定義します。要素には、「イメージ」、「複数行の文字列」、「目次」、「添付ファイル」、「WYSIWYGエディタ」などのタイプが用意されています。埋め込みたい情報の種類や入力方法に応じて要素のタイプを選んで組み合わせ、文書型を定義します。文書定義中にはいくつでも要素を使用することができます。
文書型を構成する各要素には、その文書型内でユニークになるように名前を付けます。展開の中では要素の名前を指定することで生成されるページにその要素の値を埋め込みます。
展開は、WebRelease がページを生成するときに使う HTML などのマークアップを記述する部分です。
この HTML 記述の中には WebRelease 独自の拡張タグを記述することができます。また、展開内の任意の位置に先述の要素の埋め込みを指定することができます。
さらに、展開内では WebRelease 独自の関数とオブジェクトに対するメソッド呼び出しが行なえます。
一般に展開は HTML で記述しますが、WebRelease は展開の記述は HTML でなければならないというわけではありません。HTML ではないフォーマットのファイル、たとえば、RSS フィードやスタイルシートなどを展開で生成することが可能です。
テンプレートにはメソッドを定義することができます。引数をもつメソッドも定義することができます。メソッドは、展開の中から呼び出すことができます。メソッドを定義しているテンプレートの展開からだけでなく、他のテンプレートやコンポーネントの展開やメソッドからも呼び出して使用することができます。
メソッドの典型的な利用方法は、展開の一部分を作成するサブルーチンのように使用する方法です。複雑なテンプレートでは展開は長くなりがちですが、メソッドをうまく使って展開を論理的なパーツに分解して定義してゆくと見通しのよい展開とメソッドが作成できるでしょう。展開の中はメソッド呼び出しの列のようになります。
他にも、他のテンプレートの展開やメソッドから呼び出すことにより、さまざまな種類の展開パターンを生成することができます。
テンプレートはリソースを持つことができます。例えば、テンプレートによって決まるページのヘッダやフッタなどで使用されるイメージや、ページのバックグラウンドイメージなどをテンプレートのリソースとして登録しておくことができます。登録されたリソースは展開の中で要素と同じ方法で参照することができます。
リソースに登録できるファイルの種類は、gif, jpeg または png イメージです。また、CSS ファイルや JavaScript などのスクリプトを記述したテキストファイルをリソースとして登録することも可能です。