Security News
Weekly Downloads Now Available in npm Package Search Results
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
grunt-nunjuckr
Advanced tools
Render your nunjucks templates to static files
If you haven't used Grunt before, check out the Getting Started guide.
Once you have installed the plugin via npm install --save-dev grunt-nunjuckr
include this in your Gruntfile.js
grunt.loadNpmTasks('grunt-nunjuckr');
Type: Object
Default: undefined
The data that is passed to the template.
Type: String
Default: .html
The file extension for the output.
Type: String
Default: .
The path where the templates can be found.
Type: Object
Default: undefined
Configures nunjucks to render with different tags
Type: Object
or Array
Default: undefined
Gives you the ability to specify globals within your config. There are two ways to do that: By using an object or by using an array.
This example uses an object:
{
options: {
globals: {
globalName: 'Global Value'
}
}
}
This example uses an array:
{
options: {
globals: [
{
name: 'globalName',
value: 'Global Value'
}
]
}
}
Type: Object
Default: undefined
Makes it possible to generate pages with multiple content dimensions. E.g. language or timezone. The current dimensions object is handed over as a third parameter in the preprocessData function as well as the preprocessFilePath function.
Type: Function
Default: undefined
A callback function that sets up the nunjucks environment. The environment is passed as a parameter and it is expected to return it.
For more infomation about nunjucks environments see https://mozilla.github.io/nunjucks/api.html#environment
Type: Function
Default: undefined
A preprocessor callback for the data coming in. Gets called on every file with the params data
and file
.
Changes in v0.1.0
: file
is no longer relative to searchPath
. It now is the full path to the current file.
A callback function for preprocessing the template path. Gets called for every file only with the parameter file
.
A function that represents the iterator. Here you can do some custom iteration over e.g. data
to render multiple sites
from one file.
An array or instance of a nunjucks custom loader.
Here you can specify your own loader(s) to implement special feature.
Render a single input file to a single output file.
grunt.initConfig({
nunjuckr : {
testSimple : {
options : {
data : grunt.file.readJSON('data/data.json')
},
files : [
{
src : 'src/input.njs',
dest : 'dest/output.html'
}
]
}
}
});
Load different data files for every file in the templates folder.
var path = require('path');
grunt.initConfig({
nunjuckr : {
testExtended : {
options : {
data : grunt.file.readJSON('test/extended/data/data.json'),
ext : '.html'
searchPaths : 'src',
preprocessData : function (data, file) {
var fileExt = path.extname(file);
var filename = path.basename(file, fileExt);
var jsonPath = path.join('test/extended/data/', filename + '.json');
data = grunt.file.readJSON(jsonPath);
return data;
}
},
files : [
{
src : 'src/**/*.njs',
dest : 'dest/'
}
]
}
}
});
Set up a custom environment for the renderer.
grunt.initConfig({
nunjuckr : {
testExtended : {
options : {
data : grunt.file.readJSON('test/extended/data/data.json'),
ext : '.html',
searchPaths : 'test/extended/src',
setUp : function (env) {
env.addFilter('crop', function (str, count) {
return str.slice(0, count || 5);
});
return env;
}
},
files : [
{
src : 'test/extended/src/**/*.njs',
dest : 'test/extended/dest/'
}
]
}
}
});
This example uses showdown as a markdown parser. You can preprocess your data as you prefer, e.g. when you are using RST.
var showdown = require('showdown');
var mdConverter = new showdown.Converter();
grunt.initConfig({
nunjuckr : {
testMarkdown : {
options : {
ext: '.html',
searchPaths : 'test/markdown/src',
preprocessData : function(data, file) {
var text = grunt.file.read(file);
data = {
content: mdConverter.makeHtml(text)
};
return data;
},
preprocessFilePath : function (fileName) {
return 'template.njs';
}
},
files : [
{
src : 'test/markdown/content/**/*.md',
dest : 'test/markdown/dest/'
}
]
}
}
});
This example is a simple one for a custom loader. For more information about custom loaders in nunjucks please read the manual.
var nunjucks = require('nunjucks');
var CustomLoader = nunjucks.Loader.extend({
getSource: function(name) {
if (name === 'custom') {
return {
src: 'Custom loader',
path: name,
noCache: false
};
}
return false;
}
});
grunt.initConfig({
nunjuckr: {
testLoader: {
options : {
data: {},
loader: new CustomLoader()
},
files : [
{
src : 'test/loader/src/index.njs',
dest : 'test/loader/dest/index.html'
}
]
}
}
})
FAQs
A grunt task rendering nunjucks templates to static html files.
The npm package grunt-nunjuckr receives a total of 1 weekly downloads. As such, grunt-nunjuckr popularity was classified as not popular.
We found that grunt-nunjuckr demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Security News
A Stanford study reveals 9.5% of engineers contribute almost nothing, costing tech $90B annually, with remote work fueling the rise of "ghost engineers."
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.