diff --git a/html-parser-impl/src/main/java/ru/noties/markwon/html/MarkwonHtmlParserImpl.java b/html-parser-impl/src/main/java/ru/noties/markwon/html/MarkwonHtmlParserImpl.java
index c2813775..4fcd4a5d 100644
--- a/html-parser-impl/src/main/java/ru/noties/markwon/html/MarkwonHtmlParserImpl.java
+++ b/html-parser-impl/src/main/java/ru/noties/markwon/html/MarkwonHtmlParserImpl.java
@@ -206,7 +206,7 @@ public class MarkwonHtmlParserImpl extends MarkwonHtmlParser {
// check if we have content to append as we must close this tag here
processVoidTag(output, startTag);
- inline.end = output.length();
+ inline.closeAt(output.length());
}
// actually only check if there is content for void/self-closing tags
@@ -221,10 +221,10 @@ public class MarkwonHtmlParserImpl extends MarkwonHtmlParser {
@NonNull Token.EndTag endTag) {
// try to find it, if none found -> ignore
- final InlineImpl openInlineTag = findOpenInlineTag(endTag.normalName);
- if (openInlineTag != null) {
+ final InlineImpl openInline = findOpenInlineTag(endTag.normalName);
+ if (openInline != null) {
// close open inline tag
- openInlineTag.end = output.length();
+ openInline.closeAt(output.length());
}
}
@@ -245,12 +245,12 @@ public class MarkwonHtmlParserImpl extends MarkwonHtmlParser {
// it must be closed here not matter what we are as here we _assume_
// that it's a block tag
append(output, "\n");
- currentBlock.end = output.length();
+ currentBlock.closeAt(output.length());
currentBlock = currentBlock.parent;
} else if (TAG_LIST_ITEM.equals(name)
&& TAG_LIST_ITEM.equals(currentBlock.name)) {
// close previous list item if in the same parent
- currentBlock.end = output.length();
+ currentBlock.closeAt(output.length());
currentBlock = currentBlock.parent;
}
@@ -357,7 +357,7 @@ public class MarkwonHtmlParserImpl extends MarkwonHtmlParser {
BlockImpl blockTag = currentBlock;
while (blockTag != null
- && !name.equals(blockTag.name)) {
+ && !name.equals(blockTag.name) && !blockTag.isClosed()) {
blockTag = blockTag.parent;
}