1.0.2 • Published 5 years ago

dotall v1.0.2

Weekly downloads
1
License
ISC
Repository
github
Last release
5 years ago

Run doT (JavaScript template engine) over all files in a directory, including their filenames

This uses doT.js to walk through directories and parse all directory names, filenames, and file contents for doT templates with supplied data. See the doT.js documentation for more.

Installation:

npm i -s dotall

Using dotAll:

const dotAll = require('dotAll');

dotAll.renderDir('template_directory', {
  app: {
    name: "FlamingoApp"
  }
});

Methods:

.renderDir(templateDirPath, data)

The method renderDir walks through a directory and renders all files, directories, and filenames using doT. It takes two arguments:

argument namedata typeexample
templateDirPathString"path/to/templates"
dataObject{ app: { name: "FlamingoApp" } }

.render(templateString, data)

The method render takes a string and renders it using doT. It takes two arguments:

argument namedata typeexample
templateStringString"Welcome to the {{_self.app.name}}!"
dataObject{ app: { name: "FlamingoApp" } }

Templates

Template tags are formed using two consecutive curly brackets and an underscore, and rely on self for data:

<h1>{{_self.app.name}}</h1>

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:\

Loops

You can loop through arrays and objects using two curly brackets followed by an asterisk:

<ul id="todo-list">
{{*todos :todo:index}}
    <li>{{_index}}.) {{_action}}</li>
{{*}}
</ul>

...combined with the following data:

const = { 
    todos: ['Cleanup', 'Refactor', 'Package'] 
}; 

...yields this rendered template:

<ul id="todo-list">
    <li>1.) Cleanup</li>
    <li>2.) Refactor</li>
    <li>3.) Package</li>
</ul>

Fallback

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.

1.0.2

5 years ago

1.0.0

5 years ago