{ jtmpl 0.3.1

Mustache syntax  +  automatic data-binding  =  Live templates


Upcoming jtmpl 0.4.0 will be a complete rewrite. Here's what's changing:

Source language

New language is JavaScript, augmented with Sweet.js, es6macros and sparkler. CoffeeScript is an excellent prototyping language and helped develop the idea. JavaScript base would be more accessible and can be shaped with macros to fit closely jtmpl needs.

Eliminate the compiler

The compiler is a major piece of complexity and code volume. Every browser already includes a HTML parser that can be leveraged. So compiler will be removed completely, Mustache tags will be parsed from the constructed (offline) DOM tree instead – a much simpler approach.

Immutable structures

Switching to immutable data structures eliminates a large class of bugs, will make code simpler and possible to be better optimized by a smart JS engine. The implications for the library user are routes and event handlers should refer to current model only via the this context (this.__root__ and this.__parent__ will be provided) and never via referencing variable.

Functional representation

There won't be data-jt attributes anymore. A compiled template is a function, that constructs a DOM fragment and sets up data-binding and event handling, akin to the intermediate representation you get when compiling a template via traditional engine.

Features target

Test coverage

Include test coverage report during build process, aim for 100% test coverage.

Performance tests, regression warnings

Have to think some more on this.