diff options
author | Robert Schilling <rschilling@student.tugraz.at> | 2014-08-11 08:50:56 +0200 |
---|---|---|
committer | Robert Schilling <rschilling@student.tugraz.at> | 2014-08-11 08:50:56 +0200 |
commit | 99eb283101108f1f95e95ade8c1352f547578b26 (patch) | |
tree | ed682bc2303d6862af4f2dbd5dd764d7c1e36f31 /app | |
parent | 0e3f8ea2ef2a7d6cc51ccb5d7ae854c6244b40eb (diff) | |
download | gitlab-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.rb | 27 | ||||
-rw-r--r-- | app/models/tree.rb | 19 | ||||
-rw-r--r-- | app/views/projects/blob/_text.html.haml | 4 | ||||
-rw-r--r-- | app/views/projects/edit_tree/preview.html.haml | 4 | ||||
-rw-r--r-- | app/views/projects/tree/_readme.html.haml | 8 | ||||
-rw-r--r-- | app/views/shared/snippets/_blob.html.haml | 4 |
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 |