<!--
  - Copyright (c) 2012 The Chromium Authors. All rights reserved.
  - Use of this source code is governed by a BSD-style license that can be
  - found in the LICENSE file.
  -->
<!doctype html>
<html>
  <head>
    <script src="handlebars-1.0.0.beta.6.js"></script>
  </head>
  <body>
    <script id="hello-world-template" type="text/x-handlebars-template">
      <div class="entry">
        <h1>Hello, {{thing}}!</h1>
      </div>
    </script>
    <script>
      var templates = [];
      var source = document.getElementById('hello-world-template').innerHTML;
      templates['hello'] = Handlebars.compile(source);

      // Set up message event handler:
      window.addEventListener('message', function(event) {
        var command = event.data.command;
        var name = event.data.name || 'hello';
        switch(command) {
          case 'render':
            event.source.postMessage({
              name: name,
              html: templates[name](event.data.context)
            }, event.origin);
            break;

          // You could imagine additional functionality. For instance:
          //
          // case 'new':
          //   templates[event.data.name] = Handlebars.compile(event.data.source);
          //   event.source.postMessage({name: name, success: true}, event.origin);
          //   break;
        }
      });
    </script>
  </body>
</html>
