Commit 70f828cd4b06c0854e71b72cc03cf45c11987d7e
1 parent
1eabd9df
Exists in
master
and in
4 other branches
Split.
Showing
1 changed file
with
30 additions
and
7 deletions
Show diff stats
app/helpers/gitlab_markdown_helper.rb
@@ -60,16 +60,39 @@ module GitlabMarkdownHelper | @@ -60,16 +60,39 @@ module GitlabMarkdownHelper | ||
60 | end | 60 | end |
61 | 61 | ||
62 | def create_relative_links(text, project_path_with_namespace, ref, wiki = false) | 62 | def create_relative_links(text, project_path_with_namespace, ref, wiki = false) |
63 | - links = text.split("\n").map { |a| a.scan(/\]\(([^(]+)\)/) }.reject{|b| b.empty? }.flatten.reject{|c| c.include?("http" || "www")} | 63 | + links = extract_paths(text) |
64 | links.each do |string| | 64 | links.each do |string| |
65 | - new_link = [ | ||
66 | - project_path_with_namespace, | ||
67 | - wiki ? "wikis":"blob", | ||
68 | - ref, | ||
69 | - string | ||
70 | - ].compact.join("/") | 65 | + new_link = new_link(project_path_with_namespace, string, ref) |
71 | text.gsub!("](#{string})", "](/#{new_link})") | 66 | text.gsub!("](#{string})", "](/#{new_link})") |
72 | end | 67 | end |
73 | text | 68 | text |
74 | end | 69 | end |
70 | + | ||
71 | + def extract_paths(text) | ||
72 | + text.split("\n").map { |a| a.scan(/\]\(([^(]+)\)/) }.reject{|b| b.empty? }.flatten.reject{|c| c.include?("http" || "www")} | ||
73 | + end | ||
74 | + | ||
75 | + def new_link(path_with_namespace, string, ref) | ||
76 | + [ | ||
77 | + path_with_namespace, | ||
78 | + path(string, ref), | ||
79 | + string | ||
80 | + ].compact.join("/") | ||
81 | + end | ||
82 | + | ||
83 | + def path(string, ref) | ||
84 | + if File.exists?(Rails.root.join(string)) | ||
85 | + "#{local_path(string)}/#{correct_ref(ref)}" | ||
86 | + else | ||
87 | + "wikis" | ||
88 | + end | ||
89 | + end | ||
90 | + | ||
91 | + def local_path(string) | ||
92 | + File.directory?(Rails.root.join(string)) ? "tree":"blob" | ||
93 | + end | ||
94 | + | ||
95 | + def correct_ref(ref) | ||
96 | + ref ? ref:'master' | ||
97 | + end | ||
75 | end | 98 | end |