読者です 読者をやめる 読者になる 読者になる

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 一本で進めたほうがシンプルでよいかもしれない。いったいどれくらい作りこむのか、先のことはわからないけれども。