Run doT (JavaScript template engine) over all files in a directory, including their filenames
npm install dotallbash
npm i -s dotall
`
Using
dotAll:
`js
const dotAll = require('dotAll');
dotAll.renderDir('template_directory', {
app: {
name: "FlamingoApp"
}
});
`
----
Methods:
$3
The method renderDir walks through a directory and renders all files, directories, and filenames using doT. It takes two arguments:
argument name | data type | example
--- | --- | ---
templateDirPath | String | "path/to/templates"
data | Object | { app: { name: "FlamingoApp" } }
$3
The method render takes a string and renders it using doT.
It takes two arguments:
argument name | data type | example
--- | --- | ---
templateString | String | "Welcome to the {{_self.app.name}}!"
data | Object | { app: { name: "FlamingoApp" } }
----
Templates
Template tags are formed using two consecutive curly brackets and an underscore, and rely on self for data:
`html
{{_self.app.name}}
`
Here's a list of automagically available properties of self:
FILENAME Name of the currently processed file, e.g. _main.js_
FILEPATH Path of the currently processed file, e.g. _C:\\_
$3
You can loop through arrays and objects using two curly brackets followed by an asterisk:
`html
{{*todos :todo:index}}
- {{_index}}.) {{_action}}
{{*}}
`
...combined with the following data:
`js
const = {
todos: ['Cleanup', 'Refactor', 'Package']
};
`
...yields this rendered template:
`html
- 1.) Cleanup
- 2.) Refactor
- 3.) Package
`
$3
If the data path specified in a template couldn't be found, dotAll looks for a key called default in the data you passed and renders it instead. If no default` key is provided, dotAll leaves these template tags untouched.