140926 金曜 テンプレートの話続き
JS のテンプレートエンジン Handlebars.js を使おうとしたけどテンプレートファイルで他のテンプレートを読み込むにはどうしたらいいのか、よくわからなかった。同じファイル内で別のテンプレートを使う場合は partial を定義して使えるみたい。こんな感じ。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>Template test</title> <script src="./js/jquery-2.1.1.js"></script> <script src="./js/handlebars-v2.0.0.js"></script> </head> <body> <div id="output"></div> <script type="text/javascript"> var source = "<ul>{{#people}}<li>{{> link}}</li>{{/people}}</ul>"; Handlebars.registerPartial ('link', '<a href="/people/{{id}}">{{name}}</a>'); var template = Handlebars.compile (source); var data = { "people": [ { "name": "Alen", "id": 1}, { "name": "Yehuda", "id": 2}, { "name": "Harid", "id": 3} ]}; $("#output").html (template (data)); </script> </body> </html>
でも、やりたいのはこうじゃないんだよなと思いつつググっていたら、 hahil2u さんのエントリで知りたいことが書かれていた。
require ('fs') とかってこれは Node.js ということですね。背後から忍び寄る、面倒くさいという思い。うわー。
それなら Python で Jinja2 とかのテンプレートエンジン使って、やったほうがいいのではという気もしてくる。うーんどうなんだろう。便利な UI をつけるとしたらブラウザで表示させるのがよいと思うし、そしたら JavaScript 書くことになるから最初から JavaScript 一本で進めたほうがシンプルでよいかもしれない。いったいどれくらい作りこむのか、先のことはわからないけれども。