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 60 end
61 61  
62 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 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 66 text.gsub!("](#{string})", "](/#{new_link})")
72 67 end
73 68 text
74 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 98 end
... ...