From e0a4b8f17d30268e58fe19b8b8134cd22416b550 Mon Sep 17 00:00:00 2001 From: Thomas Reynolds Date: Wed, 30 Oct 2013 09:18:25 -0700 Subject: [PATCH] dont route kramdown mailto links through link_to. Closes #1058 --- middleman-core/features/markdown_kramdown.feature | 4 +++- .../lib/middleman-core/renderers/kramdown.rb | 15 +++++++-------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/middleman-core/features/markdown_kramdown.feature b/middleman-core/features/markdown_kramdown.feature index 898e12b2..fb042d17 100644 --- a/middleman-core/features/markdown_kramdown.feature +++ b/middleman-core/features/markdown_kramdown.feature @@ -26,7 +26,7 @@ Feature: Markdown (Kramdown) support ![image](blank.gif) - [Mail me](mailto:ben@benhollis.net) + (mailto:mail@mail.com) """ Given the Server is running at "markdown-app" When I go to "/link_and_image/" @@ -34,3 +34,5 @@ Feature: Markdown (Kramdown) support Then I should see 'width="1"' And I should see 'height="1"' And I should see 'src="/images/blank.gif"' + And I should see 'src="/images/blank.gif"' + And I should see "mail@mail.com" diff --git a/middleman-core/lib/middleman-core/renderers/kramdown.rb b/middleman-core/lib/middleman-core/renderers/kramdown.rb index 81bb867a..9701d0d2 100644 --- a/middleman-core/lib/middleman-core/renderers/kramdown.rb +++ b/middleman-core/lib/middleman-core/renderers/kramdown.rb @@ -19,8 +19,7 @@ module Middleman cattr_accessor :middleman_app def convert_img(el, indent) - # Constructing a new hash is required because Kramdown uses a crazy non-hash in 1.8 - attrs = Hash[el.attr.dup.to_a] + attrs = el.attr.dup link = attrs.delete('src') middleman_app.image_tag(link, attrs) @@ -28,16 +27,16 @@ module Middleman def convert_a(el, indent) content = inner(el, indent) - # Constructing a new hash is required because Kramdown uses a crazy non-hash in 1.8 - attr = Hash[el.attr.dup.to_a] - if attr['href'] =~ /\Amailto:/ - mail_addr = attr['href'].sub(/\Amailto:/, '') - attr['href'] = obfuscate('mailto') << ":" << obfuscate(mail_addr) + + if el.attr['href'] =~ /\Amailto:/ + mail_addr = el.attr['href'].sub(/\Amailto:/, '') + href = obfuscate('mailto') << ":" << obfuscate(mail_addr) content = obfuscate(content) if content == mail_addr + return %Q{#{content}} end + attr = el.attr.dup link = attr.delete('href') - middleman_app.link_to(content, link, attr) end end