Commit 7635afd0c4872e2552413b17b1a63bae76e62e45

Authored by Riyad Preukschas
1 parent 640d51f4

Use Urls for references in GFM

lib/gitlab/markdown.rb
... ... @@ -147,31 +147,31 @@ module Gitlab
147 147  
148 148 def reference_user(identifier)
149 149 if member = @project.users_projects.joins(:user).where(users: { username: identifier }).first
150   - link_to("@#{identifier}", project_team_member_path(@project, member), html_options.merge(class: "gfm gfm-team_member #{html_options[:class]}")) if member
  150 + link_to("@#{identifier}", project_team_member_url(@project, member), html_options.merge(class: "gfm gfm-team_member #{html_options[:class]}")) if member
151 151 end
152 152 end
153 153  
154 154 def reference_issue(identifier)
155 155 if issue = @project.issues.where(id: identifier).first
156   - link_to("##{identifier}", project_issue_path(@project, issue), html_options.merge(title: "Issue: #{issue.title}", class: "gfm gfm-issue #{html_options[:class]}"))
  156 + link_to("##{identifier}", project_issue_url(@project, issue), html_options.merge(title: "Issue: #{issue.title}", class: "gfm gfm-issue #{html_options[:class]}"))
157 157 end
158 158 end
159 159  
160 160 def reference_merge_request(identifier)
161 161 if merge_request = @project.merge_requests.where(id: identifier).first
162   - link_to("!#{identifier}", project_merge_request_path(@project, merge_request), html_options.merge(title: "Merge Request: #{merge_request.title}", class: "gfm gfm-merge_request #{html_options[:class]}"))
  162 + link_to("!#{identifier}", project_merge_request_url(@project, merge_request), html_options.merge(title: "Merge Request: #{merge_request.title}", class: "gfm gfm-merge_request #{html_options[:class]}"))
163 163 end
164 164 end
165 165  
166 166 def reference_snippet(identifier)
167 167 if snippet = @project.snippets.where(id: identifier).first
168   - link_to("$#{identifier}", project_snippet_path(@project, snippet), html_options.merge(title: "Snippet: #{snippet.title}", class: "gfm gfm-snippet #{html_options[:class]}"))
  168 + link_to("$#{identifier}", project_snippet_url(@project, snippet), html_options.merge(title: "Snippet: #{snippet.title}", class: "gfm gfm-snippet #{html_options[:class]}"))
169 169 end
170 170 end
171 171  
172 172 def reference_commit(identifier)
173 173 if @project.valid_repo? && commit = @project.repository.commit(identifier)
174   - link_to(identifier, project_commit_path(@project, commit), html_options.merge(title: CommitDecorator.new(commit).link_title, class: "gfm gfm-commit #{html_options[:class]}"))
  174 + link_to(identifier, project_commit_url(@project, commit), html_options.merge(title: CommitDecorator.new(commit).link_title, class: "gfm gfm-commit #{html_options[:class]}"))
175 175 end
176 176 end
177 177 end
... ...
spec/helpers/gitlab_markdown_helper_spec.rb
... ... @@ -272,7 +272,7 @@ describe GitlabMarkdownHelper do
272 272 groups[0].should match(/This should finally fix $/)
273 273  
274 274 # First issue link
275   - groups[1].should match(/href="#{project_issue_path(project, issues[0])}"/)
  275 + groups[1].should match(/href="#{project_issue_url(project, issues[0])}"/)
276 276 groups[1].should match(/##{issues[0].id}$/)
277 277  
278 278 # Internal commit link
... ... @@ -280,7 +280,7 @@ describe GitlabMarkdownHelper do
280 280 groups[2].should match(/ and /)
281 281  
282 282 # Second issue link
283   - groups[3].should match(/href="#{project_issue_path(project, issues[1])}"/)
  283 + groups[3].should match(/href="#{project_issue_url(project, issues[1])}"/)
284 284 groups[3].should match(/##{issues[1].id}$/)
285 285  
286 286 # Trailing commit link
... ... @@ -339,5 +339,9 @@ describe GitlabMarkdownHelper do
339 339 it "should leave inline code untouched" do
340 340 markdown("\nDon't use `$#{snippet.id}` here.\n").should == "<p>Don&#39;t use <code>$#{snippet.id}</code> here.</p>\n"
341 341 end
  342 +
  343 + it "should generate absolute urls for refs" do
  344 + markdown("##{issue.id}").should include(project_issue_url(project, issue))
  345 + end
342 346 end
343 347 end
... ...