静的HTMLを直接書く代わりにText::Xslateを使うこともあります。
そういう場合直接YAMLを書いて(コピペして)処理するというのも便利です。
もちろん、テンプレ内でも配列やハッシュが直接記述できるのですが
静的ファイル生成は書く早さとわかりやすさ優先なのでYAMLはありだとおもいます。
同じような方法でCSV、JSONなども処理できます。
JSONはAPIをからJSONを貰ってHTMLで出力したいときに仮データとして書いておくとどんなHTMLが出力できるのかわかって便利です。
キャッシュがあまり生きないのでテンプレート処理速度重視の書き方ではないと思います。
##Xslate設定
use YAML::Syck;
…
my $tx = Text::Xslate->new(
function => {
yaml => sub {
my $text = shift;
my $data = YAML::Syck::Load($text);
return $data;
},
}
);
##テンプレート
yaml.tx
:# macroと併用して使ったりwithで呼び出して共通変数として使ったり
:-> {
---
name : お名前太郎
e_mail: test@test.jp
address: 大阪暑い市ね
:}() | yaml | address;
:macro address -> $address{
<table>
<th>名前</th><td><:$address.name:></td>
<th>住所</th><td><:$address.address:></td>
<th>メール</th><td><:$address.e_mail:></td>
</table>
:}