From 8c1f82d894f6138d277ba35a249cfb9d444d9b34 Mon Sep 17 00:00:00 2001 From: rick Date: Thu, 29 Sep 2011 11:02:35 -0600 Subject: [PATCH] let Gollum::Markup handle code blocks instead of RedCarpet --- lib/gollum/markup.rb | 3 ++- test/test_markup.rb | 34 ++++++++++++++++++++++++++++++++-- 2 files changed, 34 insertions(+), 3 deletions(-) diff --git a/lib/gollum/markup.rb b/lib/gollum/markup.rb index e6f490f1b..59f51a22e 100644 --- a/lib/gollum/markup.rb +++ b/lib/gollum/markup.rb @@ -449,6 +449,7 @@ def render(no_follow = false) @wiki.sanitizer data = extract_tex(@data.dup) + data = extract_code(data) data = extract_tags(data) flags = [ @@ -457,11 +458,11 @@ def render(no_follow = false) :tables, :strikethrough, :lax_htmlblock, - :gh_blockcode, :no_intraemphasis ] data = Redcarpet.new(data, *flags).to_html data = process_tags(data) + data = process_code(data) doc = Nokogiri::HTML::DocumentFragment.parse(data) diff --git a/test/test_markup.rb b/test/test_markup.rb index d8cd88d25..559929e47 100644 --- a/test/test_markup.rb +++ b/test/test_markup.rb @@ -421,6 +421,31 @@ " 2\n\n\n\n\n

b

" compare(content, output) end + + test "code with wiki links" do + content = <<-END +booya + +``` python +np.array([[2,2],[1,3]],np.float) +``` + END + + # rendered with Gollum::Markup + page, rendered = render_page(content) + assert_markup_highlights_code Gollum::Markup, rendered + + if Gollum.const_defined?(:MarkupGFM) + rendered_gfm = Gollum::MarkupGFM.new(page).render + assert_markup_highlights_code Gollum::MarkupGFM, rendered_gfm + end + end + + def assert_markup_highlights_code(markup_class, rendered) + assert_match /div class="highlight"/, rendered, "#{markup_class} doesn't highlight code\n #{rendered}" + assert_match /span class="n"/, rendered, "#{markup_class} doesn't highlight code\n #{rendered}" + assert_match /\(\[\[/, rendered, "#{markup_class} parses out wiki links\n#{rendered}" + end ######################################################################### # @@ -515,13 +540,18 @@ # ######################################################################### - def compare(content, output, ext = "md", regexes = []) + def render_page(content, ext = "md") index = @wiki.repo.index index.add("Bilbo-Baggins.#{ext}", content) index.commit("Add baggins") page = @wiki.page("Bilbo Baggins") - rendered = Gollum::Markup.new(page).render + [page, Gollum::Markup.new(page).render] + end + + def compare(content, output, ext = "md", regexes = []) + page, rendered = render_page(content, ext) + if regexes.empty? assert_equal normal(output), normal(rendered) else