lib/wikilink/converter/utils.rb in wikilink-converter-0.2.1 vs lib/wikilink/converter/utils.rb in wikilink-converter-0.2.2

- old
+ new

@@ -1,6 +1,7 @@ require 'cgi' +require 'uri' module Wikilink class Converter module ArgumentExtractor def extract_arguments(*args) @@ -27,11 +28,16 @@ attributes[:class] = Array(attributes[:class]).flatten.join(' ').split.uniq.join(' ') attributes.delete(:class) if attributes[:class].empty? attributes = attributes.inject('') do |memo, (key, value)| memo + key.to_s + '="' + CGI.escape_html(value) + '" ' end + url, fragment = url.split('#', 2) + url = URI.encode(url) + if fragment + url << '#' + URI.encode(fragment, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]")) + end - "<a #{attributes}href=\"#{CGI.escape_html url}\">#{CGI.escape_html name}</a>" + %Q{<a #{attributes}href="#{url}">#{CGI.escape_html name}</a>} end end module HTMLAttributes def html_class(extra_classes = nil)