From 4838611273fd1ff514c9edf0bfe422f67eb9ed0b Mon Sep 17 00:00:00 2001 From: bootstraponline Date: Fri, 7 Dec 2012 17:16:25 -0700 Subject: [PATCH] Fix #602 --- lib/gollum/frontend/views/page.rb | 5 +++-- test/test_app.rb | 7 +++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/gollum/frontend/views/page.rb b/lib/gollum/frontend/views/page.rb index 4329d64a..96bf27f4 100644 --- a/lib/gollum/frontend/views/page.rb +++ b/lib/gollum/frontend/views/page.rb @@ -6,6 +6,7 @@ module Precious attr_reader :content, :page, :header, :footer DATE_FORMAT = "%Y-%m-%d %H:%M:%S" DEFAULT_AUTHOR = 'you' + @@to_xml = { :save_with => Nokogiri::XML::Node::SaveOptions::DEFAULT_XHTML ^ 1, :indent => 0, :encoding => 'UTF-8' } def title h1 = @h1_title ? page_header_from_content(@content) : false @@ -134,7 +135,7 @@ module Precious def page_header_from_content(content) doc = build_document(content) title = find_header_node(doc) - Sanitize.clean(title.to_xhtml(:encoding => 'UTF-8')).strip unless title.empty? + Sanitize.clean(title.to_xml( @@to_xml )).strip unless title.empty? end # Returns page content without title if it was extracted. @@ -144,7 +145,7 @@ module Precious title = find_header_node(doc) title.remove unless title.empty? # .inner_html will cause href escaping on UTF-8 - doc.css("div#gollum-root").children.to_xhtml(:encoding => 'UTF-8') + doc.css("div#gollum-root").children.to_xml( @@to_xml ) end end end diff --git a/test/test_app.rb b/test/test_app.rb index 8158438e..e53f1d49 100644 --- a/test/test_app.rb +++ b/test/test_app.rb @@ -42,7 +42,7 @@ context "Frontend" do assert_equal 'μ†ℱ'.scan(/./), ["μ", "†", "ℱ"] end - # This should not match + test "broken four space" do page = 'utfh1' text = %( @@ -56,8 +56,11 @@ context "Frontend" do { :name => 'user1', :email => 'user1' }); get page + # good html: + #
one\ntwo\nthree\nfour\n
\n + # broken html: #
\n  one\ntwo\nthree\nfour\n\n
- assert_match /
\n  .+<\/code>\n<\/pre>/m, last_response.body
+    assert_match /
one\ntwo\nthree\nfour\n<\/code><\/pre>\n/m, last_response.body
   end
 
   test "UTF-8 headers href preserved" do