getHtmlParts method
Implementation
HtmlParts getHtmlParts() {
if (op.isJustNewline() && !op.isContainerBlock()) {
return HtmlParts(openingTag: '', closingTag: '', content: newLine);
}
final List<String> tags = getTags();
List<TagKeyValue> attrs = getTagAttributes();
if (tags.isEmpty && attrs.isNotEmpty) {
tags.add('span');
}
final List<String> beginTags = <String>[];
final List<String> endTags = <String>[];
const String imgTag = 'img';
bool isImageLink(tag) => tag == imgTag && isTruthy(op.attributes.link);
for (final String tag in tags) {
if (isImageLink(tag)) {
beginTags.add(makeStartTag('a', getLinkAttrs()));
}
beginTags.add(makeStartTag(tag, attrs));
endTags.add(tag == imgTag ? '' : makeEndTag(tag));
if (isImageLink(tag)) {
endTags.add(makeEndTag('a'));
}
// consumed in first tag
attrs = <TagKeyValue>[];
}
return HtmlParts(
openingTag: beginTags.join(),
content: getContent(),
closingTag: endTags.reversed.join(),
);
}