def get_body_compat(node: OrgNode) -> str: try: return node.get_body(format='raw') except Exception as e: if node.is_root(): # get_body was only added to root in 0.2.0 for x in warn_old_orgparse_once(): # ugh. really crap, but it will at least only warn once... (becaue it caches) raise x return UPDATE_ORGPARSE_WARNING else: raise e
def iter_org_urls(n: OrgNode) -> Iterator[Res[Url]]: logger = get_logger() # todo not sure if it can fail? but for now, paranoid just in case try: heading = _get_heading(n) except Exception as e: logger.exception(e) yield e else: yield from iter_urls(heading, syntax='org') try: content = n.get_body(format='raw') except Exception as e: logger.exception(e) yield e else: yield from iter_urls(content, syntax='org')
def _get_body(n: OrgNode): if n.is_root(): return '\n'.join(n._lines) else: return n.get_body(format='raw')