# HTML block-element blocks
These are the whitelisted block-level tags (div, table, p, ul, ol, li, h1–h6, body, html, hr, form, fieldset, etc., ~60 names).
## Simple div
<div>body content</div>
## Div with markdown inside (stays literal because no blank lines)
<div>
*foo*
</div>
## Div with BLANK lines inside (enables markdown between blocks)
<div>
*Emphasized* paragraph.
</div>
This should produce TWO HtmlBlocks (one for `<div>`, one for `</div>`) with a paragraph between them.
## Table with internal structure (verbatim, no blank lines)
<table>
<tr><td>cell one</td></tr>
<tr><td>cell two</td></tr>
</table>
## Many back-to-back blocks separated by blank lines (each is its own block)
<table>
<tr>
<td>
Hi
</td>
</tr>
</table>
## Paragraph block element
<p>Plain paragraph as HTML.</p>
## hr block element
<hr>
## Headings (h1-h6) in the whitelist
<h1>HTML heading</h1>
<h6>Small HTML heading</h6>
## Can interrupt a paragraph
Foo
<div>
bar
</div>
The `Foo` should be its own paragraph, then `<div>…</div>` is the block.
## Incomplete opener (no closing `>`) still triggers
<div id="foo"
*hi*
This should be one block (`<div id="foo"\n*hi*\n`) with no markdown emphasis inside.
## Uppercase tag name
<DIV CLASS="big">
content
</DIV>
## 2-space indent OK; 4-space indent becomes code block
<div>
inside the 2-space indented block.
<div>
this 4-space indented `<div>` becomes an indented code block instead.
## Closing tag alone opens a block
</section>
text after closer (stays inside block).
## Mid-paragraph tag stays inline (NOT a Type 6 block)
Inline <div> here keeps the surrounding text intact.