Performance: Sort files only once

This commit is contained in:
Florian Weingarten 2015-05-16 13:35:47 +00:00
parent 87829b3da1
commit 5928618de1
1 changed files with 8 additions and 3 deletions

View File

@ -15,10 +15,18 @@ module Jekyll
def read def read
@site.layouts = LayoutReader.new(site).read @site.layouts = LayoutReader.new(site).read
read_directories read_directories
sort_files!
@site.data = DataReader.new(site).read(site.config['data_source']) @site.data = DataReader.new(site).read(site.config['data_source'])
CollectionReader.new(site).read CollectionReader.new(site).read
end end
# Sorts posts, pages, and static files.
def sort_files!
site.posts.sort!
site.pages.sort_by!(&:name)
site.static_files.sort_by!(&:relative_path)
end
# Recursively traverse directories to find posts, pages and static files # Recursively traverse directories to find posts, pages and static files
# that will become part of the site according to the rules in # that will become part of the site according to the rules in
# filter_entries. # filter_entries.
@ -50,7 +58,6 @@ module Jekyll
def retrieve_posts(dir) def retrieve_posts(dir)
site.posts.concat(PostReader.new(site).read(dir)) site.posts.concat(PostReader.new(site).read(dir))
site.posts.concat(DraftReader.new(site).read(dir)) if site.show_drafts site.posts.concat(DraftReader.new(site).read(dir)) if site.show_drafts
site.posts.sort!
end end
# Recursively traverse directories with the read_directories function. # Recursively traverse directories with the read_directories function.
@ -77,7 +84,6 @@ module Jekyll
# Returns nothing. # Returns nothing.
def retrieve_pages(dir, dot_pages) def retrieve_pages(dir, dot_pages)
site.pages.concat(PageReader.new(site, dir).read(dot_pages)) site.pages.concat(PageReader.new(site, dir).read(dot_pages))
site.pages.sort_by!(&:name)
end end
# Retrieve all the static files from the current directory, # Retrieve all the static files from the current directory,
@ -89,7 +95,6 @@ module Jekyll
# Returns nothing. # Returns nothing.
def retrieve_static_files(dir, dot_static_files) def retrieve_static_files(dir, dot_static_files)
site.static_files.concat(StaticFileReader.new(site, dir).read(dot_static_files)) site.static_files.concat(StaticFileReader.new(site, dir).read(dot_static_files))
site.static_files.sort_by!(&:relative_path)
end end
# Filter out any files/directories that are hidden or backup files (start # Filter out any files/directories that are hidden or backup files (start