From 9d86974e1f8273ac438a70f27b4bb10b4ac4a469 Mon Sep 17 00:00:00 2001 From: Ashwin Maroli Date: Thu, 24 Mar 2022 21:35:58 +0530 Subject: [PATCH] Expose collection static files via `site.static_files` (#8961) Merge pull request 8961 --- lib/jekyll/collection.rb | 1 + lib/jekyll/site.rb | 9 ++++++++- test/test_site.rb | 9 +++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) 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