summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorRobert Schilling <rschilling@student.tugraz.at>2014-08-11 08:50:56 +0200
committerRobert Schilling <rschilling@student.tugraz.at>2014-08-11 08:50:56 +0200
commit99eb283101108f1f95e95ade8c1352f547578b26 (patch)
treeed682bc2303d6862af4f2dbd5dd764d7c1e36f31 /app
parent0e3f8ea2ef2a7d6cc51ccb5d7ae854c6244b40eb (diff)
downloadgitlab-ce-99eb283101108f1f95e95ade8c1352f547578b26.tar.gz
Use readme we support to render if there are multiple readmes
Diffstat (limited to 'app')
-rw-r--r--app/helpers/tree_helper.rb27
-rw-r--r--app/models/tree.rb19
-rw-r--r--app/views/projects/blob/_text.html.haml4
-rw-r--r--app/views/projects/edit_tree/preview.html.haml4
-rw-r--r--app/views/projects/tree/_readme.html.haml8
-rw-r--r--app/views/shared/snippets/_blob.html.haml4
6 files changed, 37 insertions, 29 deletions
diff --git a/app/helpers/tree_helper.rb b/app/helpers/tree_helper.rb
index 29eb28af879..c36d0cf46e7 100644
--- a/app/helpers/tree_helper.rb
+++ b/app/helpers/tree_helper.rb
@@ -21,6 +21,16 @@ module TreeHelper
tree.html_safe
end
+ def render_readme(readme)
+ if Gitlab::MarkdownHelper.gitlab_markdown?(readme.name)
+ preserve(markdown(readme.data))
+ elsif Gitlab::MarkdownHelper.markup?(readme.name)
+ render_markup(readme.name, readme.data)
+ else
+ simple_format(readme.data)
+ end
+ end
+
# Return an image icon depending on the file type
#
# type - String type of the tree item; either 'folder' or 'file'
@@ -38,20 +48,6 @@ module TreeHelper
"file_#{hexdigest(content.name)}"
end
- # Public: Determines if a given filename is compatible with GitHub::Markup.
- #
- # filename - Filename string to check
- #
- # Returns boolean
- def markup?(filename)
- filename.downcase.end_with?(*%w(.textile .rdoc .org .creole .wiki .mediawiki
- .rst .adoc .asciidoc .asc))
- end
-
- def gitlab_markdown?(filename)
- filename.downcase.end_with?(*%w(.mdown .md .markdown))
- end
-
# Simple shortcut to File.join
def tree_join(*args)
File.join(*args)
@@ -94,7 +90,8 @@ module TreeHelper
end
def editing_preview_title(filename)
- if gitlab_markdown?(filename) || markup?(filename)
+ if Gitlab::MarkdownHelper.gitlab_markdown?(filename) ||
+ Gitlab::MarkdownHelper.markup?(filename)
'Preview'
else
'Diff'
diff --git a/app/models/tree.rb b/app/models/tree.rb
index ac2183be44b..5bb1f3cdaf4 100644
--- a/app/models/tree.rb
+++ b/app/models/tree.rb
@@ -6,7 +6,24 @@ class Tree
git_repo = repository.raw_repository
@entries = Gitlab::Git::Tree.where(git_repo, sha, path)
- if readme_tree = @entries.find(&:readme?)
+ available_readmes = @entries.select(&:readme?)
+
+ if available_readmes.count > 0
+ # If there is more than 1 readme in tree, find readme which is supported
+ # by markup renderer.
+ if available_readmes.length > 1
+ supported_readmes = available_readmes.select do |readme|
+ Gitlab::MarkdownHelper.gitlab_markdown?(readme.name) ||
+ Gitlab::MarkdownHelper.markup?(readme.name)
+ end
+
+ # Take the first supported readme, or the first available readme, if we
+ # don't support any of them
+ readme_tree = supported_readmes.first || available_readmes.first
+ else
+ readme_tree = available_readmes.first
+ end
+
readme_path = path == '/' ? readme_tree.name : File.join(path, readme_tree.name)
@readme = Gitlab::Git::Blob.find(git_repo, sha, readme_path)
end
diff --git a/app/views/projects/blob/_text.html.haml b/app/views/projects/blob/_text.html.haml
index 7cbea7c3eb6..fb6af1127f8 100644
--- a/app/views/projects/blob/_text.html.haml
+++ b/app/views/projects/blob/_text.html.haml
@@ -1,8 +1,8 @@
-- if gitlab_markdown?(blob.name)
+- if Gitlab::MarkdownHelper.gitlab_markdown?(blob.name)
.file-content.wiki
= preserve do
= markdown(blob.data)
-- elsif markup?(blob.name)
+- elsif Gitlab::MarkdownHelper.markup?(blob.name)
.file-content.wiki
= render_markup(blob.name, blob.data)
- else
diff --git a/app/views/projects/edit_tree/preview.html.haml b/app/views/projects/edit_tree/preview.html.haml
index 340f68cc05c..65ceafbba86 100644
--- a/app/views/projects/edit_tree/preview.html.haml
+++ b/app/views/projects/edit_tree/preview.html.haml
@@ -1,10 +1,10 @@
.diff-file
.diff-content
- - if gitlab_markdown?(@blob.name)
+ - if Gitlab::MarkdownHelper.gitlab_markdown?(@blob.name)
.file-content.wiki
= preserve do
= markdown(@content)
- - elsif markup?(@blob.name)
+ - elsif Gitlab::MarkdownHelper.markup?(@blob.name)
.file-content.wiki
= raw GitHub::Markup.render(@blob.name, @content)
- else
diff --git a/app/views/projects/tree/_readme.html.haml b/app/views/projects/tree/_readme.html.haml
index 6257ba8c09a..9d0292059d6 100644
--- a/app/views/projects/tree/_readme.html.haml
+++ b/app/views/projects/tree/_readme.html.haml
@@ -3,10 +3,4 @@
%i.icon-file
= readme.name
.wiki
- - if gitlab_markdown?(readme.name)
- = preserve do
- = markdown(readme.data)
- - elsif markup?(readme.name)
- = render_markup(readme.name, readme.data)
- - else
- = simple_format(readme.data)
+ = render_readme(readme)
diff --git a/app/views/shared/snippets/_blob.html.haml b/app/views/shared/snippets/_blob.html.haml
index 8cec6168ab8..90c096dda22 100644
--- a/app/views/shared/snippets/_blob.html.haml
+++ b/app/views/shared/snippets/_blob.html.haml
@@ -1,9 +1,9 @@
- unless @snippet.content.empty?
- - if gitlab_markdown?(@snippet.file_name)
+ - if Gitlab::MarkdownHelper.gitlab_markdown?(@snippet.file_name)
.file-content.wiki
= preserve do
= markdown(@snippet.data)
- - elsif markup?(@snippet.file_name)
+ - elsif Gitlab::MarkdownHelper.markup?(@snippet.file_name)
.file-content.wiki
= render_markup(@snippet.file_name, @snippet.data)
- else