rc-compiler
very fast js compiler angular-way style
version 0.1.4
change logs
0.1.1 initial functional
0.1.2 add rc-repeat-obj directive
0.1.3 add rc-div directive
0.1.4 first optimize compiled code, set Ect test
bench
ect example template render 1 000 000 iterations by ~450ms
(100 000 iterations by 45ms)
Ect test
usage
template.html:
- {{$key}}: {{prop}}
js:
// compile template var fs = require('fs'); var template = require('../rc-compiler').compile(fs.readFileSync('./templates/simple.html')); // render template var html = template({ title: 'Page title', users: [ {name: 'Maria', age: 27}, {name: 'Mike', age: 32} ], showUsers: true }); console.log(html);
result:
> ```html
<h3>Page title</h3>
<div>
<ul>
<li>
<span>
<b>name:</b>
Maria
</span><span>
<b>age:</b>
27
</span>
</li><li>
<span>
<b>name:</b>
Mike
</span><span>
<b>age:</b>
32
</span>
</li>
</ul>
</div>
support directives:
rc-out, rc-if, rc-repeat, rc-repeat-obj, rc-div
rc-out
desc: put variable in this tag.
example:
result:
Page title
rc-if
desc: show/hide node and childs
warn! now support only simple expression (no this:a + d.x && b.prop || c.f()
)
example:
...
result: if variable isAccessible is true put this node
rc-repeat
desc: repeat node by data array
example:
{{user.name}} ({{user.age}})
result:
Maria (27)Mike (32)
rc-repeat-obj
desc: repeat node by data object fields
example:
{{$key}}: {{prop}}
result:
name: Maria age: 27 name: Mike age: 32
rc-div
desc: divide array for col view
example:
{{number}}
data:
var numbers = 1 2 3 4 5 6 7;
result:
1 2 3 4 5 6 7