THIS REPOSITORY HAS MOVED TO THE MASTER BRANCH OF https://github.com/squirrellyjs/squirrelly
Summary
Squirrelly is a modern, configurable, and blazing fast template engine implemented in JavaScript. It works out of the box with ExpressJS and the full version weighs only ~2.2KB gzipped.
This is version 8 - a new, more powerful rewrite of Squirrelly. It adds multiple features (like filter parameters, whitespace control, partials, and template inheritance) to bring you a template engine with the power of Nunjucks, the simplicity of EJS, and the small bundle size of its earlier versions.
[Read about why we decided to develop in a separate repository]
[learn about the changes]
Simply put, Squirrelly is super lightweight, super fast, super powerful, and super simple.
- 🔧 Custom helpers
- 🔧 Custom filters
- 📦 0 dependencies
- 🔨 Conditionals
- ⚡️ Exports ES Modules as well as UMD
- 🔨 Loops
- 🔧 Custom delimeters
- 📝 Easy template syntax
- 🔧 Precompilation
- 🔨 Partials
- 🔧 Inline JavaScript
- 🔨 Comments
- 🔧 Caching
- 🚀 Fast
We know nobody reads through the long and boring documentation in the ReadMe anyway, so head over to the documentation website:
var myTemplate = "<p>My favorite kind of cake is: {{it.favoriteCake}}</p>"
Sqrl.Render(myTemplate, {favoriteCake: 'Chocolate!'})
// Returns: '<p>My favorite kind of cake is: Chocolate!</p>
{{~if(it.somevalue === 1)}}
Display this
{{#else}}
Display this
{{/if}}
{{~each(it.somearray) => val, index}}
Display this
The current array element is {{val}}
The current index is {{index}}
{{/each}}
Tests can be run with npm test
. Multiple tests check that parsing, rendering, and compiling return expected results, formatting follows guidelines, and code coverage is at the expected level.
To be added
[Waiting for permissions]
Made with ❤ by @nebrelbug and all these wonderful contributors (emoji key):
This project follows the all-contributors specification. Contributions of any kind are welcome!