Fix close logic for blocks

This commit is contained in:
Dimitry Ivanov 2018-08-17 13:09:06 +03:00
parent ff3bedc37e
commit 97a25ecc14

View File

@ -206,7 +206,7 @@ public class MarkwonHtmlParserImpl extends MarkwonHtmlParser {
// check if we have content to append as we must close this tag here // check if we have content to append as we must close this tag here
processVoidTag(output, startTag); processVoidTag(output, startTag);
inline.end = output.length(); inline.closeAt(output.length());
} }
// actually only check if there is content for void/self-closing tags // 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) { @NonNull Token.EndTag endTag) {
// try to find it, if none found -> ignore // try to find it, if none found -> ignore
final InlineImpl openInlineTag = findOpenInlineTag(endTag.normalName); final InlineImpl openInline = findOpenInlineTag(endTag.normalName);
if (openInlineTag != null) { if (openInline != null) {
// close open inline tag // 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_ // it must be closed here not matter what we are as here we _assume_
// that it's a block tag // that it's a block tag
append(output, "\n"); append(output, "\n");
currentBlock.end = output.length(); currentBlock.closeAt(output.length());
currentBlock = currentBlock.parent; currentBlock = currentBlock.parent;
} else if (TAG_LIST_ITEM.equals(name) } else if (TAG_LIST_ITEM.equals(name)
&& TAG_LIST_ITEM.equals(currentBlock.name)) { && TAG_LIST_ITEM.equals(currentBlock.name)) {
// close previous list item if in the same parent // close previous list item if in the same parent
currentBlock.end = output.length(); currentBlock.closeAt(output.length());
currentBlock = currentBlock.parent; currentBlock = currentBlock.parent;
} }
@ -357,7 +357,7 @@ public class MarkwonHtmlParserImpl extends MarkwonHtmlParser {
BlockImpl blockTag = currentBlock; BlockImpl blockTag = currentBlock;
while (blockTag != null while (blockTag != null
&& !name.equals(blockTag.name)) { && !name.equals(blockTag.name) && !blockTag.isClosed()) {
blockTag = blockTag.parent; blockTag = blockTag.parent;
} }