isHeading function

({String content, int level})? isHeading(
  1. String trimmed
)

ATX heading: 1–6 # followed by a space. Returns (level, content).

Implementation

({int level, String content})? isHeading(String trimmed) {
  var level = 0;
  while (level < trimmed.length && trimmed.codeUnitAt(level) == _hash) {
    level += 1;
  }
  if (level >= 1 &&
      level <= 6 &&
      level < trimmed.length &&
      trimmed.codeUnitAt(level) == _space) {
    return (level: level, content: trimmed.substring(level + 1).trimRight());
  }
  return null;
}