getBlockSpan function
get textSpan by nodes
Implementation
InlineSpan getBlockSpan(
List<m.Node>? nodes, m.Node parentNode, TextStyle? parentStyle) {
if (nodes == null || nodes.isEmpty) return TextSpan();
return TextSpan(
children: List.generate(
nodes.length,
(index) {
bool shouldParseHtml = needParseHtml(parentNode);
final node = nodes[index];
if (node is m.Text)
return buildTextSpan(node, parentStyle, shouldParseHtml);
else if (node is m.Element) {
if (node.tag == code) return getCodeSpan(node);
if (node.tag == img) return getImageSpan(node);
if (node.tag == video) return getVideoSpan(node);
if (node.tag == a) return getLinkSpan(node);
if (node.tag == input) return getInputSpan(node);
if (node.tag == other) return getOtherWidgetSpan(node);
return getBlockSpan(
node.children, node, parentStyle!.merge(getTextStyle(node.tag)));
}
return TextSpan();
},
),
);
}