テンプレートエンジンPHPOOT0.3のリリース

このところ集中して作っていたテンプレートエンジンPHPOOTの新しいバージョンをリリースする。
http://sourceforge.jp/projects/phpoot/

これまでのバージョンはまったく自作だったわけだが、仕様がうまくなく、自分でも使わなくなっていた。
このバージョンでは仕様をRuby用のテンプレートシステムであるAmrita ( http://www.brain-tokyo.jp/research/amrita/index_ja.html )を参考にシンプルなものに設定し、実装はREARのXML_HTMLSaxライブラリを使って行った。
Amritaの仕様はifといった条件文が無いのがシンプルでいいと感じた。データがnullもしくはfalseのとき該当部分を表示せず、trueの時はテンプレートに記述の内容を、文字列のときそのデータを表示するという条件があるのみだ。
私がテンプレートシステムを使いたいのは、プログラムを知らないデザイナーにサイトのデザインをして欲しいからだ。だから、テンプレートから複雑な制御構造を排除したい。そうすれば、普通のHTMLエディタで作業できるし。また、複雑な画面表示ロジックが欲しいときは、自分がPHPでかけばいいのだ。

もちろんPHPOOTとAmritaとは仕様の異なる点はある。

  • id属性でなく、varという独自の属性をデータの指定に使う。
  • XHTMLのみをターゲットとする。タグは必ず閉じられて、整形式のXMLであることを仮定する。
  • 属性中へのデータ埋め込みの方法として、{data}というような形式を属性値につかう。
  • 表示前にPHPへのコンパイルを行う。
  • 「#alt」といった#で始まる属性値で、拡張機能をもつ。#altで、交互に該当部分を表示する。行ごとに、classを変えたりするときに便利。#numで、ループしたデータの番号を表示。番号つきのリストを表示するときに便利か。

ベータですので、まだまだ安定はしてないかもしれませんが、これから使い込んでみよう。