summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStan Hu <stanhu@gmail.com>2018-09-12 04:54:44 +0000
committerStan Hu <stanhu@gmail.com>2018-09-12 04:54:44 +0000
commita3c3776b5c7fd5c3c6c7bc9ee846b4d105333b32 (patch)
treea0cbd195099fcdfa914ad41ca5bc23b6a5fb1477
parent32062a9154763aedfcbdb821898b83884a1bcd2c (diff)
parent67cf5917e04f4afeaeb9e19a6154f0318f81e577 (diff)
downloadgitlab-ce-a3c3776b5c7fd5c3c6c7bc9ee846b4d105333b32.tar.gz
Merge branch '51271-error-500-due-to-encoding-issues-when-when-attempting-to-access-issues-api' into 'master'
Resolve "Error 500 due to encoding issues when when attempting to access issues API" Closes #51271 See merge request gitlab-org/gitlab-ce!21680
-rw-r--r--lib/banzai/renderer/common_mark/html.rb14
-rw-r--r--spec/lib/banzai/filter/markdown_filter_spec.rb6
2 files changed, 11 insertions, 9 deletions
diff --git a/lib/banzai/renderer/common_mark/html.rb b/lib/banzai/renderer/common_mark/html.rb
index 46b609c36b0..0b27316da1b 100644
--- a/lib/banzai/renderer/common_mark/html.rb
+++ b/lib/banzai/renderer/common_mark/html.rb
@@ -4,15 +4,11 @@ module Banzai
class HTML < CommonMarker::HtmlRenderer
def code_block(node)
block do
- code = node.string_content
- lang = node.fence_info
- lang_attr = lang.present? ? %Q{ lang="#{lang}"} : ''
- result =
- "<pre>" \
- "<code#{lang_attr}>#{ERB::Util.html_escape(code)}</code>" \
- "</pre>"
-
- out(result)
+ out("<pre#{sourcepos(node)}><code")
+ out(' lang="', node.fence_info, '"') if node.fence_info.present?
+ out('>')
+ out(escape_html(node.string_content))
+ out('</code></pre>')
end
end
end
diff --git a/spec/lib/banzai/filter/markdown_filter_spec.rb b/spec/lib/banzai/filter/markdown_filter_spec.rb
index a515d07b072..5cf9e698375 100644
--- a/spec/lib/banzai/filter/markdown_filter_spec.rb
+++ b/spec/lib/banzai/filter/markdown_filter_spec.rb
@@ -40,6 +40,12 @@ describe Banzai::Filter::MarkdownFilter do
expect(result).to start_with("<pre><code>")
end
+
+ it 'works with utf8 chars in language' do
+ result = filter("```日\nsome code\n```")
+
+ expect(result).to start_with("<pre><code lang=\"日\">")
+ end
end
context 'using Redcarpet' do