OSDN Git Service

Use Gitlab Markdown for Markdown files and Gollum to render the rest.
authorDan Knox <dknox@threedotloft.com>
Thu, 14 Mar 2013 06:31:08 +0000 (23:31 -0700)
committerDan Knox <dknox@threedotloft.com>
Thu, 14 Mar 2013 06:31:08 +0000 (23:31 -0700)
This commit enables the usage of the Gitlab Markdown post processing
on all Markdown formatted files. For file types that do not contain
Markdown, it defaults to the Gollum native renderer to process the
content.

app/helpers/gitlab_markdown_helper.rb
app/views/wikis/show.html.haml
spec/helpers/gitlab_markdown_helper_spec.rb

index 1a3d34e..375f886 100644 (file)
@@ -49,4 +49,12 @@ module GitlabMarkdownHelper
 
     @markdown.render(text).html_safe
   end
+
+  def render_wiki_content(wiki_page)
+    if wiki_page.format == :markdown
+      markdown(wiki_page.content)
+    else
+      wiki_page.formatted_content.html_safe
+    end
+  end
 end
index 54d2a72..8e98706 100644 (file)
@@ -10,7 +10,7 @@
 .file_holder
   .file_content.wiki
     = preserve do
-      = @wiki.formatted_content.html_safe
+      = render_wiki_content(@wiki)
 
 - commit = CommitDecorator.new(@wiki.version)
 %p.time Last edited by #{commit.author_link(avatar: true, size: 16)} #{time_ago_in_words @wiki.created_at} ago
index 1f5fabf..ac49e4d 100644 (file)
@@ -363,4 +363,28 @@ describe GitlabMarkdownHelper do
       markdown(":smile:").should include("src=\"#{url_to_image("emoji/smile")}")
     end
   end
+
+  describe "#render_wiki_content" do
+    before do
+      @wiki = stub('WikiPage')
+      @wiki.stub(:content).and_return('wiki content')
+    end
+
+    it "should use Gitlab Flavored Markdown for markdown files" do
+      @wiki.stub(:format).and_return(:markdown)
+
+      helper.should_receive(:markdown).with('wiki content')
+
+      helper.render_wiki_content(@wiki)
+    end
+
+    it "should use the Gollum renderer for all other file types" do
+      @wiki.stub(:format).and_return(:rdoc)
+      formatted_content_stub = stub('formatted_content')
+      formatted_content_stub.should_receive(:html_safe)
+      @wiki.stub(:formatted_content).and_return(formatted_content_stub)
+
+      helper.render_wiki_content(@wiki)
+    end
+  end
 end