A function that loads an EJS file and transforms it to HTML.
npm install rosid-handler-ejs
const handler = require('rosid-handler-ejs')
handler('index.ejs').then((data) => {})
handler('index.xml').then((data) => {})
handler('index.ejs', { optimize: true }).then((data) => {})
handler('index.ejs', { data: { key: 'value' } }).then((data) => {})
handler('index.ejs', { data: 'data.json' }).then((data) => {})Add the following object to your rosidfile.json, rosidfile.js or routes array. rosid-handler-ejs will transform all matching EJS files in your source folder to HTML.
{
"name" : "EJS",
"path" : "[^_]*.{html,ejs}*",
"handler" : "rosid-handler-ejs"
}<!-- index.ejs -->
<h1>Hello <%= 'World' %></h1><!-- index.html (output) -->
<h1>Hello World</h1>filePath{String}Path to file.opts{?Object}Options.optimize{?Boolean}- Optimize output. Defaults tofalse.data{?Object|String}- Data used to render the template. Defaults to{}.localOverwrites{?Boolean}- Enable or disable custom data per file. Defaults totrue.
{Promise<String|Buffer>}The transformed file content.
The data in opts.data will be used to render your template. opts.data can either be an object (the data) or a string (path to data file). rosid-handler-ejs tries to require the path when a string is specified instead of an object. The path must be absolute or relative to the current working directory.
Create a file with the name filename.data.json or filename.data.js along your filename.ejs to add or overwrite data from opts.data. You can disable this behaviour with the localOverwrites option.
rosid-handler-ejs passes a variable called environment to your template. environment is prod when opts.optimize is true and dev when opts.optimize is false.