HTML table causes wrong sectioning (vfm 2.2.0)
Closed this issue · 0 comments
MurakamiShinyu commented
Issue Details
問題が起きるMarkdownの例:
# A
## A-1
<table>
<tr>
<td>
P
</td>
</tr>
</table>
## A-2
VFMのsection化で、"A-2" のセクションは "A-1" のセクションと同じレベルのはずなのにひとつ下のレベルになってしまう不具合がある。
- VFM version
- 2.2.0
前のバージョン v2.1.0 ではこの問題ではこの不具合は起きない。v2.2.0 での修正の副作用のようである。
Expected Behavior
次のように "A-2" のセクションは "A-1" のセクションと同レベルになるべき(vfm 2.1.0 での出力):
<section class="level1" aria-labelledby="a">
<h1 id="a">A</h1>
<section class="level2" aria-labelledby="a-1">
<h2 id="a-1">A-1</h2>
<table>
<tbody>
<tr>
<td>
<p>P</p>
</td>
</tr>
</tbody>
</table>
</section>
<section class="level2" aria-labelledby="a-2">
<h2 id="a-2">A-2</h2>
</section>
</section>
Actual Behavior
次のように "A-2" のセクションは "A-1" のセクションの下のレベルになる(vfm 2.2.0 での出力):
<section class="level1" aria-labelledby="a">
<h1 id="a">A</h1>
<section class="level2" aria-labelledby="a-1">
<h2 id="a-1">A-1</h2>
<table>
<tbody>
<tr>
<td>
<p>P</p>
</td>
</tr>
</tbody>
</table>
<section class="level2" aria-labelledby="a-2">
<h2 id="a-2">A-2</h2>
</section>
</section>
</section>
Debug log (Any)
Run vfm
with DEBUG=vfm
to see detailed log.
DEBUG=vfm vfm TEST.md
vfm
vfm ### mdast ### +0ms
vfm root[3] (1:1-16:1, 0-64)
vfm ├─0 section[2]
vfm │ │ data: {"hName":"section","hProperties":{"class":["level1"],"aria-labelledby":"a"}}
vfm │ │ depth: 1
vfm │ ├─0 heading[1] (1:1-1:4, 0-3)
vfm │ │ │ depth: 1
vfm │ │ │ data: {"hProperties":{"id":"a"},"id":"a"}
vfm │ │ └─0 text "A" (1:3-1:4, 2-3)
vfm │ └─1 section[3]
vfm │ │ data: {"hName":"section","hProperties":{"class":["level2"],"aria-labelledby":"a-1"}}
vfm │ │ depth: 2
vfm │ ├─0 heading[1] (3:1-3:7, 5-11)
vfm │ │ │ depth: 2
vfm │ │ │ data: {"hProperties":{"id":"a-1"},"id":"a-1"}
vfm │ │ └─0 text "A-1" (3:4-3:7, 8-11)
vfm │ ├─1 html "<table>\n<tr>\n<td>" (5:1-7:5, 13-30)
vfm │ └─2 paragraph[1] (9:1-9:2, 32-33)
vfm │ └─0 text "P" (9:1-9:2, 32-33)
vfm ├─1 html "</td>\n</tr>\n</table>" (11:1-13:9, 35-55)
vfm └─2 section[1]
vfm │ data: {"hName":"section","hProperties":{"class":["level2"],"aria-labelledby":"a-2"}}
vfm │ depth: 2
vfm └─0 heading[1] (15:1-15:7, 57-63)
vfm │ depth: 2
vfm │ data: {"hProperties":{"id":"a-2"},"id":"a-2"}
vfm └─0 text "A-2" (15:4-15:7, 60-63) +1ms
vfm
vfm ### hast ### +6ms
vfm root[1] (1:1-16:1, 0-64)
vfm │ data: {"quirksMode":false}
vfm └─0 element<section>[2] (13:1, 47)
vfm │ properties: {"className":["level1"],"ariaLabelledBy":["a"]}
vfm ├─0 element<h1>[1] (1:1-1:4, 0-3)
vfm │ │ properties: {"id":"a"}
vfm │ └─0 text "A" (1:3-1:4, 2-3)
vfm └─1 element<section>[4] (13:1, 47)
vfm │ properties: {"className":["level2"],"ariaLabelledBy":["a-1"]}
vfm ├─0 element<h2>[1] (3:1-3:7, 5-11)
vfm │ │ properties: {"id":"a-1"}
vfm │ └─0 text "A-1" (3:4-3:7, 8-11)
vfm ├─1 element<table>[2] (5:1-13:9, 13-55)
vfm │ │ properties: {}
vfm │ ├─0 text "\n" (5:8-6:1, 20-21)
vfm │ └─1 element<tbody>[2]
vfm │ │ properties: {}
vfm │ ├─0 element<tr>[3] (6:1-12:6, 21-46)
vfm │ │ │ properties: {}
vfm │ │ ├─0 text "\n" (6:5-7:1, 25-26)
vfm │ │ ├─1 element<td>[2] (7:1-11:6, 26-40)
vfm │ │ │ │ properties: {}
vfm │ │ │ ├─0 element<p>[1] (9:1-9:2, 32-33)
vfm │ │ │ │ │ properties: {}
vfm │ │ │ │ └─0 text "P" (9:1-9:2, 32-33)
vfm │ │ │ └─1 text "\n"
vfm │ │ └─2 text "\n" (11:6-12:1, 40-41)
vfm │ └─1 text "\n" (12:6-13:1, 46-47)
vfm ├─2 text "\n"
vfm └─3 element<section>[1]
vfm │ properties: {"className":["level2"],"ariaLabelledBy":["a-2"]}
vfm └─0 element<h2>[1] (15:1-15:7, 57-63)
vfm │ properties: {"id":"a-2"}
vfm └─0 text "A-2" (15:4-15:7, 60-63) +0ms
vfm {} +6ms