Merge branch 'dm-pull-preserve-into-render-helpers' into 'master'

Pull preserve into render helpers

See merge request !10986
This commit is contained in:
Sean McGivern 2017-04-28 17:56:31 +00:00
commit 3d2b663e0c
18 changed files with 26 additions and 39 deletions

View file

@ -74,7 +74,7 @@ module MarkupHelper
context[:project] ||= @project
html = markdown_unsafe(text, context)
banzai_postprocess(html, context)
prepare_for_rendering(html, context)
end
def markdown_field(object, field)
@ -82,13 +82,13 @@ module MarkupHelper
return '' unless object.present?
html = Banzai.render_field(object, field)
banzai_postprocess(html, object.banzai_render_context(field))
prepare_for_rendering(html, object.banzai_render_context(field))
end
def markup(file_name, text, context = {})
context[:project] ||= @project
html = context.delete(:rendered) || markup_unsafe(file_name, text, context)
banzai_postprocess(html, context)
prepare_for_rendering(html, context)
end
def render_wiki_content(wiki_page)
@ -107,14 +107,14 @@ module MarkupHelper
wiki_page.formatted_content.html_safe
end
banzai_postprocess(html, context)
prepare_for_rendering(html, context)
end
def markup_unsafe(file_name, text, context = {})
return '' unless text.present?
if gitlab_markdown?(file_name)
Hamlit::RailsHelpers.preserve(markdown_unsafe(text, context))
markdown_unsafe(text, context)
elsif asciidoc?(file_name)
asciidoc_unsafe(text)
elsif plain?(file_name)
@ -225,8 +225,7 @@ module MarkupHelper
Gitlab::OtherMarkup.render(file_name, text)
end
# Calls Banzai.post_process with some common context options
def banzai_postprocess(html, context = {})
def prepare_for_rendering(html, context = {})
return '' unless html.present?
context.merge!(
@ -239,7 +238,9 @@ module MarkupHelper
requested_path: @path
)
Banzai.post_process(html, context)
html = Banzai.post_process(html, context)
Hamlit::RailsHelpers.preserve(html)
end
extend self

View file

@ -27,8 +27,7 @@
.row
.col-md-8
.documentation-index
= preserve do
= markdown(@help_index)
= markdown(@help_index)
.col-md-4
.panel.panel-default
.panel-heading

View file

@ -2,8 +2,7 @@
%div{ class: container_class }
.wiki-holder.prepend-top-default.append-bottom-default
.wiki
= preserve do
= render_wiki_content(@wiki_home)
= render_wiki_content(@wiki_home)
- else
- can_create_wiki = can?(current_user, :create_wiki, @project)
.project-home-empty{ class: [('row-content-block' if can_create_wiki), ('content-block' unless can_create_wiki)] }

View file

@ -58,8 +58,7 @@
- if @issue.description.present?
.description{ class: can?(current_user, :update_issue, @issue) ? 'js-task-list-container' : '' }
.wiki
= preserve do
= markdown_field(@issue, :description)
= markdown_field(@issue, :description)
%textarea.hidden.js-task-list-field
= @issue.description
= edited_time_ago_with_tooltip(@issue, placement: 'bottom', html_class: 'issue_edited_ago')

View file

@ -6,8 +6,7 @@
- if @merge_request.description.present?
.description{ class: can?(current_user, :update_merge_request, @merge_request) ? 'js-task-list-container' : '' }
.wiki
= preserve do
= markdown_field(@merge_request, :description)
= markdown_field(@merge_request, :description)
%textarea.hidden.js-task-list-field
= @merge_request.description

View file

@ -43,8 +43,7 @@
- if @milestone.description.present?
.description
.wiki
= preserve do
= markdown_field(@milestone, :description)
= markdown_field(@milestone, :description)
- if can?(current_user, :read_issue, @project) && @milestone.total_items_count(current_user).zero?
.alert.alert-success.prepend-top-default

View file

@ -75,8 +75,7 @@
= icon('trash-o', class: 'danger-highlight')
.note-body{ class: note_editable ? 'js-task-list-container' : '' }
.note-text.md
= preserve do
= note.redacted_note_html
= note.redacted_note_html
= edited_time_ago_with_tooltip(note, placement: 'bottom', html_class: 'note_edited_ago', include_author: true)
- if note_editable
.original-note-content.hidden{ data: { post_url: namespace_project_note_path(@project.namespace, @project, note), target_id: note.noteable.id, target_type: note.noteable.class.name.underscore } }

View file

@ -24,8 +24,7 @@
- if release && release.description.present?
.description.prepend-top-default
.wiki
= preserve do
= markdown_field(release, :description)
= markdown_field(release, :description)
.row-fixed-content.controls
= render 'projects/buttons/download', project: @project, ref: tag.name, pipeline: @tags_pipelines[tag.name]

View file

@ -38,7 +38,6 @@
- if @release.description.present?
.description
.wiki
= preserve do
= markdown_field(@release, :description)
= markdown_field(@release, :description)
- else
This tag has no release notes.

View file

@ -27,7 +27,6 @@
.wiki-holder.prepend-top-default.append-bottom-default
.wiki
= preserve do
= render_wiki_content(@page)
= render_wiki_content(@page)
= render 'sidebar'

View file

@ -8,7 +8,6 @@
.pull-right ##{issue.iid}
- if issue.description.present?
.description.term
= preserve do
= search_md_sanitize(issue, :description)
= search_md_sanitize(issue, :description)
%span.light
#{issue.project.name_with_namespace}

View file

@ -9,7 +9,6 @@
.pull-right= merge_request.to_reference
- if merge_request.description.present?
.description.term
= preserve do
= search_md_sanitize(merge_request, :description)
= search_md_sanitize(merge_request, :description)
%span.light
#{merge_request.project.name_with_namespace}

View file

@ -5,5 +5,4 @@
- if milestone.description.present?
.description.term
= preserve do
= search_md_sanitize(milestone, :description)
= search_md_sanitize(milestone, :description)

View file

@ -22,5 +22,4 @@
.note-search-result
.term
= preserve do
= search_md_sanitize(note, :note)
= search_md_sanitize(note, :note)

View file

@ -4,8 +4,7 @@
= render "projects/services/#{@service.to_param}/help", subject: subject
- elsif @service.help.present?
.well
= preserve do
= markdown @service.help
= markdown @service.help
.service-settings
.form-group

View file

@ -21,7 +21,7 @@ class Spinach::Features::ProjectCommits < Spinach::FeatureSteps
expect(response_headers['Content-Type']).to have_content("application/atom+xml")
expect(body).to have_selector("title", text: "#{@project.name}:master commits")
expect(body).to have_selector("author email", text: commit.author_email)
expect(body).to have_selector("entry summary", text: commit.description[0..10].delete("\r"))
expect(body).to have_selector("entry summary", text: commit.description[0..10].delete("\r\n"))
end
step 'I click on tag link' do

View file

@ -53,7 +53,7 @@ describe "User Feed", feature: true do
end
it 'has XHTML summaries in issue descriptions' do
expect(body).to match /we have a bug!<\/p>\n\n<hr ?\/>\n\n<p dir="auto">I guess/
expect(body).to match /<hr ?\/>/
end
it 'has XHTML summaries in notes' do

View file

@ -56,7 +56,7 @@ describe EventsHelper do
it 'preserves code color scheme' do
input = "```ruby\ndef test\n 'hello world'\nend\n```"
expected = '<pre class="code highlight js-syntax-highlight ruby">' \
expected = "\n<pre class=\"code highlight js-syntax-highlight ruby\">" \
"<code><span class=\"line\"><span class=\"k\">def</span> <span class=\"nf\">test</span>...</span>\n" \
"</code></pre>"
expect(helper.event_note(input)).to eq(expected)