Refactor tree_builder.rs into module directory with 7 files implementing all 23 insertion modes per WHATWG HTML §13.2.6.4 as an explicit state machine. Includes active formatting elements list with Noah's Ark clause, scope checking for all 5 scope types, context-sensitive fragment parsing, and iterative token reprocessing via ProcessResult enum. Code review fixes: fix formatting element end tag truncation bug (save node_id before truncate), replace manual element creation in catch-all StartTag with insert_element_maybe_self_closing, add skip_next_newline for pre/listing/textarea per spec, add QuirksMode to Document with basic DOCTYPE detection, refactor all 23 handlers from Token to &Token to eliminate clone per dispatch, fix self_closing handling for pre/listing/textarea/plaintext, improve golden test 276 fixture coverage and foster-parent test assertion. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
23 lines
671 B
HTML
23 lines
671 B
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>Mode Transitions</title>
|
|
<style>body { margin: 8px; } table { border: 1px solid black; } td, th { padding: 4px; } h1, h2 { margin: 4px 0; }</style>
|
|
</head>
|
|
<body>
|
|
<h1>Title<h2>Subtitle</h2>
|
|
<p>Before table</p>
|
|
<table>
|
|
<caption>Table Caption</caption>
|
|
<colgroup><col></colgroup>
|
|
<thead><tr><th>Header</th></tr></thead>
|
|
<tbody><tr><td>Cell 1</td><td>Cell 2</td></tr></tbody>
|
|
<tr><td><select><option>A</option><option>B</option></select></td><td>Plain</td></tr>
|
|
</table>
|
|
<p>Paragraph<div>Block splits paragraph</div></p>
|
|
<dl><dt>Term<dd>Definition<dt>Term 2<dd>Def 2</dl>
|
|
<ul><li>Item 1<li>Item 2</ul>
|
|
<p>After table</p>
|
|
</body>
|
|
</html>
|