diff --git a/lib/doc_page.rb b/lib/doc_page.rb index c81111c32..869c40c77 100644 --- a/lib/doc_page.rb +++ b/lib/doc_page.rb @@ -5,6 +5,7 @@ require 'titleizer' require 'html5_page' require 'flags' +require 'erb' class DocPage < Html5Page needs :site_name, :doc_title, :doc_path, :page_name, :src, :locale @@ -124,8 +125,8 @@ def body_content # Encode page name and fragment name separately so that # the fragment indicator '#' won't be escaped. page_name, fragment = @back.split('#') - url_components = [URI.escape(page_name, URI::PATTERN::RESERVED)] - url_components << URI.escape(fragment, URI::PATTERN::RESERVED) if fragment + url_components = [ERB::Util.u(page_name)] + url_components << ERB::Util.u(fragment) if fragment back_url = url_components.join('#') div.back { diff --git a/lib/step.rb b/lib/step.rb index 3fd3587f2..1d2b63afb 100644 --- a/lib/step.rb +++ b/lib/step.rb @@ -4,6 +4,7 @@ require 'markdown_renderer' require 'titleizer' require 'active_support/core_ext/string/strip' +require 'erb' class Step < Erector::Widget external :style, <<-CSS @@ -107,7 +108,7 @@ def link_without_toc name end def _escaped str - URI.escape(str, URI::PATTERN::RESERVED) + ERB::Util.u(str) end def simple_link name, options={}