diff --git a/lib/gollum/markup.rb b/lib/gollum/markup.rb index f2de7593..e61047f9 100644 --- a/lib/gollum/markup.rb +++ b/lib/gollum/markup.rb @@ -95,7 +95,8 @@ module Gollum def process_headers(doc) toc = nil doc.css('h1,h2,h3,h4,h5,h6').each do |h| - h_name = h.content.gsub(' ','-') + # must escape " + h_name = h.content.gsub(' ','-').gsub('"','%22') level = h.name.gsub(/[hH]/,'').to_i diff --git a/test/test_unicode.rb b/test/test_unicode.rb index cfb67490..7aa2ca28 100644 --- a/test/test_unicode.rb +++ b/test/test_unicode.rb @@ -42,21 +42,21 @@ context "Unicode Support" do end test "create and read non-latin page with anchor 2" do - @wiki.write_page("test", :markdown, "# La faune d'Édiacara") + @wiki.write_page("test", :markdown, "# \"La\" faune d'Édiacara") page = @wiki.page("test") assert_equal Gollum::Page, page.class - assert_equal "# La faune d'Édiacara", utf8(page.raw_data) + assert_equal "# \"La\" faune d'Édiacara", utf8(page.raw_data) - # markup.rb + # markup.rb test: ', ", É doc = Nokogiri::HTML page.formatted_data h1s = doc / :h1 h1 = h1s.first anchors = h1 / :a assert_equal 1, h1s.size assert_equal 1, anchors.size - assert_equal %q(#La-faune-d'Édiacara), anchors[0]['href'] - assert_equal %q(La-faune-d'Édiacara), anchors[0]['id'] + assert_equal %q(#%22La%22-faune-d'Édiacara), anchors[0]['href'] + assert_equal %q(%22La%22-faune-d'Édiacara), anchors[0]['id'] assert_equal 'anchor', anchors[0]['class'] assert_equal '', anchors[0].text end