onMatch method

  1. @override
bool onMatch(
  1. InlineParser parser,
  2. Match match
)

Processes match, adding nodes to parser and possibly advancing parser.

Returns whether the caller should advance parser by match[0].length.

Implementation

@override
bool onMatch(m.InlineParser parser, Match match) {
  final input = match.input;
  final matchValue = input.substring(match.start, match.end);
  String content = '';
  bool isInline = true;
  const blockSyntax = '\$\$';
  const inlineSyntax = '\$';
  if (matchValue.startsWith(blockSyntax) &&
      matchValue.endsWith(blockSyntax) &&
      (matchValue != blockSyntax)) {
    content = matchValue.substring(2, matchValue.length - 2);
    isInline = false;
  } else if (matchValue.startsWith(inlineSyntax) &&
      matchValue.endsWith(inlineSyntax) &&
      matchValue != inlineSyntax) {
    content = matchValue.substring(1, matchValue.length - 1);
  }
  m.Element el = m.Element.text('latex', matchValue);
  el.attributes['content'] = content;
  el.attributes['isInline'] = '$isInline';
  parser.addNode(el);
  return true;
}