Support get_raw_contents of list groups.

This commit is contained in:
Sergio Martínez Portela 2022-11-03 23:01:21 +01:00
parent 440f0bd4b7
commit 28ddd3e44f
2 changed files with 16 additions and 2 deletions

View File

@ -7,7 +7,6 @@ class DrawerNode:
class PropertyDrawerNode(DrawerNode):
def __repr__(self):
return "<Properties: {}>".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 "<List: {}>".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 "<Code: {}>".format(len(self.lines))
from .utils import get_raw_contents

View File

@ -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))