diff --git a/app/services/summernote_cleaner.rb b/app/services/summernote_cleaner.rb
new file mode 100644
index 0000000000000000000000000000000000000000..7485edc02c25b494364c099e041501a9df472551
--- /dev/null
+++ b/app/services/summernote_cleaner.rb
@@ -0,0 +1,11 @@
+class SummernoteCleaner
+  def self.clean(text)
+    clean_text = text
+    unless text.start_with? '<p>'
+      chunks = clean_text.split '<p>'
+      chunks[0] = "<p>#{chunks[0]}</p>"
+      clean_text = chunks.join '<p>'
+    end
+    clean_text
+  end
+end
diff --git a/test/services/summernote_cleaner_test.rb b/test/services/summernote_cleaner_test.rb
index 37fe2bc4af4c533be4c0ac742e80948ffc39ca6a..25b1091d6dac7b5c7251cdf13406d990519666c1 100644
--- a/test/services/summernote_cleaner_test.rb
+++ b/test/services/summernote_cleaner_test.rb
@@ -2,8 +2,17 @@ require "test_helper"
 
 class SummernoteCleanerTest < ActiveSupport::TestCase
   test "add p around text if missing" do
-    text = 'Les étudiants doivent s\'acquitter des droits universitaires annuels (170€ pour 2021/2022) ainsi que de la Contribution de la Vie Étudiante et de Campus (92€ pour 2021/2022). Ils doivent également justifier d\'une assurance responsabilité civile.<br>Plus d\'informations dans la rubrique → <a href="https://bordeauxmontaigne-iut.netlify.app/vie-etudiante/scolarite/frais-dinscription">Scolarité</a>'
-    assert_equal '<p>Les étudiants doivent s\'acquitter des droits universitaires annuels (170€ pour 2021/2022) ainsi que de la Contribution de la Vie Étudiante et de Campus (92€ pour 2021/2022). Ils doivent également justifier d\'une assurance responsabilité civile.<br>Plus d\'informations dans la rubrique → <a href="https://bordeauxmontaigne-iut.netlify.app/vie-etudiante/scolarite/frais-dinscription">Scolarité</a></p>', SummernoteCleaner.clean(text)
+    text = 'Text<br><a href="#">link</a>'
+    assert_equal '<p>Text<br><a href="#">link</a></p>', SummernoteCleaner.clean(text)
   end
 
+  test "do nothing if p is there" do
+    text = '<p>Text</p>'
+    assert_equal '<p>Text</p>', SummernoteCleaner.clean(text)
+  end
+
+  test "add p before an existing p" do
+    text = 'Text<p>Second text</p>'
+    assert_equal '<p>Text</p><p>Second text</p>', SummernoteCleaner.clean(text)
+  end
 end