From 28ddd3e44f80ae82f8e7ccde48d94cf96b18c366 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergio=20Mart=C3=ADnez=20Portela?= Date: Thu, 3 Nov 2022 23:01:21 +0100 Subject: [PATCH] Support get_raw_contents of list groups. --- org_rw/dom.py | 12 +++++++++++- org_rw/utils.py | 6 +++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/org_rw/dom.py b/org_rw/dom.py index bc24272..6b3e455 100644 --- a/org_rw/dom.py +++ b/org_rw/dom.py @@ -7,7 +7,6 @@ class DrawerNode: class PropertyDrawerNode(DrawerNode): - def __repr__(self): return "".format(len(self.children)) @@ -38,6 +37,9 @@ class ListGroupNode: def append(self, child): self.children.append(child) + def get_raw(self): + return '\n'.join([c.get_raw() for c in self.children]) + def __repr__(self): return "".format(len(self.children)) @@ -64,6 +66,9 @@ class Text: def __init__(self, content): self.content = content + def get_raw(self): + return ''.join(self.content.get_raw()) + class ListItem: def __init__(self, tag, content, orig=None): @@ -71,6 +76,9 @@ class ListItem: self.content = content self.orig = orig + def get_raw(self): + return get_raw_contents(self.orig) + class BlockNode: def __init__(self): @@ -92,3 +100,5 @@ class CodeBlock(BlockNode): def __repr__(self): return "".format(len(self.lines)) + +from .utils import get_raw_contents diff --git a/org_rw/utils.py b/org_rw/utils.py index 555671a..0e6f559 100644 --- a/org_rw/utils.py +++ b/org_rw/utils.py @@ -1,8 +1,10 @@ import uuid -from .org_rw import (Bold, Code, Headline, Italic, Line, RawLine, Strike, Text, +from .org_rw import (Bold, Code, Headline, Italic, Line, RawLine, ListItem, Strike, Text, Underlined, Verbatim) +from .org_rw import dump_contents + def get_hl_raw_contents(doc: Headline) -> str: lines = [] @@ -36,6 +38,8 @@ def get_raw_contents(doc) -> str: return "".join([get_raw_contents(chunk) for chunk in doc]) if isinstance(doc, (Text, Bold, Code, Italic, Strike, Underlined, Verbatim)): return doc.get_raw() + if isinstance(doc, ListItem): + return dump_contents(doc)[1] print("Unhandled type: " + str(doc)) raise NotImplementedError("Unhandled type: " + str(doc))