Always normalize the result of the relative_url filter (#6185)
Merge pull request 6185
This commit is contained in:
parent
b089e44016
commit
9f7815786b
|
@ -23,9 +23,9 @@ module Jekyll
|
|||
# Returns a URL relative to the domain root as a String.
|
||||
def relative_url(input)
|
||||
return if input.nil?
|
||||
return ensure_leading_slash(input.to_s) if sanitized_baseurl.nil?
|
||||
parts = [sanitized_baseurl, input]
|
||||
Addressable::URI.parse(
|
||||
ensure_leading_slash(sanitized_baseurl) + ensure_leading_slash(input.to_s)
|
||||
parts.compact.map { |part| ensure_leading_slash(part.to_s) }.join
|
||||
).normalize.to_s
|
||||
end
|
||||
|
||||
|
|
|
@ -491,6 +491,15 @@ class TestFilters < JekyllUnitTest
|
|||
})
|
||||
assert_equal "/", filter.relative_url(page_url)
|
||||
end
|
||||
|
||||
should "not return the url by reference" do
|
||||
filter = make_filter_mock({ :baseurl => nil })
|
||||
page = Page.new(filter.site, test_dir("fixtures"), "", "front_matter.erb")
|
||||
assert_equal "/front_matter.erb", page.url
|
||||
url = filter.relative_url(page.url)
|
||||
url << "foo"
|
||||
assert_equal "/front_matter.erb", page.url
|
||||
end
|
||||
end
|
||||
|
||||
context "strip_index filter" do
|
||||
|
|
Loading…
Reference in New Issue