Emblem.js is an indentation-based templating language that prints Handlebars.js templates. Specifically, it targets Ember.js templates.
Emblem's syntax most closely resembles that of the Slim templating language. Please see the Emblem docs site for a full explanation of the syntax.
Also check out the Embercast on Emblem.js
To use Emblem with Ember-CLI, use the ember-cli-emblem addon.
As of Emblem 0.5.0, the compiler is really a template printer. Previous versions compiled to Handlebars AST nodes and were forced to target specific versions of Handlebars. The move to printing has eliminated that restriction, and Emblem 0.5.0 should be compatible with any version of Handlebars.
For posterity, here is a history of Emblem and Handelbars compatibility across revisions.
- HTMLBars: Emblem 0.5.0
- Handlebars 2.0.0: Use Emblem ~0.4.0, or 0.5.0
- Handlebars 1.0.0: Use Emblem ~0.3.0, or 0.5.0
- Handlebars <= 1.0.0.rc4: Use Emblem <= 0.2.9, or 0.5.0
Previous versions of Emblem have supported a "vanilla" Handlebars mode. The intent was that Ember-specific helpers could be avoided.
Emblem 0.5.0 dropped support for vanilla template compilation, but we would like to bring it back. Please refer to VANILLA_HANDLEBARS.md for more context.
Clone the repo, then run:
yarn install
ember build
To run tests in the browser, run:
ember test --serve
The tests will be available at http://localhost:4200/tests/.
To run tests in Headless Chrome and Node (which is how CI runs), use:
ember test
If you find a bug in Emblem syntax, please try to reproduce it in its simplest form with this JSBin before reporting an issue, which will help me nail down the source of the issue.
Emblem was authored and released by Alex Matchneer (@machty).
The Emblem 0.5.0 release was generously funded by Vestorly. Vestorly is a technology company solving the content marketing problem for individual professionals, small businesses, and the enterprises that support them. Vestorly's user interface is built entirely with Ember.js and modern web technologies. Vestorly is hiring!