Move file extension methods up a level
This commit is contained in:
parent
aa3e1a6c5a
commit
b97f681ef1
|
@ -37,7 +37,7 @@ module Middleman::Sitemap::Extensions
|
||||||
def touch_file(file, rebuild=true)
|
def touch_file(file, rebuild=true)
|
||||||
return false if file == @app.source_dir || File.directory?(file)
|
return false if file == @app.source_dir || File.directory?(file)
|
||||||
|
|
||||||
path = file_to_path(file)
|
path = @sitemap.file_to_path(file)
|
||||||
return false unless path
|
return false unless path
|
||||||
|
|
||||||
ignored = @app.ignored_sitemap_matchers.any? do |name, callback|
|
ignored = @app.ignored_sitemap_matchers.any? do |name, callback|
|
||||||
|
@ -68,53 +68,10 @@ module Middleman::Sitemap::Extensions
|
||||||
resources + @file_paths_on_disk.map do |file|
|
resources + @file_paths_on_disk.map do |file|
|
||||||
::Middleman::Sitemap::Resource.new(
|
::Middleman::Sitemap::Resource.new(
|
||||||
@sitemap,
|
@sitemap,
|
||||||
file_to_path(file),
|
@sitemap.file_to_path(file),
|
||||||
File.expand_path(file, @app.root)
|
File.expand_path(file, @app.root)
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# Get the URL path for an on-disk file
|
|
||||||
# @param [String] file
|
|
||||||
# @return [String]
|
|
||||||
def file_to_path(file)
|
|
||||||
file = File.expand_path(file, @app.root)
|
|
||||||
|
|
||||||
prefix = @app.source_dir.sub(/\/$/, "") + "/"
|
|
||||||
return false unless file.include?(prefix)
|
|
||||||
|
|
||||||
path = file.sub(prefix, "")
|
|
||||||
extensionless_path(path)
|
|
||||||
end
|
|
||||||
|
|
||||||
# Get a path without templating extensions
|
|
||||||
# @param [String] file
|
|
||||||
# @return [String]
|
|
||||||
def extensionless_path(file)
|
|
||||||
path = file.dup
|
|
||||||
|
|
||||||
end_of_the_line = false
|
|
||||||
while !end_of_the_line
|
|
||||||
if !::Tilt[path].nil?
|
|
||||||
path = path.sub(File.extname(path), "")
|
|
||||||
else
|
|
||||||
end_of_the_line = true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# If there is no extension, look for one
|
|
||||||
if File.extname(path).empty?
|
|
||||||
input_ext = File.extname(file)
|
|
||||||
|
|
||||||
if !input_ext.empty?
|
|
||||||
input_ext = input_ext.split(".").last.to_sym
|
|
||||||
if @app.template_extensions.has_key?(input_ext)
|
|
||||||
path << ".#{@app.template_extensions[input_ext]}"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
path
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -144,5 +144,48 @@ module Middleman::Sitemap
|
||||||
result.deep_merge(metadata)
|
result.deep_merge(metadata)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Get the URL path for an on-disk file
|
||||||
|
# @param [String] file
|
||||||
|
# @return [String]
|
||||||
|
def file_to_path(file)
|
||||||
|
file = File.expand_path(file, @app.root)
|
||||||
|
|
||||||
|
prefix = @app.source_dir.sub(/\/$/, "") + "/"
|
||||||
|
return false unless file.include?(prefix)
|
||||||
|
|
||||||
|
path = file.sub(prefix, "")
|
||||||
|
extensionless_path(path)
|
||||||
|
end
|
||||||
|
|
||||||
|
# Get a path without templating extensions
|
||||||
|
# @param [String] file
|
||||||
|
# @return [String]
|
||||||
|
def extensionless_path(file)
|
||||||
|
path = file.dup
|
||||||
|
|
||||||
|
end_of_the_line = false
|
||||||
|
while !end_of_the_line
|
||||||
|
if !::Tilt[path].nil?
|
||||||
|
path = path.sub(File.extname(path), "")
|
||||||
|
else
|
||||||
|
end_of_the_line = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# If there is no extension, look for one
|
||||||
|
if File.extname(path).empty?
|
||||||
|
input_ext = File.extname(file)
|
||||||
|
|
||||||
|
if !input_ext.empty?
|
||||||
|
input_ext = input_ext.split(".").last.to_sym
|
||||||
|
if @app.template_extensions.has_key?(input_ext)
|
||||||
|
path << ".#{@app.template_extensions[input_ext]}"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
path
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
Loading…
Reference in a new issue