NAME (ja)
YATT::Manual - YATT マニュアル 日本語版
SYNOPSIS
#
# ファイル "index.html" にて
#
<perl:foo:bar:moe title="test">
My first YATT App! <?perl= scalar localtime time?>
</perl:foo:bar:moe>
#
# ファイル "foo/bar.html" にて
#
<perl:widget moe title=html/>
<h2>&perl:title;</h2>
&perl:body();
# ↓ 変換結果は…
#
# <h2>test</h2>
#
# My first YATT App! Sun Sep 2 19:37:42 2007
DESCRIPTION
YATT (Yet Another Template Toolkit) は動的な Webサイトの構築を 容易にするための、テンプレート・ライブラリです。特徴は、
ユーザ独自のタグ(Widget)を定義できる
HTML タグを書き慣れた人であれば、その感覚の延長で、 再利用の容易な画面部品(widget)を作成できます。
ロジックの埋め込みと、その括り出しを両方支援している。
開発初期・末期の Dirty work を阻まないために、Processing Instruction
<?perl?>
スタイルのコード埋め込みを許可しています。しかも、そうしたロジックをテンプレート外部へ括り出すための、 ロジック専用ファイル .htyattrc をディレクトリ毎に持つことも出来ます。
スクリプトへの変換メカニズムを容易に拡張できる。
html ファイルは各々 Perl のクラスへと変換されます。 クラス同士の継承関係は自由に設定可能です。 スクリプトへの変換ルールも拡張可能です。
将来的には Perl 以外の言語への変換も計画しています。
テンプレートの構文は XML に似ていますが、XML よりも再帰性を改善した、 独自の構文 LRXML を採用しています。
TUTORIAL
まず最も一般的な、Apache と CGI の組み合わせで YATT を試す方法を解説します。
XXX: 前提として、Apache の設定を .htaccess で制御可能である 必要が有ります。(Allow override All)
XXX: 以下の説明では Bourne 系の Shell を用います。
INSTALL
準備
APP_URL=/myapp
APP_DIR=/var/www/html$APP_URL
YOUR_HOST=`hostname`
umask 022
mkdir -p $APP_DIR
cd $APP_DIR
YATT は将来 CPAN に upload される予定ですが、今は pre alpha 段階です。 インストールには直接 Subversion を使ってください。
svn co https://yatt-pm.svn.sourceforge.net/svnroot/yatt-pm/trunk/cgi-bin
# もしくは、開発サイト:
# svn co https://buribullet.net/svn/yatt-pm/cgi-bin
checkout に成功したら、お好みのブラウザでアクセスしてみましょう。
w3m http://$YOUR_HOST$APP_URL/cgi-bin/yatt.cgi
場合によっては、以下の操作が必要かもしれません。
chmod 755 cgi-bin
chmod -R g-w cgi-bin
.htaccess の使用や、その中の Options 指定が禁止されている場合、 まだエラーが出るでしょう。その場合は cgi-bin/.htaccess を削除し、 手動で Apache の設定をしてください (>_<)
DESCRIPTION
widget の定義と呼び出し
widget を定義するには、(a) 同じファイルの中で、 <:perl:widget />
宣言を書く方法と、 (b) ファイルを作り、<:perl:args />
宣言を書く方法があります。
(a) <:perl:widget NAME ARG1 ARG2=TYPE?DEFAULT .../>
NAME という名前の widget を定義します。widget の中で引数を参照するには &perl:ARG1;
のように、entity 参照の構文を使います。
定義した widget を呼び出すときには、
<perl:NAME ARG1="..." ARG2="..." />
又は
<perl:NAME ARG1="...foo..." ARG2="...bar...">
...baz...
</perl:NAME>
の二種類の書き方が可能です。後者の場合、...baz... の部分が 暗黙の引数 body として渡されます。これを 呼び出すときには &perl:body();
と書きます。
*: default の話
*: 型の話
*: <:perl:ARG1/> の話、 <:perl:ARG1>...</:perl:ARG1> も。
(b) <:perl:args ARG1 ARG2=TYPE?DEFAULT .../>
ファイル全体を一つの widget にします。widget の名前はファイル名と同じです。
.htyattrc と entity path 式 - ロジックの括り出しと呼び出し
Entity NAME => sub {
};
宣言
<:perl:base "base_template" />
組込み widget
perl:my
perl:foreach
perl:if, :perl:else
型
text
value
code
html
attr
SYNTAX
element (tag)
entity path
AUTHOR
"KOBAYASI, Hiroaki" (小林 弘明) hkoba at cpan.org
LICENSE
This library is free software; you may redistribute it and/or modify it under the same terms as Perl itself.