昨日の続き

http://d.hatena.ne.jp/nazoking/20041223 を読むと非常に参考になり、そしてさらにもう少し考えた。

これまで「カスタムタグ」というのをjavaのと同じようにpull型のものと捕らえていた。それだと、そもそもpull型というのが僕の考えにあわないし、デザイン用のデフォルト(ダミー)値が表示されずにhtmlエディタ編集がしにくそうなのも嫌だ。

そこで発想を変えて、「カスタムタグ」をテンプレートの上流にあって、たんなるタグの展開をする機能を持つものとして捕らえてみる。つまり、上記エントリのv:behavior="dropdowndate"をselectタグに別のライブラリで展開するようし、展開したものをテンプレートとすればどうだろうということだ。

これだと、push型でいられるし、タグ展開をしたあとの物は普通にHTMLとして表示できるであろう。問題点としては、編集が、TeXのように「ソースかいて、処理して、ビューアで見て」という少々複雑になってしまうことか。いちいち定型のjavascriptとかそういうのを書く手間と、上記の編集の手間とどっちが楽かということだろう。

既存のライブラリが有りそうな気がしないでもないが、いずれにしろ調査は来年の課題ということで。

あと、

<p var:cont="{table}"></p>
<p var:cont="{not:table}">空です</p>

で設定できるんですけど、我ながらちょっと違和感のある記法のような気がしないでもないです。

データ構造に手を加えずに、テンプレート側で表示をいろいろと変更できる方がうれしいのですが、限度がありますからねー。よく使われるパターンのみ対処していくのが現実的かなと感じてます。`Display alternately`機能は、表を縞々に表示したい自分のニーズがあったので実装しました。ただ、記法のわかりやすさ、統一感をどう保っていくかが難しいです。