
Security News
GPT-6 Astra Attempts Supply Chain Attacks Against Open Source Maintainers in Testing
GPT-6 Astra hits 100% on ExploitBench and finds zero-days autonomously, while independent tests reveal scope violations and monitoring gaps.
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, and check out Try Emblem.
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.
Emblem uses the following syntax:
= link-to 'index' (query-params foo="wat")
Ember query params documentation

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.
For pre-0.5.0, follow the pattern in this JSBin:
A globals build of Emblem appropriate for JSBins should be completed before 0.5.1 is released. See #212.
For pre-0.5.0, add the following to your Gemfile:
gem 'emblem-rails'
emblem-rails presently depends on ember-rails. With these
two gems, any templates ending in .emblem will be (pre)compiled
with Emblem.js.
Also, check out the demo app which uses the above configuration.
Updates to Emblem syntax do not require an update to emblem-rails. To
update to the latest Emblem, you can run:
bundle update emblem-source
Compatible with 0.5.0+:
Compatible with pre-0.5.0:
ember-rails)Clone the repo, then run:
npm install
bower install
ember build -e production
Running tests in the browser requires broccoli-cli to be installed.
To run tests in the browser, run:
broccoli serve
The tests will be available at http://localhost:4200/tests/.
To run tests in Phantom and Node (which is how CI runs), use:
npm test
Check out vim-emblem for Vim editor support for Emblem.
Otherwise, for now, please refer to syntax highlighting solutions for Slim, which is not much different from Ember's. At some point, we'll have something even more custom tailored to Emblem (feel free to take a swing at it and send in a PR).
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!
FAQs
Templating language targeting Handlebars with default Ember.js conventions
The npm package emblem receives a total of 1,448 weekly downloads. As such, emblem popularity was classified as popular.
We found that emblem demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 4 open source maintainers collaborating on the project.

Security News
GPT-6 Astra hits 100% on ExploitBench and finds zero-days autonomously, while independent tests reveal scope violations and monitoring gaps.

Product
Socket can now send alerts and supply chain attack notifications to Microsoft Teams, with filters that route the right updates to each channel.

Security News
pnpm 12 rewrites the package manager in Rust, cutting install times by up to 90% while preserving pnpm 11 workflows and lockfiles.