visitElementAfter method
Called when an Element has been reached, after its children have been visited.
Will not be called if visitElementBefore returns false.
Implementation
@override
void visitElementAfter(md.Element element) {
switch (element.tag) {
case 'h1':
case 'h2':
case 'h3':
case 'h4':
case 'h5':
case 'h6':
case 'blockquote':
_exitBlock();
break;
case 'ul':
case 'ol':
_listCounters.removeLast();
_listIsOrdered.removeLast();
_exitBlock();
break;
case 'li':
_ensureNewline();
break;
case 'p':
_exitBlock();
_ensureNewline();
break;
case 'strong':
_inlineStack.removeLast();
break;
case 'em':
_inlineStack.removeLast();
break;
case 'code':
_inlineStack.removeLast();
break;
case 'a':
_inlineStack.removeLast();
_linkStack.removeLast();
break;
case 'table':
_inTableCell = false;
_renderTable();
_tableHeaders.clear();
_tableRows.clear();
_currentRow.clear();
break;
case 'tr':
if (_currentRow.isNotEmpty) {
if (_inTableHead) {
_tableHeaders.addAll(_currentRow);
} else {
_tableRows.add(List.from(_currentRow));
}
_currentRow.clear();
}
break;
case 'th':
_inTableCell = false;
_currentRow.add(_captureCellContent(element));
break;
case 'td':
_inTableCell = false;
_currentRow.add(_captureCellContent(element));
break;
}
}