From 509e22f9fe6e81c82166207e8a148313187d4316 Mon Sep 17 00:00:00 2001 From: Pat Hawks Date: Sat, 15 Oct 2016 11:51:05 -0500 Subject: [PATCH] Simplify minify regular expression --- lib/jekyll/jekyll-sitemap.rb | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/lib/jekyll/jekyll-sitemap.rb b/lib/jekyll/jekyll-sitemap.rb index 5f6af77..9ecc70d 100644 --- a/lib/jekyll/jekyll-sitemap.rb +++ b/lib/jekyll/jekyll-sitemap.rb @@ -8,13 +8,11 @@ class JekyllSitemap < Jekyll::Generator # Main plugin action, called by Jekyll-core def generate(site) @site = site - unless sitemap_exists? - write - @site.keep_files ||= [] - @site.keep_files << "sitemap.xml" - end + @site.pages << sitemap_content unless sitemap_exists? end + private + INCLUDED_EXTENSIONS = %W( .htm .html @@ -22,6 +20,8 @@ def generate(site) .pdf ).freeze + MINIFY_REGEX = %r!(<.+\n|})\s+!.freeze + # Array of all non-jekyll site files with an HTML extension def static_files @site.static_files.select { |file| INCLUDED_EXTENSIONS.include? file.extname } @@ -34,26 +34,15 @@ def source_path # Destination for sitemap.xml file within the site source directory def destination_path - if @site.respond_to?(:in_dest_dir) - @site.in_dest_dir("sitemap.xml") - else - Jekyll.sanitized_path(@site.dest, "sitemap.xml") - end - end - - # copy sitemap template from source to destination - def write - FileUtils.mkdir_p File.dirname(destination_path) - File.open(destination_path, "w") { |f| f.write(sitemap_content) } + @site.in_dest_dir("sitemap.xml") end def sitemap_content site_map = PageWithoutAFile.new(@site, File.dirname(__FILE__), "", "sitemap.xml") - site_map.content = File.read(source_path) + site_map.content = File.read(source_path).gsub(MINIFY_REGEX, '\1') site_map.data["layout"] = nil site_map.data["static_files"] = static_files.map(&:to_liquid) - site_map.render({}, @site.site_payload) - site_map.output.gsub(%r!\s{2,}!, "\n") + site_map end # Checks if a sitemap already exists in the site source