# -*- coding: utf-8 -*- module Jekyll class ReviewsGenerator < Generator safe true priority :low # Generates the reviews file def generate(site) @buffer = '' # Create the destination folder if necessary reviews_dest = File.join(site.dest, 'reviews') FileUtils.mkdir_p(reviews_dest) unless File.directory?(reviews_dest) # Write the contents of reviews file File.open(File.join(reviews_dest, 'index.html'), 'w') do |f| generate_header generate_content site f.write @buffer f.close end # Add the reviews file, so it won't be cleaned site.pages << Page.new(site, site.dest, 'reviews', 'index.html') end # Add the YAML header def generate_header @buffer += "---\nlayout: page\n---\n" end # Add a string containing the review entries def generate_content(site) site.posts.reverse_each do |post| review_entry(site, post) unless post.data['pgn'].nil? end end # Creates a review entry from the given post def review_entry(site, post) # Creates the link to post @buffer += "\n
" @buffer += "#{post.title}" @buffer += "
\n" @buffer += "