fix: HTML block causes wrong sectioning (vfm 2.2.0) #184
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
この不具合は、 #174 で追加したHTMLブロックでの終了タグがあったら対応する開始タグが同じセクションのレベルになかったらセクションを閉じるようにするという処理に問題があり発生していました。
複数の終了タグからなるHTMLブロック(例
</td></tr></table>
)があったとき、今回の修正前は、その最初の終了タグのタグ名(この例ではtd
)の開始タグではじまるHTMLブロックを見つけるようにしていました。これでは対応する開始タグが見つからない(<table><tr><td>
というHTMLブロックではマッチしない)ということがあるため、この不具合が起きていました。この修正後では、HTMLブロック内に複数のタグがあっても問題ないように、HTMLブロック内の最後の終了タグと対応する開始タグを見つけるようにしました。
また、対応する開始タグが同じセクションのレベルになかった場合、それより前に見つかるかどうかをチェックして、もし見つからなかった場合は、セクションを閉じることはしないようにしました。