Security News
pnpm 10.0.0 Blocks Lifecycle Scripts by Default
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.
gulp-nunjucks-render
Advanced tools
Render Nunjucks templates
Issues with the output should be reported on the Nunjucks issue tracker.
Install with npm
npm install --save-dev gulp-nunjucks-render
var gulp = require('gulp');
var nunjucksRender = require('gulp-nunjucks-render');
gulp.task('default', function () {
return gulp.src('src/templates/*.html')
.pipe(nunjucksRender({
path: ['src/templates/'] // String or Array
}))
.pipe(gulp.dest('dist'));
});
var gulp = require('gulp');
var nunjucksRender = require('gulp-nunjucks-render');
var data = require('gulp-data');
function getDataForFile(file) {
return {
example: 'data loaded for ' + file.relative
};
}
gulp.task('default', function () {
return gulp.src('src/templates/*.html')
.pipe(data(getDataForFile))
.pipe(nunjucksRender({
path: 'src/templates'
}))
.pipe(gulp.dest('dist'));
});
Plugin accepts options object, which contain these by default:
var defaults = {
path: '.',
ext: '.html',
data: {},
inheritExtension: false,
envOptions: {
watch: false
},
manageEnv: null,
loaders: null
};
path
- Relative path to templatesext
- Extension for compiled templates, pass null or empty string if yo don't want any extensiondata
- Data passed to templateinheritExtension
- If true, uses same extension that is used for templateenvOptions
- These are options provided for nunjucks Environment. More info here.manageEnv
- Hook for managing environment before compilation. Useful for adding custom filters, globals, etc. Example belowloaders
- If provided, uses that as first parameter to Environment constructor. Otherwise, uses provided path
. More info hereFor more info about nunjucks functionality, check https://mozilla.github.io/nunjucks/api.html and also a source code of this plugin.
U can pass data as option, or you can use gulp-data like in example above.
nunjucksRender({data: {
css_path: 'http://company.com/css/'
}});
For the following template
<link rel="stylesheet" href="{{ css_path }}test.css" />
Would render
<link rel="stylesheet" href="http://company.com/css/test.css" />
If you want to manage environment (add custom filters or globals), you can to that with manageEnv
function hook:
var manageEnvironment = function(environment) {
environment.addFilter('slug', function(str) {
return str && str.replace(/\s/g, '-', str).toLowerCase();
});
environment.addGlobal('globalTitle', 'My global title')
}
nunjucksRender({
manageEnv: manageEnvironment
}):
After adding that, you can use them in template like this:
<h1>{{ globalTitle }}</h1>
<h3>{{ 'My important post'|slug }}</h3>
And get this result:
<h1>My global title</h1>
<h3>my-important-post</h3>
MIT © Carlos G. Limardo and Kristijan Husak
Sindre Sorhus who wrote the original gulp-nunjucks for precompiling Nunjucks templates. I updated his to render instead of precompile.
kristijanhusak for bug fixes and help with maintenance.
FAQs
Render Nunjucks templates with data
The npm package gulp-nunjucks-render receives a total of 3,615 weekly downloads. As such, gulp-nunjucks-render popularity was classified as popular.
We found that gulp-nunjucks-render demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 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
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.
Product
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.
Research
Security News
Socket researchers have discovered multiple malicious npm packages targeting Solana private keys, abusing Gmail to exfiltrate the data and drain Solana wallets.