def _parse_toc(para): nonlocal next_parser, just_started if para.get(prefix.lower(), True) and matcher(para): match = para['text_re'] node_data = match.groupdict() if node_data['heading']: node_data['heading'] = repealed_re.sub('', node_data['heading']) toc_node = _aaa(dom, 'container', prefix, para=para['index'], **match.groupdict()) next_parser = NextParser(toc_node) just_started = True return True elif just_started: # skip table of contents if matchers.toc_entry(para) or matchers.empty(para): return True else: just_started = False return next_parser(para) else: return next_parser(para)
def _parse_unit(para): nonlocal next_parser, just_started, unit_detected if (just_started or unit_detected) and matchers.unit(para): match = para['text_re'] node_data = match.groupdict() if node_data['heading']: node_data['heading'] = repealed_re.sub('', node_data['heading']) toc_node = _aaa(dom, 'container', 'Unit', para=para['index'], **match.groupdict()) next_parser = NextParser(toc_node) unit_detected = True just_started = True return True elif just_started: # skip table of contents if matchers.toc_entry(para) or matchers.empty(para): return True else: just_started = False return next_parser(para) elif next_parser: return next_parser(para) else: return False