From a6c74b523189c426dd49b75a7838a93556c7c064 Mon Sep 17 00:00:00 2001 From: Ben Hollis Date: Sun, 30 Dec 2012 15:55:46 -0800 Subject: [PATCH] Fix mail_to --- .../core_extensions/default_helpers.rb | 58 ++++++++++--------- 1 file changed, 30 insertions(+), 28 deletions(-) diff --git a/middleman-more/lib/middleman-more/core_extensions/default_helpers.rb b/middleman-more/lib/middleman-more/core_extensions/default_helpers.rb index 8da2072a..dec9db17 100644 --- a/middleman-more/lib/middleman-more/core_extensions/default_helpers.rb +++ b/middleman-more/lib/middleman-more/core_extensions/default_helpers.rb @@ -133,39 +133,41 @@ module Middleman uri = URI(url) url_path = uri.path - path = Pathname(url_path) - url_path = current_source_dir.join(path).to_s if path.relative? + if url_path + path = Pathname(url_path) + url_path = current_source_dir.join(path).to_s if path.relative? - resource = sitemap.find_resource_by_path(url_path) + resource = sitemap.find_resource_by_path(url_path) - # Allow people to turn on relative paths for all links with set :relative_links, true - # but still override on a case by case basis with the :relative parameter. - effective_relative = relative || false - if relative.nil? && relative_links - effective_relative = true - end - - if resource - if effective_relative - resource_url = resource.url - - # Output urls relative to the destination path, not the source path - current_dir = Pathname('/' + current_resource.destination_path).dirname - new_url = Pathname(resource_url).relative_path_from(current_dir).to_s - - # Put back the trailing slash to avoid unnecessary Apache redirects - if resource_url.end_with?('/') && !new_url.end_with?('/') - new_url << '/' - end - else - new_url = resource.url + # Allow people to turn on relative paths for all links with config[:relative_links] = true + # but still override on a case by case basis with the :relative parameter. + effective_relative = relative || false + if relative.nil? && relative_links + effective_relative = true end - uri.path = new_url + if resource + if effective_relative + resource_url = resource.url - args[url_arg_index] = uri.to_s - else - raise "No resource exists at #{url}" if relative + # Output urls relative to the destination path, not the source path + current_dir = Pathname('/' + current_resource.destination_path).dirname + new_url = Pathname(resource_url).relative_path_from(current_dir).to_s + + # Put back the trailing slash to avoid unnecessary Apache redirects + if resource_url.end_with?('/') && !new_url.end_with?('/') + new_url << '/' + end + else + new_url = resource.url + end + + uri.path = new_url + + args[url_arg_index] = uri.to_s + else + raise "No resource exists at #{url}" if relative + end end end end