tag function

Parser tag([
  1. LiquidConfig? config
])

Generic tag parser - parses {% tagname content %} syntax.

If config is provided, uses custom delimiters from the config.

Implementation

Parser tag([LiquidConfig? config]) =>
    (tagStart(config) &
            ref0(identifier).trim() &
            ref0(tagContent).optional().trim() &
            ref0(filter).star().trim() &
            tagEnd(config))
        .map((values) {
          final name = (values[1] as Identifier).name;
          final content = collapseTextNodes(values[2] as List<ASTNode>? ?? []);
          final filters = (values[3] as List).cast<Filter>();
          final nonFilterContent = content
              .where((node) => node is! Filter)
              .toList();
          return Tag(name, nonFilterContent, filters: filters);
        })
        .labeled('tag');