]> cat aescling's git repositories - mastodon.git/commitdiff
Fix code blocks processing
authorClaire <claire.github-309c@sitedethib.com>
Mon, 28 Mar 2022 21:40:45 +0000 (23:40 +0200)
committerClaire <claire.github-309c@sitedethib.com>
Mon, 28 Mar 2022 21:40:45 +0000 (23:40 +0200)
app/lib/advanced_text_formatter.rb
spec/lib/advanced_text_formatter_spec.rb

index 5ce87d3067774ff3f862114a5b60b34e969f5c18..728400819c7fc9eacaf4dea555c8d6ebce82a4dc 100644 (file)
@@ -9,7 +9,7 @@ class AdvancedTextFormatter < TextFormatter
 
     def block_code(code, _language)
       <<~HTML.squish
-        <pre><code>#{h(code).gsub("\n", '<br/>')}</code></pre>
+        <pre><code>#{ERB::Util.h(code).gsub("\n", '<br/>')}</code></pre>
       HTML
     end
 
index c097b86e19f0f1c271f63408b6595e0e202b066b..4e859c93c3aafd5f4181498e050a417a60c0b88f 100644 (file)
@@ -34,6 +34,14 @@ RSpec.describe AdvancedTextFormatter do
         end
       end
 
+      context 'given a block code' do
+        let(:text) { "test\n\n```\nint main(void) {\n  return 0;\n}\n```\n" }
+
+        it 'formats code using <pre> and <code>' do
+          is_expected.to include '<pre><code>int main'
+        end
+      end
+
       context 'given some quote' do
         let(:text) { "> foo\n\nbar" }