$ ajs
Asynchronous templating in Node.js
Features
- Control flow with
<% %>
- Escaped output with
<%= %>
(escape function configurable) - Unescaped raw output with
<%- %>
- Newline-trim mode ('newline slurping') with
-%>
ending tag - Custom delimiters (e.g., use
<? ?>
instead of <% %>
) - Includes
- Static caching of intermediate JavaScript
- Static caching of templates
- Complies with the Express view system
:cloud: Installation
You can install the package globally and use it as command line tool:
$ npm i -g ajs
Then, run ajs --help
and see what the CLI tool can do.
$ ajs --help
Usage: ajs [options]
Asynchronous templating in Node.js
Options:
-t, --tree Output the abstract syntax tree
-s, --source Output the raw VM source
-l, --locals <locals> The template data as JSON.
-v, --version Displays version information.
-h, --help Displays this help.
Examples:
$ ajs template.ajs
$ ajs -t template.ajs
$ ajs -s template.ajs
Documentation can be found at https://github.com/IonicaBizau/ajs#readme.
:clipboard: Example
Here is an example how to use this package as library. To install it locally, as library, you can do that using npm
:
$ npm i --save ajs
const ajs = require("ajs");
ajs.render(
`<% fruits.forEach(function (c) { -%>
<%= c %>s are great
<% }) %>`, {
locals: {
fruits: ["Apple", "Pear", "Orange"]
}
}, (err, data) => {
console.log(err || data);
});
ajs.render(
`<% fetchData(function (err, msg) {
if (err) { %>
Error: <%= err.message %>
<% } else {
<%= msg %>
<% } %>
<% }) %>`, {
locals: {
fetchData: cb => setTimeout(
() => cb(null, "Hey there!")
, 1000
)
}
}, (err, data) => {
console.log(err || data);
});
:memo: Documentation
For full API reference, see the DOCUMENTATION.md file.
:yum: How to contribute
Have an idea? Found a bug? See how to contribute.
:moneybag: Donations
Another way to support the development of my open-source modules is
to set up a recurring donation, via Patreon. :rocket:
PayPal donations are appreciated too! Each dollar helps.
Thanks! :heart:
:cake: Thanks
Big thanks to Evan Owen who created the initial versions of the project! Amazing stuff! :cake:
:dizzy: Where is this library used?
If you are using this library in one of your projects, add it in this list. :sparkles:
:scroll: License
MIT © Ionică Bizău