diff options
author | Stan Hu <stanhu@gmail.com> | 2018-09-12 04:54:44 +0000 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2018-09-12 04:54:44 +0000 |
commit | a3c3776b5c7fd5c3c6c7bc9ee846b4d105333b32 (patch) | |
tree | a0cbd195099fcdfa914ad41ca5bc23b6a5fb1477 | |
parent | 32062a9154763aedfcbdb821898b83884a1bcd2c (diff) | |
parent | 67cf5917e04f4afeaeb9e19a6154f0318f81e577 (diff) | |
download | gitlab-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.rb | 14 | ||||
-rw-r--r-- | spec/lib/banzai/filter/markdown_filter_spec.rb | 6 |
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 |