summaryrefslogtreecommitdiff
path: root/app/helpers
diff options
context:
space:
mode:
authorRobert Speicher <robert@gitlab.com>2015-12-08 20:22:23 +0000
committerRobert Speicher <robert@gitlab.com>2015-12-08 20:22:23 +0000
commitbcd89a58e736685bcce662fe0acf793ee925b536 (patch)
treed38abe907bf3d9d9591227d627c2b25bb4a2720c /app/helpers
parent02cc978ebc0650284b2b7b0bd4cf0bc633ab788e (diff)
parent926c3bef9fbda49d5cab268bcd83355142e945c1 (diff)
downloadgitlab-ce-bcd89a58e736685bcce662fe0acf793ee925b536.tar.gz
Merge branch 'reference-pipeline-and-caching' into 'master'
Implement different Markdown rendering pipelines and cache Markdown Builds on !1090. Related to !1014. Fixes #2054. See merge request !1602
Diffstat (limited to 'app/helpers')
-rw-r--r--app/helpers/gitlab_markdown_helper.rb60
1 files changed, 25 insertions, 35 deletions
diff --git a/app/helpers/gitlab_markdown_helper.rb b/app/helpers/gitlab_markdown_helper.rb
index 98c6d9d5d2e..5004e02ea0b 100644
--- a/app/helpers/gitlab_markdown_helper.rb
+++ b/app/helpers/gitlab_markdown_helper.rb
@@ -20,7 +20,7 @@ module GitlabMarkdownHelper
end
user = current_user if defined?(current_user)
- gfm_body = Gitlab::Markdown.gfm(escaped_body, project: @project, current_user: user)
+ gfm_body = Gitlab::Markdown.render(escaped_body, project: @project, current_user: user, pipeline: :single_line)
fragment = Nokogiri::HTML::DocumentFragment.parse(gfm_body)
if fragment.children.size == 1 && fragment.children[0].name == 'a'
@@ -46,23 +46,35 @@ module GitlabMarkdownHelper
end
def markdown(text, context = {})
- process_markdown(text, context)
- end
+ return "" unless text.present?
+
+ context[:project] ||= @project
- # TODO (rspeicher): Remove all usages of this helper and just call `markdown`
- # with a custom pipeline depending on the content being rendered
- def gfm(text, options = {})
- process_markdown(text, options, :gfm)
+ html = Gitlab::Markdown.render(text, context)
+
+ context.merge!(
+ current_user: (current_user if defined?(current_user)),
+
+ # RelativeLinkFilter
+ requested_path: @path,
+ project_wiki: @project_wiki,
+ ref: @ref
+ )
+
+ Gitlab::Markdown.post_process(html, context)
end
def asciidoc(text)
- Gitlab::Asciidoc.render(text, {
- commit: @commit,
- project: @project,
- project_wiki: @project_wiki,
+ Gitlab::Asciidoc.render(text,
+ project: @project,
+ current_user: (current_user if defined?(current_user)),
+
+ # RelativeLinkFilter
+ project_wiki: @project_wiki,
requested_path: @path,
- ref: @ref
- })
+ ref: @ref,
+ commit: @commit
+ )
end
# Return the first line of +text+, up to +max_chars+, after parsing the line
@@ -178,26 +190,4 @@ module GitlabMarkdownHelper
''
end
end
-
- def process_markdown(text, options, method = :markdown)
- return "" unless text.present?
-
- options.reverse_merge!(
- path: @path,
- pipeline: :default,
- project: @project,
- project_wiki: @project_wiki,
- ref: @ref
- )
-
- user = current_user if defined?(current_user)
-
- html = if method == :gfm
- Gitlab::Markdown.gfm(text, options)
- else
- Gitlab::Markdown.render(text, options)
- end
-
- Gitlab::Markdown.post_process(html, pipeline: options[:pipeline], project: @project, user: user)
- end
end