tag function
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');