Skip to content
Create a gist now

Instantly share code, notes, and snippets.

Jekyll archive page generator plugin
module Jekyll
class ArchiveGenerator < Generator
safe true
def generate(site)
collate_by_month(site.posts).each do |month, posts|
page =, month, posts)
site.pages << page
def collate_by_month(posts)
collated = {}
posts.each do |post|
key = "#{}/#{}"
if collated.has_key? key
collated[key] << post
collated[key] = [post]

WIth newest jekyll, getting a couple of errors with these:

Warning: Command failed: error: undefined method `destination' for #<Jekyll::ArchivePage:0x007fde91191618>. Use --trace to view backtrace
Generating... Warning: Command failed: error: undefined method `uses_relative_permalinks' for #<Jekyll::ArchivePage:0x007f99bce18a40>. Use --trace to view backtrace

jekyll version 1.0.3, ruby version 1.9.2-p320

Any ideas? I added these as accessors to the ArchivePage, but then ended up with a different error:

Warning: Command failed: error: wrong number of arguments (1 for 0). Use --trace to view backtrace
 Use --force to continue.

@ikka the same is true with ruby 1.9.3

blacksd commented Aug 11, 2013

I have this output too with ruby 1.9.3 and latest jekyll.

nlindley commented Sep 2, 2013

The default year/month format doesn’t match Jekyll’s because the months aren’t getting zero-padded. You can see my fix here:

To those having problems with the warning, having ArchivePage inherit Page seems to fix the issues. See this gist:


@nlindley This is a simple question, but when I run 'jekyll build' the file loads but none of the methods are ever called. The file is in my _layouts folder, and I know it's getting loaded, but none of the methods fire. Any ideas?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.