module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
// Build HTML from templates and data
assemble: {
options: {
flatten: true,
assets: 'dist/assets',
partials: ['templates/includes/*.hbs'],
helpers: ['templates/helpers/helper-*.js'],
layout: 'templates/layouts/default.hbs',
data: ['templates/data/*.{json,yml}']
},
pages: {
src: 'templates/*.hbs',
dest: 'dist/'
}
}
});
// Load npm plugins to provide necessary tasks.
grunt.loadNpmTasks('assemble');
// Default tasks to be run.
grunt.registerTask('default', ['assemble']);
};
Created
August 25, 2013 22:49
-
-
Save jonschlinkert/6336762 to your computer and use it in GitHub Desktop.
Different Gruntfile configurations for Assemble.
Gruntfile.js
module.exports = function(grunt) {
// Add this line to the Gruntfile before the `grunt.initConfig` object
grunt.util._.mixin(require('./src/helpers/mixins.js').init(grunt));
// Project configuration.
grunt.initConfig({
// tasks
)};
};
then add this to ./src/helpers/mixins.js
or whatever file you want:
exports.init = function(grunt) {
var exports = {};
grunt.util._.mixin({
/**
* Slugify a string. Makes lowercase, and converts dots and spaces to dashes.
* This is NOT a 'real' slugifier, it's just an example.
* @param {String} urlString [the string you want to slugify]
* @return {String} [a slugified string]
*/
slugify: function(urlString) {
return urlString.replace(/ /g, '-').replace(/\./, '-').toLowerCase();
}
});
return exports;
};
Now the mixin can be used anywhere in your project. For example, in a template (page) we can do something like this:
---
path: ONE Two three
slug: <%= _.slugify(path) %>
---
<strong>{{slug}}</strong>
returns:
<strong>one-two-three</strong>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment