webstring

http://psilib.sourceforge.net/webstring.html

cElementTreeとlxmlをエンジンにしているテンプレートエンジンのようなもの。
普通のテンプレートエンジンと趣が異なる。
通常はテンプレート内にタグやスクリプトレットを埋め込み、ロジック層やコントロール層のデータを引き込む。
この方法を埋め込み型とかプル型とすれば、webstringはプッシュ型。
idやclassという普通のHTML属性をもとに、エレメントツリーにプログラム側から情報を押し込んでいく。
エレメントの削除(条件分岐に相当)や繰り返しなど、表示ロジックとして十分な処理を行える。
また、lxmlをエンジンに使うことで、かなり中途半端なHTML(のようなもの)からもエレメントツリーを構築することができる。
ポイントは、もとのHTMLに一切触る必要がないこと。
途中でデザイン変更があっても、HTMLを差し替えるだけ。

デザインとロジックの分離がやっと達成されるのか、それともロジックのためにHTMLの構造を見直すことになるのか。
(多くの埋め込み型はHTMLを単なるテキストとみなしているので、実際のところ結構無理が利く。
webstringやGenshi, kidなどは、HTMLにもロジカルな構造が求められると思う。)
しかし、ユーザビリティSEO, クロスブラウザの観点からしてもシンプルかつロジカルな構造にしない理由はない。
テーブルレイアウトなんて時代はもうとっくに終わっていると思うが、そこからさらに一歩進んだ話なのか、単に原点に戻るだけなのか。
なんにせよ、こうしたHTMLが組まれてプログラム側からは必要な情報をプッシュするだけですむようになってくれると、プログラムする側として大助かりなのです。