プレゼンテーション層の検討

今朝からずーと考えているが考えがまとまらない。しかし、既存のもので自分の感覚にあっているものがないということだけは確かなんだよな。で、そのほしいものというのはどんなものか?というのを具現化しきれないってのが問題なんだろうな。

ほしいのはHTML/XHTMLに特化したテンプレートエンジン。Smartyのようにテキストファイルの好きなところを置き換えてくれればいいというものではなくて、HTML/XHTMLという特定の規則でマークアップされたテキストファイルに限定でいい。

そんなこと言及しないでもわかっているがHTML/XHTMLマークアップ言語であり、それ自体がデータ構造を表している。対象となるページのデータ構造を生かしたテンプレートエンジンはできないものだろうか?

Smartyよりもタグを意識したものは特定のマーク(id属性等)が入ったタグを乗っ取って、それを置き換えちゃうというものだが、もうひとつ上のものというのは実現できないだろうか?

例えば、HTML/XHTMLを全て一旦木構造に落として、それをプログラムで処理した後に、タグの形にもどす。そういった意味ではJSFコンポーネントツリーの復元⇒レンダリングというのが一番近いが、それを特殊なタグを対象ではなくて普通のHTML/XHTMLタグを使って行うと。コンポーネントツリーの状態になってしまったデータならば、それぞれのコンポーネントの操作(追加/修正/削除)だけでなく、継承やMixInといったことがスムーズにできそうな気がしてるんだが。

うーむ。無駄なことを考えてるのかな?素直にタグを乗っ取るというので行けばいいような気もするし。ちょっと頭冷やして考え直してみよっと。

追記 なんかぜんぜん舌足らずな文章になってるな・・・ループや条件分岐を如何にテンプレート側に書かずにすむか?ということをベースに考えたらこんなことになっていると思ってやってください。あと、継承とMixInというのをテンプレートの世界に乗せるとどうなるだろうか?という思考と。うーむ。まとまらん・・・