about summary refs log tree commit diff
diff options
context:
space:
mode:
authorClaire <claire.github-309c@sitedethib.com>2022-03-28 23:40:45 +0200
committerClaire <claire.github-309c@sitedethib.com>2022-03-28 23:40:45 +0200
commit8d6f3f8a379c8d552d2101cf35ae8f6fe956da53 (patch)
tree19a0b6e761fc453fac2f5a8aba24595ad93f0382
parent61cefbebf717326bd6ec3923e67e3702a24a0b24 (diff)
Fix code blocks processing
-rw-r--r--app/lib/advanced_text_formatter.rb2
-rw-r--r--spec/lib/advanced_text_formatter_spec.rb8
2 files changed, 9 insertions, 1 deletions
diff --git a/app/lib/advanced_text_formatter.rb b/app/lib/advanced_text_formatter.rb
index 5ce87d306..728400819 100644
--- a/app/lib/advanced_text_formatter.rb
+++ b/app/lib/advanced_text_formatter.rb
@@ -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
 
diff --git a/spec/lib/advanced_text_formatter_spec.rb b/spec/lib/advanced_text_formatter_spec.rb
index c097b86e1..4e859c93c 100644
--- a/spec/lib/advanced_text_formatter_spec.rb
+++ b/spec/lib/advanced_text_formatter_spec.rb
@@ -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" }