dvHeadParts function
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),
);
}