CoffeeTe
Templating with CoffeeScript
Installation
With NPM for Node.js
Note: Because of incompatibility with Ender.js the dependence on CoffeeScript will not be installed automatically.
# npm install coffeete coffee-script
Or with Ender.js for the browser
# ender build coffeete
How
It is very simple and very lightweight. It uses the CoffeeScript compiler for string interpolation. The tool chain: CoffeeTe → CoffeeScript → JavaScript.
Examples
Our template
<script id="about-me" type="text/x-coffeete">
<h1>#{cap name}</h1>
<p>
#{about}
</p>
<ul>
!{for hobby, i in hobbies
<li class="#{if i % 2 then 'even' else 'odd'}">
#{hobby}
</li>
}!
</ul>
</script>
The view data
var view = name: "christopher" about: "I like grapefriut." hobbies: "Computers" "Martial Arts" "Coffee" { return str+str; } ;
In the browser
var str = documenttext // Compile a CoffeeTe string to a template function ready to recieve data. template = // Run our compiled template with the view data to get a ready HTML string. html = ; // Fill the page with our newly rendered HTML.document0innerHTML += html;
With Node.js
var str = fs template = html = ; // Write to a static HTML file or serve directly over HTTP.fs;
Or use the .coffeete
file extension to automatically compile your template.
Now importing your about-me.coffeete
can be done with require
.
var template = html = ; fs;
The result
Christopher I like grapefriut. Computers Martial Arts Coffee
Pre-compiling
The downside, specialy when running in the browser, is the dependency on CoffeeScript at runtime and the need to compile your CoffeeTe templates runtime. Therfore you can pre compile your templates into pure JavaScript and save them as CommonJS compliant modules.
# npm install -g coffeete coffee-script
Now we have installed the CoffeeTe CLI globaly.
# coffeete about-me.chtml > about-me.js
Or, if you prefere.
# cat about-me.chtml | coffeete > about-me.js