diff --git a/lib/jekyll/reader.rb b/lib/jekyll/reader.rb index da2d1e1d..99aa746c 100644 --- a/lib/jekyll/reader.rb +++ b/lib/jekyll/reader.rb @@ -63,8 +63,8 @@ module Jekyll # Returns nothing. def retrieve_posts(dir) return if outside_configured_directory?(dir) - site.posts.docs.concat(PostReader.new(site).read_posts(dir)) - site.posts.docs.concat(PostReader.new(site).read_drafts(dir)) if site.show_drafts + site.posts.docs.concat(post_reader.read_posts(dir)) + site.posts.docs.concat(post_reader.read_drafts(dir)) if site.show_drafts end # Recursively traverse directories with the read_directories function. @@ -146,5 +146,11 @@ module Jekyll collections_dir = site.config["collections_dir"] !collections_dir.empty? && !dir.start_with?("/#{collections_dir}") end + + # Create a single PostReader instance to retrieve drafts and posts from all valid + # directories in current site. + def post_reader + @post_reader ||= PostReader.new(site) + end end end