diff --git a/lib/jekyll/collection.rb b/lib/jekyll/collection.rb index 0e9845c9..1ce33bf2 100644 --- a/lib/jekyll/collection.rb +++ b/lib/jekyll/collection.rb @@ -65,6 +65,7 @@ module Jekyll read_static_file(file_path, full_path) end end + site.static_files.concat(files) unless files.empty? sort_docs! end diff --git a/lib/jekyll/site.rb b/lib/jekyll/site.rb index 45c603dc..d2ca53a7 100644 --- a/lib/jekyll/site.rb +++ b/lib/jekyll/site.rb @@ -343,6 +343,13 @@ module Jekyll documents.select(&:write?) end + # Get the to be written static files + # + # Returns an Array of StaticFiles which should be written + def static_files_to_write + static_files.select(&:write?) + end + # Get all the documents # # Returns an Array of all Documents @@ -353,7 +360,7 @@ module Jekyll end def each_site_file - %w(pages static_files docs_to_write).each do |type| + %w(pages static_files_to_write docs_to_write).each do |type| send(type).each do |item| yield item end diff --git a/test/test_site.rb b/test/test_site.rb index c3f241d1..8e02f9cb 100644 --- a/test/test_site.rb +++ b/test/test_site.rb @@ -735,4 +735,13 @@ class TestSite < JekyllUnitTest end end end + + context "static files in a collection" do + should "be exposed via site instance" do + site = fixture_site("collections" => ["methods"]) + site.read + + assert_includes site.static_files.map(&:relative_path), "_methods/extensionless_static_file" + end + end end