getTemplateText static method

List<Widget> getTemplateText({
  1. required String src,
  2. TextStyle? normalStyle,
  3. TextStyle? emphasisStyle,
})

Implementation

static List<Widget> getTemplateText({
  required String src,
  TextStyle? normalStyle,
  TextStyle? emphasisStyle,
}) {
  List<Widget> textWidgets = [];

  MTemplateUtil.textTemplateSplitter(src).forEach((templateLine) {
    if (templateLine.nodes == null) {
      textWidgets.add(Text(
        templateLine.message,
        style: normalStyle,
      ));
    } else {
      List<Widget> nodes = [];
      for (MTextTemplateNode node in templateLine.nodes!) {
        if (node.matchedFlag == false) {
          nodes.add(Text(
            node.message,
            style: normalStyle,
          ));
        } else {
          nodes.add(Text(
            node.matchGroup,
            style: emphasisStyle,
          ));
        }
      }

      textWidgets.add(
        Row(
          mainAxisAlignment: MainAxisAlignment.center,
          children: nodes,
        ),
      );
    }
  });

  return textWidgets;
}