Empty line within task list causes extra p tag

If I have the following markdown:

- [ ] foo
- [ ] bar
- [ ] baz

I get the following output:

<div class="markdown-preview-section">
   <ul class="contains-task-list">
      <li class="task-list-item">
         <input data-line="0" type="checkbox" class="task-list-item-checkbox">foo
      </li>
      <li class="task-list-item">
         <input data-line="1" type="checkbox" class="task-list-item-checkbox">bar
      </li>
      <li class="task-list-item">
         <input data-line="2" type="checkbox" class="task-list-item-checkbox">baz
      </li>
   </ul>
</div>

However, if I add an empty line after the first:

- [ ] foo

- [ ] bar
- [ ] baz

I get the following output:

<div class="markdown-preview-section">
   <ul class="contains-task-list">
      <li class="task-list-item">
         <p>
           <input data-line="0" type="checkbox" class="task-list-item-checkbox">foo
         </p>
      </li>
      <li class="task-list-item">
         <p>
            <input data-line="2" type="checkbox" class="task-list-item-checkbox">bar
         </p>
      </li>
      <li class="task-list-item">
         <p>
            <input data-line="3" type="checkbox" class="task-list-item-checkbox">baz
         </p>
      </li>
   </ul>
</div>

Note the extra p tags around each individual list item in the second output:

--- good.html	2020-12-05 12:47:19.000000000 +0000
+++ bad.html	2020-12-05 12:46:58.000000000 +0000
@@ -1,13 +1,19 @@
 <div class="markdown-preview-section">
    <ul class="contains-task-list">
       <li class="task-list-item">
-         <input data-line="0" type="checkbox" class="task-list-item-checkbox">foo
+         <p>
+           <input data-line="0" type="checkbox" class="task-list-item-checkbox">foo
+         </p>
       </li>
       <li class="task-list-item">
-         <input data-line="1" type="checkbox" class="task-list-item-checkbox">bar
+         <p>
+            <input data-line="2" type="checkbox" class="task-list-item-checkbox">bar
+         </p>
       </li>
       <li class="task-list-item">
-         <input data-line="2" type="checkbox" class="task-list-item-checkbox">baz
+         <p>
+            <input data-line="3" type="checkbox" class="task-list-item-checkbox">baz
+         </p>
       </li>
    </ul>
 </div>

Is this expected behaviour?

1 Like

yes they are called loose lists in the markdown spec.
This has been asked several times in the forum.