Supercharge Jekyll development with Yeoman. Yo, Jekyllrb!
Generator-jekyllrb wraps the Jekyll static site generator in a Yeoman development workflow. Scaffold your site with Yo, manage front end packages with Bower, and automate development and build tasks with Grunt.
During setup you can choose:
Generator-jekyllrb always includes:
>= 0.10, Ruby
npm install -g generator-jekyllrb
Compiles all files and opens the site in your default browser. A watch task watches for changes to files, recompiles if necessary, and injects the changes into the browser with LiveReload.
Checks code quality with Jshint and CSS Lint, and Jekyll health with
grunt serve:dist will run
grunt build and open the result in your default browser
During scaffolding the generator gives you the option to configure grunt-build-control to version and deploy your built code to a remote repository. If you configure build-control,
grunt deploy will run
grunt build, and then commit and deploy your built code to the specified remote repository.
grunt on its own is a special task that runs
grunt check, any tests you've added, and
Every task and target in the Gruntfile can be run individually (e.g.,
grunt jshint:all or
grunt compass:server). Edit the tasks and add new ones to fit your needs.
To include components in the build, place them inside of a Usemin block or add them to the
copy:dist task. This workflow will be streamlined with the release of Usemin 2.0.
Wrapping an existing site in Yeoman isn't hard, but it takes a little manual editing.
compasstask in the Gruntfile.
useminblocks should match the paths you entered during setup, as these are now expected by
autoprefixerand other task configurations in your Gruntfile.
grunt dist, and
grunt serve:dist. Check that the files you expect are being transferred to the dist directory.
Jekyll can't exclude nested directories, so we must exclude all directories that match the innermost asset directory. For example,
assets/css will exclude all directories named
css from Jekyll compilation. This will cause issues if your site has a tag or category named
css; if you're worried about accidental exclusions prefix all asset directories with an underscore (
Since we revision assets such as images, make sure that your CSS calls them using their absolute path, so on
grunt build those images will be replaced properly.