Support updating of elements's ID.
This commit is contained in:
parent
fe454bd85e
commit
2d7e7f23ed
@ -290,6 +290,10 @@ class Headline:
|
|||||||
def id(self):
|
def id(self):
|
||||||
return self.get_property("ID")
|
return self.get_property("ID")
|
||||||
|
|
||||||
|
@id.setter
|
||||||
|
def id(self, value):
|
||||||
|
self.set_property("ID", value)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def clock(self):
|
def clock(self):
|
||||||
times = []
|
times = []
|
||||||
@ -326,6 +330,33 @@ class Headline:
|
|||||||
|
|
||||||
return default
|
return default
|
||||||
|
|
||||||
|
def set_property(self, name: str, value: str):
|
||||||
|
for prop in self.properties:
|
||||||
|
|
||||||
|
# A matching property is found, update it
|
||||||
|
if prop.key == name:
|
||||||
|
prop.value = value
|
||||||
|
return
|
||||||
|
|
||||||
|
# No matching property found, add it
|
||||||
|
else:
|
||||||
|
if len(self.properties) > 0:
|
||||||
|
last_prop = self.properties[-1]
|
||||||
|
last_line = last_prop.linenum
|
||||||
|
last_match = last_prop.match
|
||||||
|
else:
|
||||||
|
last_line = 0
|
||||||
|
last_match = None
|
||||||
|
self.properties.append(
|
||||||
|
Property(
|
||||||
|
linenum=last_line,
|
||||||
|
match=last_match,
|
||||||
|
key=name,
|
||||||
|
value=value,
|
||||||
|
options=None,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
def get_links(self):
|
def get_links(self):
|
||||||
for content in self.contents:
|
for content in self.contents:
|
||||||
yield from get_links_from_content(content)
|
yield from get_links_from_content(content)
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
import uuid
|
||||||
|
|
||||||
from .org_rw import (Bold, Code, Headline, Italic, Line, RawLine, Strike, Text,
|
from .org_rw import (Bold, Code, Headline, Italic, Line, RawLine, Strike, Text,
|
||||||
Underlined, Verbatim)
|
Underlined, Verbatim)
|
||||||
|
|
||||||
@ -36,3 +38,7 @@ def get_raw_contents(doc) -> str:
|
|||||||
return doc.get_raw()
|
return doc.get_raw()
|
||||||
print("Unhandled type: " + str(doc))
|
print("Unhandled type: " + str(doc))
|
||||||
raise NotImplementedError("Unhandled type: " + str(doc))
|
raise NotImplementedError("Unhandled type: " + str(doc))
|
||||||
|
|
||||||
|
|
||||||
|
def random_id() -> str:
|
||||||
|
return str(uuid.uuid4())
|
||||||
|
Loading…
Reference in New Issue
Block a user