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)