#bmEmailTemplatizer
An email template engine that truely works.
- compile multiple emails templates with multiple locales.
- fully customizable pipeline.
- i18n and customizable locals
- consolidate.js for view engine.
##Usage
##API
###setOptions
parameters: options object
returns: bmEmailTemplatizer
###allLocalesAllFiles
parameters: none.
returns: Promise.
resolves: pipeline resolves.
###Minimal
var bmEmailTemplatizer = require('bm-email-templatizer');
bmEmailTemplatizer
.allLocalesAllFiles()
.then(function(results) {
console.log('res', results);
})
.catch(function(err) {
console.log('error', err);
});
#Options
Option | Type | Description |
---|
pipeline | Array | list of functions to be run by templatizer |
paths | Object | See Paths section. |
locales | Array | array of locales |
consolidate | Object | See Consolidate section. |
var defaulOptions = {
pipeline: ['compilePug', 'compileSass', 'juiceStyles', 'writeHtml'],
paths: {
base: process.cwd(),
scss: 'scss/index.scss',
locales: 'locales/',
views: 'views/**/*.pug',
compiled: 'compiled'
},
consolidate: {
viewEngine: 'pug',
locals: {},
options: {}
}
}
Consolidate
consolidate.js is used to support a HUGE list of view engines!
Supported template engines by consolidate:
consolidate.locals
Default: {}
view engine locals, can be used to add custom functions to be used while rendering the view.
example(rendering handlebar templates through jade):
consolidate: {
locals: {
_raw: function(variableName) {
return String.raw`${variableName}`;
}
}
}
//- jade view
html
body
div
| #{ _raw("{{#if user_name}}") }
div=__('welcome-message')
| #{ _raw("{{/if}}") }
node-i18n is automatically embedded to the view engine.
consolidate.viewEngine
Default: pug
view engine, check
consolidate.options
Default: {}
options sent to view engine
Paths
###paths.base
Default: process.cwd()
base path of project.
By default it is the current working directory, the directory path node is called from.
###paths.scss
Default: scss/index.scss
Entrance point for scss file. Currently accepts only one entrance point.
###paths.views
Default: views/**/*.pug
path.views
accept a glob pattern (relative or absolute).
###paths.locales
Default: locales/
path.locales
accept a directory path (relative or absolute).
locales
Locale file name will be supplied as a directory name to the writeHTML pipeline command
###paths.compiled
Default: compiled
Accepts a string for a folder name relative to the base path.
Used by writeHtml
in the pipeline to write the compiled files into directory.
`{base}/{compiled}/{locale}/{fileName}.html
| Future: accepts an object, with absolute boolean, ext name, and folder path.
##Scss
To get the active locale in the scss files, use getActiveLocale();
example:
// index.scss
$language: getActiveLocale();
$direction: if($language == 'ar', rtl, ltr);
html {
direction: $direction;
}
@if $language == 'du' {
.test-class {
color: blue;
}
}