From 22e4cef45a1f62552aa6cf4891f1921ebf51bd93 Mon Sep 17 00:00:00 2001
From: echarp <manu@echarp.org>
Date: Sat, 10 Jun 2017 14:28:10 +0200
Subject: [PATCH] Better markdown output, for linuxfr

---
 app/helpers/events_helper.rb       | 12 +++++-------
 test/helpers/events_helper_test.rb |  9 +++++++++
 2 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/app/helpers/events_helper.rb b/app/helpers/events_helper.rb
index 1e9e1b7ba..037c5d2e9 100644
--- a/app/helpers/events_helper.rb
+++ b/app/helpers/events_helper.rb
@@ -63,12 +63,10 @@ module EventsHelper
                     tags: %w[p br h1 h2 h3 h4 table tr th td ul ol li a strong
                              b em i sub sup],
                     attributes: %w[href]
-    result = Kramdown::Document.new(desc, input: :html, line_width: line_width)
-                               .to_kramdown
-    # Remove extraneous line feeds
-    return if result.nil? || result.blank?
-    result.gsub(/\n\n+/, '
-
-').gsub(/\\([\"'])/, '\1')
+    Kramdown::Document.new(desc, input: :html, line_width: line_width)
+                      .to_kramdown
+                      .remove(/ +$/) # Remove extraneous line feeds
+                      .gsub(/\\([\"'])/, '\1') # Remove slash before quotes
+                      .gsub(/(\n\n)\n+/, '\1') # Fewer line feeds
   end
 end
diff --git a/test/helpers/events_helper_test.rb b/test/helpers/events_helper_test.rb
index 2e7567e00..2d0915927 100644
--- a/test/helpers/events_helper_test.rb
+++ b/test/helpers/events_helper_test.rb
@@ -1,4 +1,13 @@
 require 'test_helper'
 
+# Test some event helper methods
 class EventsHelperTest < ActionView::TestCase
+  test 'Markdown with empty content' do
+    assert_equal '', to_markdown('')
+    assert_equal '', to_markdown('  ')
+    assert_equal "'", to_markdown("\'")
+    assert_equal '', to_markdown('
+
+')
+  end
 end
-- 
GitLab