Commit 70f828cd4b06c0854e71b72cc03cf45c11987d7e

Authored by Marin Jankovski
1 parent 1eabd9df

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