0.0.9 • Published 11 years ago
cirru-html-js v0.0.9
Cirru HTML .js
Compile Cirru HTML into JavaScript template function.
Usage
This project is related to Cirru HTML which compiles Cirru to HTML. This project compiles it to JavaScript instead.
They are sharing similar syntaxes on writing HTML.
Syntax:
- Jade-like(CSS Selectors) syntax for tags(with classandid)
- (:a b)syntax for- a="b"
- tokens start with @are controllers
- (= a)to render- aas text
- (== a)to render- aas html
... and grammars inherited from Cirru Grammar.
Controllers:
- (@ a)to get a from resource
- (@if cond a b)for conditions,- bis optional
- (@unless cond a b)for conditions,- bis optional
- (@rich a b)to use- a.length>0as condition
- (@each xs a)for rendering- ain list- xs
- (@call a b c)for running- a(a,b)
- (@block a b c)wrap- a b cin a block
npm i --save-dev cirru-html-jsFor such a demo, it compiles to:
{render} = require 'cirru-html-js'
render '@if (@ a) (div b)'(function(resource, call){
  var html;
  if(resource['a']){html+='<div>b</div>';}
  return html;
})...where resource is data passed to render.
call is an object of methods that maybe useful in template.
Tests
cd tests
coffee make.coffee test-compile # run performance tests on compiling
coffee make.coffee compile # just compile code
coffee make.coffee test-run # run performance tests on templatingComparing to doT, Cirru HTML.js takes about 3 times of time to compile and run.
ChangeLog
- 0.0.9- Replace forwithwhilefor performance
 
- Replace 
- 0.0.8- Add error messages and tests
 
- 0.0.7- Add @block
 
- Add 
- 0.0.5- Fix condition syntax is @unless
 
- Fix condition syntax is 
- 0.0.4- More flexible attribute values
 
License
MIT