From 768d2bb5a304d25a3114a3cfb1eeced91ab00598 Mon Sep 17 00:00:00 2001 From: jekyllbot Date: Wed, 5 Apr 2017 16:16:55 -0400 Subject: [PATCH] absolute_url should not mangle URL if called more than once (#5789) Merge pull request 5789 --- lib/jekyll/filters/url_filters.rb | 1 + test/test_filters.rb | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/lib/jekyll/filters/url_filters.rb b/lib/jekyll/filters/url_filters.rb index ccc4dcb9..7db83c80 100644 --- a/lib/jekyll/filters/url_filters.rb +++ b/lib/jekyll/filters/url_filters.rb @@ -10,6 +10,7 @@ module Jekyll # Returns the absolute URL as a String. def absolute_url(input) return if input.nil? + return input if Addressable::URI.parse(input).absolute? site = @context.registers[:site] return relative_url(input).to_s if site.config["url"].nil? Addressable::URI.parse(site.config["url"] + relative_url(input)).normalize.to_s diff --git a/test/test_filters.rb b/test/test_filters.rb index 9e35df92..03d2732a 100644 --- a/test/test_filters.rb +++ b/test/test_filters.rb @@ -402,6 +402,11 @@ class TestFilters < JekyllUnitTest }) assert_equal "http://xn--mlaut-jva.example.org/", filter.absolute_url(page_url) end + + should "not modify an absolute URL" do + page_url = "http://example.com/" + assert_equal "http://example.com/", @filter.absolute_url(page_url) + end end context "relative_url filter" do