summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Speicher <rspeicher@gmail.com>2012-09-05 16:52:49 -0400
committerRobert Speicher <rspeicher@gmail.com>2012-09-05 16:52:49 -0400
commit52c521ffe84dac5dc72a299ee1ecf4736a10f07f (patch)
treef7bf0b2eb33589dcb7047db86f3e05fd4b0496bd
parentb78fd0c13088ce2c19d939a26a26e247ca5047ea (diff)
downloadgitlab-ce-52c521ffe84dac5dc72a299ee1ecf4736a10f07f.tar.gz
Use GitHub::Markup to parse markup files
Closes #1382
-rw-r--r--app/helpers/tree_helper.rb10
-rw-r--r--app/views/refs/_tree.html.haml6
-rw-r--r--app/views/refs/_tree_file.html.haml5
-rw-r--r--spec/helpers/tree_helper_spec.rb15
4 files changed, 28 insertions, 8 deletions
diff --git a/app/helpers/tree_helper.rb b/app/helpers/tree_helper.rb
index ed3053d8af5..c51ee84a25e 100644
--- a/app/helpers/tree_helper.rb
+++ b/app/helpers/tree_helper.rb
@@ -24,4 +24,14 @@ module TreeHelper
content.name
end
end
+
+ # Public: Determines if a given filename is compatible with GitHub::Markup.
+ #
+ # filename - Filename string to check
+ #
+ # Returns boolean
+ def markup?(filename)
+ filename.end_with?(*%w(.mdown .md .markdown .textile .rdoc .org .creole
+ .mediawiki .rst .asciidoc .pod))
+ end
end
diff --git a/app/views/refs/_tree.html.haml b/app/views/refs/_tree.html.haml
index a4765c1087a..297a3b5f60a 100644
--- a/app/views/refs/_tree.html.haml
+++ b/app/views/refs/_tree.html.haml
@@ -43,11 +43,7 @@
%i.icon-file
= content.name
.file_content.wiki
- - if content.name =~ /\.(md|markdown)$/i
- = preserve do
- = markdown(content.data)
- - else
- = simple_format(content.data)
+ = raw GitHub::Markup.render(content.name, content.data)
:javascript
$(function(){
diff --git a/app/views/refs/_tree_file.html.haml b/app/views/refs/_tree_file.html.haml
index b5ed61bb45a..765f271a1bf 100644
--- a/app/views/refs/_tree_file.html.haml
+++ b/app/views/refs/_tree_file.html.haml
@@ -9,10 +9,9 @@
= link_to "history", project_commits_path(@project, path: params[:path], ref: @ref), class: "btn very_small"
= link_to "blame", blame_file_project_ref_path(@project, @ref, path: params[:path]), class: "btn very_small"
- if file.text?
- - if name =~ /\.(md|markdown)$/i
+ - if markup?(name)
.file_content.wiki
- = preserve do
- = markdown(file.data)
+ = raw GitHub::Markup.render(name, file.data)
- else
.file_content.code
- unless file.empty?
diff --git a/spec/helpers/tree_helper_spec.rb b/spec/helpers/tree_helper_spec.rb
new file mode 100644
index 00000000000..bb124d8b303
--- /dev/null
+++ b/spec/helpers/tree_helper_spec.rb
@@ -0,0 +1,15 @@
+require 'spec_helper'
+
+describe TreeHelper do
+ describe '#markup?' do
+ %w(mdown md markdown textile rdoc org creole mediawiki rst asciidoc pod).each do |type|
+ it "returns true for #{type} files" do
+ markup?("README.#{type}").should be_true
+ end
+ end
+
+ it "returns false when given a non-markup filename" do
+ markup?('README.rb').should_not be_true
+ end
+ end
+end