diff --git a/lib/jekyll/drops/collection_drop.rb b/lib/jekyll/drops/collection_drop.rb index 30c9f865..2c447cb4 100644 --- a/lib/jekyll/drops/collection_drop.rb +++ b/lib/jekyll/drops/collection_drop.rb @@ -13,7 +13,7 @@ module Jekyll end private - def data + def fallback_data @obj.metadata end diff --git a/lib/jekyll/drops/document_drop.rb b/lib/jekyll/drops/document_drop.rb index 4d7207d5..9319424b 100644 --- a/lib/jekyll/drops/document_drop.rb +++ b/lib/jekyll/drops/document_drop.rb @@ -38,10 +38,11 @@ module Jekyll end def excerpt - data['excerpt'].to_s + fallback_data['excerpt'].to_s end - def data + private + def fallback_data @obj.data end diff --git a/lib/jekyll/drops/immutable_drop.rb b/lib/jekyll/drops/immutable_drop.rb index 51257cff..d7948beb 100644 --- a/lib/jekyll/drops/immutable_drop.rb +++ b/lib/jekyll/drops/immutable_drop.rb @@ -12,7 +12,7 @@ module Jekyll if respond_to? key public_send key else - data[key] + fallback_data[key] end end @@ -20,7 +20,7 @@ module Jekyll if respond_to? key raise ArgumentError.new("Key #{key} cannot be set in the drop.") else - data[key] = val + fallback_data[key] = val end end diff --git a/lib/jekyll/drops/mutable_drop.rb b/lib/jekyll/drops/mutable_drop.rb index 1551728e..9dd4048d 100644 --- a/lib/jekyll/drops/mutable_drop.rb +++ b/lib/jekyll/drops/mutable_drop.rb @@ -15,7 +15,7 @@ module Jekyll elsif respond_to? key public_send key else - data[key] + fallback_data[key] end end diff --git a/lib/jekyll/drops/site_drop.rb b/lib/jekyll/drops/site_drop.rb index 77d6a416..82c55230 100644 --- a/lib/jekyll/drops/site_drop.rb +++ b/lib/jekyll/drops/site_drop.rb @@ -8,6 +8,14 @@ module Jekyll def_delegator :@obj, :site_data, :data def_delegators :@obj, :time, :pages, :static_files, :documents + def [](key) + if !respond_to?(key) && @obj.collections.key?(key) + @obj.collections[key].docs + else + super(key) + end + end + def posts @site_posts ||= @obj.posts.docs.sort { |a, b| b <=> a } end @@ -29,7 +37,7 @@ module Jekyll end private - def data + def fallback_data @obj.config end