From 6903f0b0f47c53513f59f9a005cc3c159b26c1e9 Mon Sep 17 00:00:00 2001 From: Youssef Boulkaid Date: Sun, 16 Oct 2022 13:48:24 +0200 Subject: [PATCH] Fix false positive conflicts for static files in a collection (#9141) Merge pull request 9141 --- lib/jekyll/site.rb | 4 ++++ test/test_site.rb | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/lib/jekyll/site.rb b/lib/jekyll/site.rb index 2fad097b..d6c5a0b8 100644 --- a/lib/jekyll/site.rb +++ b/lib/jekyll/site.rb @@ -360,9 +360,13 @@ module Jekyll end def each_site_file + seen_files = [] %w(pages static_files_to_write docs_to_write).each do |type| send(type).each do |item| + next if seen_files.include?(item) + yield item + seen_files << item end end end diff --git a/test/test_site.rb b/test/test_site.rb index 246f813e..7556174d 100644 --- a/test/test_site.rb +++ b/test/test_site.rb @@ -749,5 +749,14 @@ class TestSite < JekyllUnitTest assert_includes site.static_files.map(&:relative_path), "_methods/extensionless_static_file" end + + should "not be revisited in `Site#each_site_file`" do + site = fixture_site("collections" => { "methods" => { "output" => true } }) + site.read + + visited_files = [] + site.each_site_file { |file| visited_files << file } + assert_equal visited_files.count, visited_files.uniq.count + end end end