lib/jekyll-feed.rb in jekyll-feed-0.3.1 vs lib/jekyll-feed.rb in jekyll-feed-0.4.0

- old
+ new

@@ -1,14 +1,20 @@ -require 'fileutils' +require "fileutils" module Jekyll class PageWithoutAFile < Page def read_yaml(*) @data ||= {} end end + module StripWhitespace + def strip(input) + input.to_s.strip + end + end + class FeedMetaTag < Liquid::Tag def config @context.registers[:site].config end @@ -50,42 +56,26 @@ # Main plugin action, called by Jekyll-core def generate(site) @site = site @site.config["time"] = Time.new unless feed_exists? - write - @site.keep_files ||= [] - @site.keep_files << path + @site.pages << feed_content end end # Path to feed.xml template file def source_path File.expand_path "feed.xml", File.dirname(__FILE__) end - # Destination for feed.xml file within the site source directory - def destination_path - if @site.respond_to?(:in_dest_dir) - @site.in_dest_dir(path) - else - Jekyll.sanitized_path(@site.dest, path) - end - end - - # copy feed template from source to destination - def write - FileUtils.mkdir_p File.dirname(destination_path) - File.open(destination_path, 'w') { |f| f.write(feed_content) } - end - def feed_content - site_map = PageWithoutAFile.new(@site, File.dirname(__FILE__), "", path) - site_map.content = File.read(source_path).gsub(/\s*\n\s*/, "\n").gsub(/\n{%/, "{%") - site_map.data["layout"] = nil - site_map.render(Hash.new, @site.site_payload) - site_map.output + feed = PageWithoutAFile.new(@site, File.dirname(__FILE__), "", path) + feed.content = File.read(source_path).gsub(/\s*\n\s*/, "\n").gsub(/\s+{%/, "{%").gsub(/\s+</,"<") + feed.data["layout"] = nil + feed.data["sitemap"] = false + feed.output + feed end # Checks if a feed already exists in the site source def feed_exists? if @site.respond_to?(:in_source_dir) @@ -95,6 +85,10 @@ end end end end -Liquid::Template.register_tag('feed_meta', Jekyll::FeedMetaTag) +unless defined? Liquid::StandardFilters.strip + Liquid::Template.register_filter(Jekyll::StripWhitespace) +end + +Liquid::Template.register_tag("feed_meta", Jekyll::FeedMetaTag)