Security News
Supply Chain Attack Detected in Solana's web3.js Library
A supply chain attack has been detected in versions 1.95.6 and 1.95.7 of the popular @solana/web3.js library.
grunt-build-html
Advanced tools
Build HTML templates recursively.
This plugin requires Grunt ~0.4.1
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-build-html --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-build-html');
In your project's Gruntfile, add a section named buildHtml
to the data object passed into grunt.initConfig()
.
grunt.initConfig({
buildHtml: {
options: {
// Task-specific options go here.
},
your_target: {
// Target-specific file lists and/or options go here.
},
},
})
Type: String|Object
Default: {}
An object containing data that will be available in all templates (files and partials). You may also pass a JSON filepath as a string.
options: {
data: 'data.json'
}
Type: String|Array
Default: []
Lets you specify which files you want to be available as partials you can include in files or in other partials (avoid infinite loops). Globbing supported.
options: {
templates: 'dev/fragments/**/*.html'
}
Type: Object
Default: null
The settings passed to underscore when compiling templates.
options: {
templateSettings: {
interpolate : /\{\{(.+?)\}\}/g
}
}
Type: String
Default: null
If empty, templates will simply be loaded with their filename as template key (without extension and regardless of the templates folder structure). If you set the templates root folder, it will serve as the key origin :
template : test/fragments/subfolder/my-content.html
templateNamespaceRoot : test/fragments
template key : subfolder/my-content
Type: String
Default: .tmp/remote-cache
If null or empty, an error is thrown.
options: {
remoteCacheFolder: '<%= config.tmp %>/.cache'
}
Type: Object
Default: empty
If empty, each URL will be called without transformation. If you set prefix and/or suffix, they will be appended to all URL.
options: {
remoteUrl: {
prefix: 'http://www.domain.com',
suffix: '.html'
}
}
grunt.initConfig({
buildHtml: {
dev: {
options: {
templates: 'dev/fragments/**/*.html'
},
expand: true,
cwd: 'dev/',
src: ['*.html'],
dest: 'staging/',
ext: '.html'
}
}
})
In all templates (files and partials) you can use the include
special method to include a partials :
<%= include('my-content') %>
You can also set extra parameters that will be available in the included template.
dev/my-page.html
:
<%= include('head', {title: 'My page'}) %>
dev/fragments/head.html
:
<meta charset="utf-8"/>
<title><%- title %></title>
In this example we will define a list of templates that will be processed using a list template that will simply iterate over the parameter to include and concatenate all templates.
dev/my-page.html
:
<%= include('list', {params: ['header', 'my-page-content', 'footer']}) %>
dev/fragments/list.html
:
<%= _.map(params, function(key){return include(key);}).join('\n') %>
By default, included fragment will be recursively processed. If you want to prevent the plugin to parse and evaluate your fragment, just add 'true' to the include function :
<%= include('my-fragment', true) %>
<%= include('my-fragment', {params: ['header', 'my-page-content', 'footer']}, true) %>
This is quite handy when dealing with fragment containing code that should not be processed at build time but only run time.
You can launch your task with the --debug
option to get more debug informations.
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.
FAQs
Build HTML templates recursively.
We found that grunt-build-html 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
A supply chain attack has been detected in versions 1.95.6 and 1.95.7 of the popular @solana/web3.js library.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.