diff --git a/_plugins/generate_reviews.rb b/_plugins/generate_reviews.rb new file mode 100644 index 0000000..0f8a745 --- /dev/null +++ b/_plugins/generate_reviews.rb @@ -0,0 +1,84 @@ +# -*- 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 += "