Compile Slim to HTML
This plugin requires Grunt ~0.4.0
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-slim --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-slim');
Run this task with the grunt slim
command.
This task requires you to have Ruby and Slim. If you're on OS X or Linux you probably already have Ruby installed, try ruby -v
in your terminal. When you've confirmed you have Ruby installed, run gem install slim
to install Slim.
Type: Boolean
Show a full traceback on error.
Type: Boolean
Run slimrb
preceding it with bundle exec
.
Type: 'Integer'
Maximum number of slim files to process in parallel. Default is 1
.
Type: Boolean
Compile only but do not run.
Type: Boolean
Generate rails compatible code (Implies --compile).
Type: Boolean
Enable translator plugin.
Type: Boolean
Enable logic less plugin.
Type: Boolean
Produce pretty html.
Type: String|Array
Set slim option.
grunt.initConfig({
slim: { // Task
dist: { // Target
files: { // Dictionary of files
'index.html': 'index.slim', // 'destination': 'source'
'sidebar.html': 'sidebar.slim'
}
},
dev: { // Another target
options: { // Target options
pretty: true
},
files: {
'index.html': 'index.slim',
'page.html': [
'header.html',
'body.html',
'footer.html' // Maybe you need one extra file in dev
]
}
}
}
});
grunt.loadNpmTasks('grunt-slim');
grunt.registerTask('default', ['jshint', 'slim']);
grunt.initConfig({
slim: {
dist: {
files: {
'index.html': 'index.slim'
}
}
}
});
If you specify an array of src
paths they will be concatenated. However, in most cases you would want to just render
them into index.slim
.
grunt.initConfig({
slim: {
dist: {
files: {
'index.html': [
'header.html',
'content.html'
]
}
}
}
});
You can specify multiple destination: source
items in files
.
grunt.initConfig({
slim: {
dist: {
files: {
'index.css': 'index.slim',
'sidebar.html': 'sidebar.slim'
}
}
}
});
You can specify an entire directory of files that should get compiled into individual files with the specified extension.
Example: if path/to
contained a.slim
and b.slim
, the following target would generate these files in path/to/dest
: a.html
and b.html
.
grunt.initConfig({
slim: {
dist: {
files: [{
expand: true,
cwd: 'path/to',
src: ['{,*/}*.slim'],
dest: 'path/to/dest',
ext: '.html'
}]
}
}
}
- 2013-02-22 v0.1.0 Initial release.
Task submitted by Keiichiro Matsumoto
This file was generated on Fri Feb 22 2013 04:27:01.