dvHeadParts function

DVHeadParts? dvHeadParts(
  1. String page
)

page's head split by DVHeadParts, or null when it has no head.

Implementation

DVHeadParts? dvHeadParts(String page) {
  final RegExpMatch? open =
      RegExp(r'<head(\s[^>]*)?>', caseSensitive: false).firstMatch(page);
  final int close = page.indexOf('</head>');
  if (open == null || close < open.end) return null;
  final String inner = page.substring(open.end, close);
  final StringBuffer fixed = StringBuffer();
  final StringBuffer written = StringBuffer();
  var at = 0;
  for (final RegExpMatch piece in _writtenByData.allMatches(inner)) {
    fixed.write(inner.substring(at, piece.start));
    written.write(piece.group(0));
    at = piece.end;
  }
  fixed.write(inner.substring(at));
  return DVHeadParts(
    opening: page.substring(0, open.end),
    fixed: fixed.toString(),
    written: written.toString(),
    rest: page.substring(close),
  );
}