getBlockSpan function

InlineSpan getBlockSpan(
  1. List<Node>? nodes,
  2. Node parentNode,
  3. TextStyle? parentStyle
)

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();
      },
    ),
  );
}