@classmethod
def tag_partition(cls, string, tag, is_re=False, headline=False):
    """Split the string into body parts and sections.

        If `headline` is True, the starting tag line is included for
        sections."""
    in_section = False
    body_parts = []
    sections = []
    tagged_line = ''
    for section in cls.tag_split(string, tag, is_re):
        if section[0]:
            in_section = not in_section
            tagged_line = section[1]
            continue
        if in_section:
            if headline:
                sections.append((tagged_line, section[1]))
            else:
                sections.append(section[1])
        else:
            body_parts.append(section[1])
    return body_parts, sections
