code: def marker_split(block):
      
      marker = None
      value = []
  
      for line in block.split('\n'):
          line = line.strip()
          if line.startswith('\\_'):
              continue  # we simply ignore SFM header fields
          match = MARKER_PATTERN.match(line)
          if match:
              if marker:
                  yield marker, '\n'.join(value)
              marker = match.group('marker')
              value = [line[match.end():]]
          else:
              value.append(line)
      if marker:
          yield marker, ('\n'.join(value)).strip()
docs: Yield marker, value pairs from a text block (i.e. a list of lines).
  
      :param block: text block consisting of \n separated lines as it will be the case for \
      files read using "rU" mode.
      :return: generator of (marker, value) pairs.