summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Speicher <rspeicher@gmail.com>2015-05-18 20:13:46 -0400
committerRobert Speicher <rspeicher@gmail.com>2015-05-18 20:13:46 -0400
commit9c6427768dc3d81d5837d205a30cd15397b0ba86 (patch)
tree54701d5d517061602ff5ac58512268f4c18a105a
parentb61a44fe1aa17a3e647e71115d1b4a6a39d8c2d2 (diff)
parentb0659c1b072267e0e1fa3066ca1a8cc17bc8f6c0 (diff)
downloadgitlab-ce-9c6427768dc3d81d5837d205a30cd15397b0ba86.tar.gz
Merge pull request #9289 from jirutka/asciidoc-2
Refactor, simplify and unify helpers for rendering markup
-rw-r--r--app/helpers/application_helper.rb10
-rw-r--r--app/helpers/blob_helper.rb2
-rw-r--r--app/helpers/tree_helper.rb10
-rw-r--r--app/models/tree.rb6
-rw-r--r--app/views/projects/blob/_text.html.haml6
-rw-r--r--app/views/search/results/_snippet_blob.html.haml11
-rw-r--r--app/views/shared/snippets/_blob.html.haml6
-rw-r--r--lib/gitlab/markup_helper.rb (renamed from lib/gitlab/markdown_helper.rb)10
-rw-r--r--spec/helpers/application_helper_spec.rb7
-rw-r--r--spec/lib/gitlab/markup_helper_spec.rb (renamed from spec/lib/gitlab/gitlab_markdown_helper_spec.rb)16
10 files changed, 35 insertions, 49 deletions
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index bc07c09cd4a..bcd400b7e7b 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -222,7 +222,9 @@ module ApplicationHelper
end
def render_markup(file_name, file_content)
- if asciidoc?(file_name)
+ if gitlab_markdown?(file_name)
+ Haml::Helpers.preserve(markdown(file_content))
+ elsif asciidoc?(file_name)
asciidoc(file_content)
else
GitHub::Markup.render(file_name, file_content).
@@ -233,15 +235,15 @@ module ApplicationHelper
end
def markup?(filename)
- Gitlab::MarkdownHelper.markup?(filename)
+ Gitlab::MarkupHelper.markup?(filename)
end
def gitlab_markdown?(filename)
- Gitlab::MarkdownHelper.gitlab_markdown?(filename)
+ Gitlab::MarkupHelper.gitlab_markdown?(filename)
end
def asciidoc?(filename)
- Gitlab::MarkdownHelper.asciidoc?(filename)
+ Gitlab::MarkupHelper.asciidoc?(filename)
end
# Overrides ActionView::Helpers::UrlHelper#link_to to add `rel="nofollow"` to
diff --git a/app/helpers/blob_helper.rb b/app/helpers/blob_helper.rb
index 4ea838ca447..885ac5f85b8 100644
--- a/app/helpers/blob_helper.rb
+++ b/app/helpers/blob_helper.rb
@@ -55,7 +55,7 @@ module BlobHelper
end
def editing_preview_title(filename)
- if Gitlab::MarkdownHelper.previewable?(filename)
+ if Gitlab::MarkupHelper.previewable?(filename)
'Preview'
else
'Preview changes'
diff --git a/app/helpers/tree_helper.rb b/app/helpers/tree_helper.rb
index c03564a71ab..03a49e119b8 100644
--- a/app/helpers/tree_helper.rb
+++ b/app/helpers/tree_helper.rb
@@ -25,15 +25,7 @@ module TreeHelper
end
def render_readme(readme)
- if gitlab_markdown?(readme.name)
- preserve(markdown(readme.data))
- elsif asciidoc?(readme.name)
- asciidoc(readme.data)
- elsif markup?(readme.name)
- render_markup(readme.name, readme.data)
- else
- simple_format(readme.data)
- end
+ render_markup(readme.name, readme.data)
end
# Return an image icon depending on the file type and mode
diff --git a/app/models/tree.rb b/app/models/tree.rb
index f279e896cda..93b3246a668 100644
--- a/app/models/tree.rb
+++ b/app/models/tree.rb
@@ -1,11 +1,11 @@
class Tree
- include Gitlab::MarkdownHelper
+ include Gitlab::MarkupHelper
attr_accessor :repository, :sha, :path, :entries
def initialize(repository, sha, path = '/')
path = '/' if path.blank?
-
+
@repository = repository
@sha = sha
@path = path
@@ -20,7 +20,7 @@ class Tree
available_readmes = blobs.select(&:readme?)
if available_readmes.count == 0
- return @readme = nil
+ return @readme = nil
end
# Take the first previewable readme, or the first available readme, if we
diff --git a/app/views/projects/blob/_text.html.haml b/app/views/projects/blob/_text.html.haml
index f6bd62f239b..4429c395aee 100644
--- a/app/views/projects/blob/_text.html.haml
+++ b/app/views/projects/blob/_text.html.haml
@@ -1,8 +1,4 @@
-- if gitlab_markdown?(blob.name)
- .file-content.wiki
- = preserve do
- = markdown(blob.data)
-- elsif markup?(blob.name)
+- if markup?(blob.name)
.file-content.wiki
= render_markup(blob.name, blob.data)
- else
diff --git a/app/views/search/results/_snippet_blob.html.haml b/app/views/search/results/_snippet_blob.html.haml
index 8af393777f0..95099853918 100644
--- a/app/views/search/results/_snippet_blob.html.haml
+++ b/app/views/search/results/_snippet_blob.html.haml
@@ -13,16 +13,7 @@
.file-title
%i.fa.fa-file
%strong= snippet_blob[:snippet_object].file_name
- - if gitlab_markdown?(snippet_blob[:snippet_object].file_name)
- .file-content.wiki
- - snippet_blob[:snippet_chunks].each do |snippet|
- - unless snippet[:data].empty?
- = preserve do
- = markdown(snippet[:data])
- - else
- .file-content.code
- .nothing-here-block Empty file
- - elsif markup?(snippet_blob[:snippet_object].file_name)
+ - if markup?(snippet_blob[:snippet_object].file_name)
.file-content.wiki
- snippet_blob[:snippet_chunks].each do |snippet|
- unless snippet[:data].empty?
diff --git a/app/views/shared/snippets/_blob.html.haml b/app/views/shared/snippets/_blob.html.haml
index 30458793fd1..d26a99bb14c 100644
--- a/app/views/shared/snippets/_blob.html.haml
+++ b/app/views/shared/snippets/_blob.html.haml
@@ -1,9 +1,5 @@
- unless @snippet.content.empty?
- - if gitlab_markdown?(@snippet.file_name)
- .file-content.wiki
- = preserve do
- = markdown(@snippet.data)
- - elsif markup?(@snippet.file_name)
+ - if markup?(@snippet.file_name)
.file-content.wiki
= render_markup(@snippet.file_name, @snippet.data)
- else
diff --git a/lib/gitlab/markdown_helper.rb b/lib/gitlab/markup_helper.rb
index 70384b1db2c..f99be969d3e 100644
--- a/lib/gitlab/markdown_helper.rb
+++ b/lib/gitlab/markup_helper.rb
@@ -1,5 +1,5 @@
module Gitlab
- module MarkdownHelper
+ module MarkupHelper
module_function
# Public: Determines if a given filename is compatible with GitHub::Markup.
@@ -8,8 +8,10 @@ module Gitlab
#
# Returns boolean
def markup?(filename)
- filename.downcase.end_with?(*%w(.textile .rdoc .org .creole .wiki
- .mediawiki .rst .adoc .ad .asciidoc))
+ gitlab_markdown?(filename) ||
+ asciidoc?(filename) ||
+ filename.downcase.end_with?(*%w(.textile .rdoc .org .creole .wiki
+ .mediawiki .rst))
end
# Public: Determines if a given filename is compatible with
@@ -32,7 +34,7 @@ module Gitlab
end
def previewable?(filename)
- gitlab_markdown?(filename) || markup?(filename)
+ markup?(filename)
end
end
end
diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb
index 59870dfb192..3307ac776fc 100644
--- a/spec/helpers/application_helper_spec.rb
+++ b/spec/helpers/application_helper_spec.rb
@@ -269,6 +269,13 @@ describe ApplicationHelper do
expect(render_markup('foo.rst', content).encoding.name).to eq('UTF-8')
end
+ it "should delegate to #markdown when file name corresponds to Markdown" do
+ expect(self).to receive(:gitlab_markdown?).with('foo.md').and_return(true)
+ expect(self).to receive(:markdown).and_return('NOEL')
+
+ expect(render_markup('foo.md', content)).to eq('NOEL')
+ end
+
it "should delegate to #asciidoc when file name corresponds to AsciiDoc" do
expect(self).to receive(:asciidoc?).with('foo.adoc').and_return(true)
expect(self).to receive(:asciidoc).and_return('NOEL')
diff --git a/spec/lib/gitlab/gitlab_markdown_helper_spec.rb b/spec/lib/gitlab/markup_helper_spec.rb
index beaafd56352..7e716e866b1 100644
--- a/spec/lib/gitlab/gitlab_markdown_helper_spec.rb
+++ b/spec/lib/gitlab/markup_helper_spec.rb
@@ -1,40 +1,40 @@
require 'spec_helper'
-describe Gitlab::MarkdownHelper do
+describe Gitlab::MarkupHelper do
describe '#markup?' do
%w(textile rdoc org creole wiki
- mediawiki rst adoc ad asciidoc).each do |type|
+ mediawiki rst adoc ad asciidoc mdown md markdown).each do |type|
it "returns true for #{type} files" do
- expect(Gitlab::MarkdownHelper.markup?("README.#{type}")).to be_truthy
+ expect(Gitlab::MarkupHelper.markup?("README.#{type}")).to be_truthy
end
end
it 'returns false when given a non-markup filename' do
- expect(Gitlab::MarkdownHelper.markup?('README.rb')).not_to be_truthy
+ expect(Gitlab::MarkupHelper.markup?('README.rb')).not_to be_truthy
end
end
describe '#gitlab_markdown?' do
%w(mdown md markdown).each do |type|
it "returns true for #{type} files" do
- expect(Gitlab::MarkdownHelper.gitlab_markdown?("README.#{type}")).to be_truthy
+ expect(Gitlab::MarkupHelper.gitlab_markdown?("README.#{type}")).to be_truthy
end
end
it 'returns false when given a non-markdown filename' do
- expect(Gitlab::MarkdownHelper.gitlab_markdown?('README.rb')).not_to be_truthy
+ expect(Gitlab::MarkupHelper.gitlab_markdown?('README.rb')).not_to be_truthy
end
end
describe '#asciidoc?' do
%w(adoc ad asciidoc ADOC).each do |type|
it "returns true for #{type} files" do
- expect(Gitlab::MarkdownHelper.asciidoc?("README.#{type}")).to be_truthy
+ expect(Gitlab::MarkupHelper.asciidoc?("README.#{type}")).to be_truthy
end
end
it 'returns false when given a non-asciidoc filename' do
- expect(Gitlab::MarkdownHelper.asciidoc?('README.rb')).not_to be_truthy
+ expect(Gitlab::MarkupHelper.asciidoc?('README.rb')).not_to be_truthy
end
end
end