var hekyll = require('{%= name %}');
var assemble = require('assemble');
var app = module.exports = assemble();
app.use(hekyll());
var hekyll = require('{%= name %}');
The easiest way to convert and build a Jekyll theme with assemble is to start by using [generate-hekyll][] to convert the theme. generate-hekyll has built-in support for all of GitHub's default Jekyll themes, as well as all of the awesome poole themes from @mdo.
See the alternative steps if you want more fine grained control over cloning and converting the theme.
First, install [generate][] and [generate-hekyll][]:
$ npm install -g generate generate-hekyll
Next, run generate-hekyll to download and convert the theme you want:
$ gen hekyll
Feel free to customize your assemblefile.js! You should now be able to build the site at any time with the following command:
$ assemble
As an alternative to using generate-hekyll
to convert the theme (steps 1 and 2), you can do the following.
Step 1: git clone
git clone
the theme you want into a local directory.
Step 2: Tell assemble where to find the theme
In assemblefile.js
, tell assemble where to find the Jekyll theme and where to write the converted handlebars files.
app.option({
// current working directory
cwd: __dirname,
// path to the jekyll theme
theme: 'vendor/poole/lanyon',
// path to write the converted files. remember, the generated files
// will become your "source" templates when you build the handlebars
// theme with assemble
destBase: 'src'
});
Step 3: Convert the theme
Run the following to convert your theme.
$ assemble hekyll
Example code to use in your assemblefile.js
.
var hekyll = require('{%= name %}');
var argv = require('minimist')(process.argv.slice(2));
var Assemble = require('assemble');
/**
* Instantiate and expose your instance of assemble to assemble's CLI
*/
var app = module.exports = new Assemble(argv);
/**
* Options
*/
// these options are necessary only if you're cloning the theme yourself
// using the alternative steps described above. Replace these values with
// your own.
app.option({cwd: __dirname, theme: 'vendor/poole/lanyon', destBase: 'src'});
// the following options are necessary if you want to download metadata
// from the repository to use in templates. Replace these values with
// the owner/repository to use for getting metadata.
app.option({owner: 'jonschlinkert', repo: 'hekyll'});
// if you want to download metadata, pass username and password, or token.
// note that the `metadata` task is skipped if these values aren't defined
app.option(require('./tmp/auth.json'));
/**
* Register hekyll plugin
*/
app.use(hekyll(app.options));
/**
* Default task
*/
app.task('default', ['theme']);
As with any site, you'll need to make some customizations, and potentially fix any remaining issues that were missed by the plugin. If you find a bug, or something that doesn't work, but you think this plugin should handle it, please don't hesitate to create an issue.