This plugin allows you to build static html files from ejs templates.
Anvil.ejs requires anvil.js version 0.8.* or greater and EJS 0.8.3 or greater.
anvil install anvil.ejs
If this plugin is installed and enabled, by default all .html and .ejs files will run ejs to compile from the data in the build.json file.
All of the ejs templates will have the data from the anvil build.json file passed into them. For example:
{
"anvil.ejs": {
"data": {
"hello": "Hello World!"
}
}
}
when paired with a template like this:
<div class="my-div"><%= hello %></div>
would render this after an anvil build:
<div class="my-div">Hello World</div>
The only non-standard EJS function that this plugin currently extends is for rendering partials. The markup is based off of the Express implementation of EJS templates. The first argument should be the path to the partial template. There is no need to include the file extension because Anvil.EJS will loop over the supported formats and find the template for you. The second argument can be any parameters you want to pass into the template. The partials will also inherit any data from the build.js file.
With a partials/header.html file like this:
<h1><%= title %></h1>
and an index.html file like this:
<%- partial("partials/header", { title: "My Awesome Header" }) %>
<h2>This is the index.html page!</h2>
The index.html page would be built to look like this:
<h1>My Awesome Header</h1>
<h2>This is the index.html page!</h2>
By default, anvil.ejs works for .html, .ejs files. You can also pass in an array of the file types you would like to run through ejs in you project like this:
{
"anvil.ejs": {
"formats": ["foo", "bar", "html"]
}
}
This plugin was created by Tyson Cadenhead. Please feel free to ask me a question or submit a pull request.