Revert "Readability: lib/jekyll/static_file.rb."
This reverts commit 26f1ea2487
.
This commit is contained in:
parent
26f1ea2487
commit
54281530fb
|
@ -3,9 +3,7 @@ module Jekyll
|
||||||
attr_reader :relative_path, :extname
|
attr_reader :relative_path, :extname
|
||||||
|
|
||||||
class << self
|
class << self
|
||||||
#
|
# The cache of last modification times [path] -> mtime.
|
||||||
# The cache of last modification times
|
|
||||||
# [path] -> mtime.
|
|
||||||
def mtimes
|
def mtimes
|
||||||
@mtimes ||= {}
|
@mtimes ||= {}
|
||||||
end
|
end
|
||||||
|
@ -31,29 +29,25 @@ module Jekyll
|
||||||
@relative_path = File.join(*[@dir, @name].compact)
|
@relative_path = File.join(*[@dir, @name].compact)
|
||||||
@extname = File.extname(@name)
|
@extname = File.extname(@name)
|
||||||
end
|
end
|
||||||
|
|
||||||
# rubocop: enable ParameterLists
|
# rubocop: enable ParameterLists
|
||||||
|
|
||||||
# Returns source file path.
|
# Returns source file path.
|
||||||
def path
|
def path
|
||||||
File.join(
|
File.join(*[@base, @dir, @name].compact)
|
||||||
*[@base, @dir, @name].compact
|
|
||||||
)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# Obtain destination path.
|
# Obtain destination path.
|
||||||
|
#
|
||||||
# dest - The String path to the destination dir.
|
# dest - The String path to the destination dir.
|
||||||
|
#
|
||||||
# Returns destination file path.
|
# Returns destination file path.
|
||||||
def destination(dest)
|
def destination(dest)
|
||||||
@site.in_dest_dir(
|
@site.in_dest_dir(*[dest, destination_rel_dir, @name].compact)
|
||||||
*[dest, destination_rel_dir, @name].compact
|
|
||||||
)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def destination_rel_dir
|
def destination_rel_dir
|
||||||
if @collection
|
if @collection
|
||||||
File.dirname(
|
File.dirname(url)
|
||||||
url
|
|
||||||
)
|
|
||||||
else
|
else
|
||||||
@dir
|
@dir
|
||||||
end
|
end
|
||||||
|
@ -69,12 +63,14 @@ module Jekyll
|
||||||
end
|
end
|
||||||
|
|
||||||
# Is source path modified?
|
# Is source path modified?
|
||||||
|
#
|
||||||
# Returns true if modified since last write.
|
# Returns true if modified since last write.
|
||||||
def modified?
|
def modified?
|
||||||
self.class.mtimes[path] != mtime
|
self.class.mtimes[path] != mtime
|
||||||
end
|
end
|
||||||
|
|
||||||
# Whether to write the file to the filesystem
|
# Whether to write the file to the filesystem
|
||||||
|
#
|
||||||
# Returns true unless the defaults for the destination path from
|
# Returns true unless the defaults for the destination path from
|
||||||
# _config.yml contain `published: false`.
|
# _config.yml contain `published: false`.
|
||||||
def write?
|
def write?
|
||||||
|
@ -82,18 +78,20 @@ module Jekyll
|
||||||
end
|
end
|
||||||
|
|
||||||
# Write the static file to the destination directory (if modified).
|
# Write the static file to the destination directory (if modified).
|
||||||
# Returns false if the file was not modified since last time (no-op).
|
#
|
||||||
# dest - The String path to the destination dir.
|
# dest - The String path to the destination dir.
|
||||||
|
#
|
||||||
|
# Returns false if the file was not modified since last time (no-op).
|
||||||
def write(dest)
|
def write(dest)
|
||||||
dest_path = destination(dest)
|
dest_path = destination(dest)
|
||||||
if File.exist?(dest_path) && !modified?
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
|
return false if File.exist?(dest_path) && !modified?
|
||||||
self.class.mtimes[path] = mtime
|
self.class.mtimes[path] = mtime
|
||||||
|
|
||||||
FileUtils.mkdir_p(File.dirname(dest_path))
|
FileUtils.mkdir_p(File.dirname(dest_path))
|
||||||
FileUtils.rm(dest_path) if File.exist?(dest_path)
|
FileUtils.rm(dest_path) if File.exist?(dest_path)
|
||||||
copy_file(dest_path)
|
copy_file(dest_path)
|
||||||
|
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -108,12 +106,11 @@ module Jekyll
|
||||||
def placeholders
|
def placeholders
|
||||||
{
|
{
|
||||||
:collection => @collection.label,
|
:collection => @collection.label,
|
||||||
|
:path => relative_path[
|
||||||
|
@collection.relative_directory.size..relative_path.size],
|
||||||
:output_ext => "",
|
:output_ext => "",
|
||||||
:name => "",
|
:name => "",
|
||||||
:title => "",
|
:title => ""
|
||||||
:path => relative_path[
|
|
||||||
@collection.relative_directory.size..relative_path.size
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -121,16 +118,14 @@ module Jekyll
|
||||||
# the collection's URL template into account. The default URL template can
|
# the collection's URL template into account. The default URL template can
|
||||||
# be overriden in the collection's configuration in _config.yml.
|
# be overriden in the collection's configuration in _config.yml.
|
||||||
def url
|
def url
|
||||||
@url ||=
|
@url ||= if @collection.nil?
|
||||||
if @collection.nil?
|
|
||||||
relative_path
|
relative_path
|
||||||
else
|
else
|
||||||
::Jekyll::URL.new({
|
::Jekyll::URL.new({
|
||||||
:template => @collection.url_template,
|
:template => @collection.url_template,
|
||||||
:placeholders => placeholders
|
:placeholders => placeholders
|
||||||
})
|
})
|
||||||
end
|
end.to_s.gsub(%r!/$!, "")
|
||||||
.to_s.gsub(%r!/$!, "")
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# Returns the type of the collection if present, nil otherwise.
|
# Returns the type of the collection if present, nil otherwise.
|
||||||
|
@ -141,28 +136,17 @@ module Jekyll
|
||||||
# Returns the front matter defaults defined for the file's URL and/or type
|
# Returns the front matter defaults defined for the file's URL and/or type
|
||||||
# as defined in _config.yml.
|
# as defined in _config.yml.
|
||||||
def defaults
|
def defaults
|
||||||
@defaults ||= @site.frontmatter_defaults.all(
|
@defaults ||= @site.frontmatter_defaults.all url, type
|
||||||
url, type
|
|
||||||
)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
def copy_file(dest_path)
|
def copy_file(dest_path)
|
||||||
if @site.safe || Jekyll.env == "production"
|
if @site.safe || Jekyll.env == "production"
|
||||||
FileUtils.cp(
|
FileUtils.cp(path, dest_path)
|
||||||
path, dest_path
|
|
||||||
)
|
|
||||||
else
|
else
|
||||||
FileUtils.copy_entry(
|
FileUtils.copy_entry(path, dest_path)
|
||||||
path, dest_path
|
|
||||||
)
|
|
||||||
end
|
end
|
||||||
|
File.utime(self.class.mtimes[path], self.class.mtimes[path], dest_path)
|
||||||
File.utime(
|
|
||||||
self.class.mtimes[path],
|
|
||||||
self.class.mtimes[path],
|
|
||||||
dest_path
|
|
||||||
)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue