Grunt plugin for HackMyResume.
This plugin requires Grunt ~0.4.5
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-hackmyresume --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-hackmyresume');
In your project's Gruntfile, add a section named hackmyresume
to the data object passed into grunt.initConfig()
.
grunt.initConfig({
// Run HackMyResume!
hackmyresume: {
options: {
theme: 'compact'
},
main: {
src: 'path/to/resume.json',
dest: 'path/to/generated/resume.all'
}
}
});
The full HackMyResume options model is supported. A few of the more commonly used options are:
Type: String
Default value: 'modern'
A string describing the resume theme to use. Can be either:
- The name of a predefined FRESH theme (
modern
,compact
,positive
,awesome
, orbasis
) - The path to a locally-installed theme (for ex,
node_modules/jsonresume-theme-classy
)
Type: String
Default value: 'embed'
Whether CSS files should be linked (link
) or embedded (embed
) via <link>
or <style>
tags, respectively.
Type: String
Default value: 'wkhtmltopdf'
The name of the underlying PDF generation engine to use for the PDF version of
the resume (if any). Can be either wkhtmltopdf
or phantom
.
Type: Boolean
Default value: false
Disable HackMyResume output.
In this example, the default options are used to generate a single resume to all available formats using the default 'modern' theme:
grunt.initConfig({
hackmyresume: {
options: { }, // No options? No problem.
main: {
files: {
// Will create dest/resume.html, dest/resume.pdf, dest/resume.md, etc.
'dest/resume.all': ['src/resume.json'],
}
}
},
});
In this example, custom options are used to change the resume theme and the method of CSS embedding.
grunt.initConfig({
hackmyresume: {
options: {
theme: 'compact', // Set the 'compact' theme
css: 'link' // Use <link> for theme CSS files (HTML formats only)
},
main: {
files: {
'dest/resume.all': ['src/resume.json'],
}
}
},
});
You can also specify the source and destination files this way:
grunt.initConfig({
hackmyresume: {
options: {
theme: 'compact',
css: 'link'
},
main: { // Using .src and .dest instead of files hash
src: 'src/resume.json',
dest: 'dest/resume.all'
}
}
});
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.
(Nothing yet)