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>
35 lines
2.9 KiB
Plaintext
35 lines
2.9 KiB
Plaintext
DisplayList items=33
|
|
Border rect=(8, 130.40001, 96.61087, 114.8) widths=(1 1 1 1) colors=(#000000 #000000 #000000 #000000) styles=(solid solid solid solid)
|
|
Border rect=(15, 215, 11.506608, 23.2) widths=(1 1 1 1) colors=(#000000 #000000 #000000 #000000) styles=(solid solid solid solid)
|
|
Text rect=(39.582966, 424.4001, 4.4170337, 16) text="•" color=#000000 font_size=16
|
|
Text rect=(39.582966, 443.6001, 4.4170337, 16) text="•" color=#000000 font_size=16
|
|
Text rect=(8, 11.200001, 51.806168, 32) text="Title" color=#000000 font_size=32 font_weight=700
|
|
Text rect=(8, 52.800003, 68.63435, 24) text="Subtitle" color=#000000 font_size=24 font_weight=700
|
|
Text rect=(8, 96.8, 36.88693, 16) text="Before" color=#000000 font_size=16
|
|
Text rect=(47.94126, 96.8, 27.71219, 16) text="table" color=#000000 font_size=16
|
|
Text rect=(18.337738, 133.00002, 30.00294, 16) text="Table" color=#000000 font_size=16
|
|
Text rect=(51.395008, 133.00002, 42.87812, 16) text="Caption" color=#000000 font_size=16
|
|
Text rect=(15, 156.6, 42.725403, 16) text="Header" color=#000000 font_size=16 font_weight=700
|
|
Text rect=(15, 185.8, 20.111603, 16) text="Cell" color=#000000 font_size=16
|
|
Text rect=(38.165936, 185.8, 6.71953, 16) text="1" color=#000000 font_size=16
|
|
Text rect=(67.7254, 185.8, 20.111603, 16) text="Cell" color=#000000 font_size=16
|
|
Text rect=(90.891335, 185.8, 6.71953, 16) text="2" color=#000000 font_size=16
|
|
Text rect=(17, 218.6, 7.506608, 16) text="A" color=#000000 font_size=16
|
|
Text rect=(67.7254, 215, 27.01909, 16) text="Plain" color=#000000 font_size=16
|
|
Text rect=(8, 262.80002, 58.29075, 16) text="Paragraph" color=#000000 font_size=16
|
|
Text rect=(8, 298.00003, 29.685757, 16) text="Block" color=#000000 font_size=16
|
|
Text rect=(40.74009, 298.00003, 28.781204, 16) text="splits" color=#000000 font_size=16
|
|
Text rect=(72.57562, 298.00003, 58.408222, 16) text="paragraph" color=#000000 font_size=16
|
|
Text rect=(8, 333.20004, 28.992657, 16) text="Term" color=#000000 font_size=16
|
|
Text rect=(48, 352.40005, 54.202644, 16) text="Definition" color=#000000 font_size=16
|
|
Text rect=(8, 371.60007, 28.992657, 16) text="Term" color=#000000 font_size=16
|
|
Text rect=(40.04699, 371.60007, 6.71953, 16) text="2" color=#000000 font_size=16
|
|
Text rect=(48, 390.80008, 19.24229, 16) text="Def" color=#000000 font_size=16
|
|
Text rect=(70.29662, 390.80008, 6.71953, 16) text="2" color=#000000 font_size=16
|
|
Text rect=(48, 426.0001, 25.832598, 16) text="Item" color=#000000 font_size=16
|
|
Text rect=(76.886925, 426.0001, 6.71953, 16) text="1" color=#000000 font_size=16
|
|
Text rect=(48, 445.2001, 25.832598, 16) text="Item" color=#000000 font_size=16
|
|
Text rect=(76.886925, 445.2001, 6.71953, 16) text="2" color=#000000 font_size=16
|
|
Text rect=(8, 480.40012, 27.265785, 16) text="After" color=#000000 font_size=16
|
|
Text rect=(38.320118, 480.40012, 27.71219, 16) text="table" color=#000000 font_size=16
|