Closed MurakamiShinyu closed 8 months ago
この不具合は、 #174 で追加したHTMLブロックでの終了タグがあったら対応する開始タグが同じセクションのレベルになかったらセクションを閉じるようにするという処理に問題があり発生していました。
複数の終了タグからなるHTMLブロック(例 </td></tr></table>)があったとき、今回の修正前は、その最初の終了タグのタグ名(この例では td)の開始タグではじまるHTMLブロックを見つけるようにしていました。これでは対応する開始タグが見つからない(<table><tr><td> というHTMLブロックではマッチしない)ということがあるため、この不具合が起きていました。
</td></tr></table>
td
<table><tr><td>
この修正後では、HTMLブロック内に複数のタグがあっても問題ないように、HTMLブロック内の最後の終了タグと対応する開始タグを見つけるようにしました。
また、対応する開始タグが同じセクションのレベルになかった場合、それより前に見つかるかどうかをチェックして、もし見つからなかった場合は、セクションを閉じることはしないようにしました。
@akabekobeko
Approve していますが、修正版の処理で if のネストが深くなっているので浅くする提案をしたので検討いただきたいです。
ありがとうございます。採用しました!
この不具合は、 #174 で追加したHTMLブロックでの終了タグがあったら対応する開始タグが同じセクションのレベルになかったらセクションを閉じるようにするという処理に問題があり発生していました。
複数の終了タグからなるHTMLブロック(例
</td></tr></table>
)があったとき、今回の修正前は、その最初の終了タグのタグ名(この例ではtd
)の開始タグではじまるHTMLブロックを見つけるようにしていました。これでは対応する開始タグが見つからない(<table><tr><td>
というHTMLブロックではマッチしない)ということがあるため、この不具合が起きていました。この修正後では、HTMLブロック内に複数のタグがあっても問題ないように、HTMLブロック内の最後の終了タグと対応する開始タグを見つけるようにしました。
また、対応する開始タグが同じセクションのレベルになかった場合、それより前に見つかるかどうかをチェックして、もし見つからなかった場合は、セクションを閉じることはしないようにしました。