Handle bullet lists

Signed-off-by: SimJeg <sjegou@nvidia.com>
This commit is contained in:
SimJeg 2025-03-31 16:27:50 +02:00
parent fcaad41a0a
commit 5b4464a741
2 changed files with 45 additions and 27 deletions

View File

@ -379,7 +379,7 @@ class MsWordDocumentBackend(DeclarativeDocumentBackend):
doc, doc,
numid, numid,
ilevel, ilevel,
text, paragraph_elements,
is_numbered, is_numbered,
) )
self.update_history(p_style_id, p_level, numid, ilevel) self.update_history(p_style_id, p_level, numid, ilevel)
@ -556,7 +556,7 @@ class MsWordDocumentBackend(DeclarativeDocumentBackend):
doc: DoclingDocument, doc: DoclingDocument,
numid: int, numid: int,
ilevel: int, ilevel: int,
text: str, elements: list[tuple[str, Formatting, str]],
is_numbered: bool = False, is_numbered: bool = False,
) -> None: ) -> None:
enum_marker = "" enum_marker = ""
@ -575,12 +575,17 @@ class MsWordDocumentBackend(DeclarativeDocumentBackend):
if is_numbered: if is_numbered:
enum_marker = str(self.listIter) + "." enum_marker = str(self.listIter) + "."
is_numbered = True is_numbered = True
doc.add_list_item(
marker=enum_marker, inline_fmt = doc.add_group(label=GroupLabel.INLINE, parent=self.parents[level])
enumerated=is_numbered, for text, format, hyperlink in elements:
parent=self.parents[level], doc.add_list_item(
text=text, marker=enum_marker,
) enumerated=is_numbered,
parent=inline_fmt,
text=text,
formatting=format,
hyperlink=hyperlink,
)
elif ( elif (
self.prev_numid() == numid self.prev_numid() == numid
@ -611,13 +616,17 @@ class MsWordDocumentBackend(DeclarativeDocumentBackend):
if is_numbered: if is_numbered:
enum_marker = str(self.listIter) + "." enum_marker = str(self.listIter) + "."
is_numbered = True is_numbered = True
doc.add_list_item(
marker=enum_marker, inline_fmt = doc.add_group(label=GroupLabel.INLINE, parent=self.parents[self.level_at_new_list + ilevel])
enumerated=is_numbered, for text, format, hyperlink in elements:
parent=self.parents[self.level_at_new_list + ilevel], doc.add_list_item(
text=text, marker=enum_marker,
) enumerated=is_numbered,
parent=inline_fmt,
text=text,
formatting=format,
hyperlink=hyperlink,
)
elif ( elif (
self.prev_numid() == numid self.prev_numid() == numid
and self.level_at_new_list is not None and self.level_at_new_list is not None
@ -633,12 +642,16 @@ class MsWordDocumentBackend(DeclarativeDocumentBackend):
if is_numbered: if is_numbered:
enum_marker = str(self.listIter) + "." enum_marker = str(self.listIter) + "."
is_numbered = True is_numbered = True
doc.add_list_item( inline_fmt = doc.add_group(label=GroupLabel.INLINE, parent=self.parents[self.level_at_new_list + ilevel])
marker=enum_marker, for text, format, hyperlink in elements:
enumerated=is_numbered, doc.add_list_item(
parent=self.parents[self.level_at_new_list + ilevel], marker=enum_marker,
text=text, enumerated=is_numbered,
) parent=inline_fmt,
text=text,
formatting=format,
hyperlink=hyperlink,
)
self.listIter = 0 self.listIter = 0
elif self.prev_numid() == numid or prev_indent == ilevel: elif self.prev_numid() == numid or prev_indent == ilevel:
@ -647,12 +660,17 @@ class MsWordDocumentBackend(DeclarativeDocumentBackend):
if is_numbered: if is_numbered:
enum_marker = str(self.listIter) + "." enum_marker = str(self.listIter) + "."
is_numbered = True is_numbered = True
doc.add_list_item( inline_fmt = doc.add_group(label=GroupLabel.INLINE, parent=self.parents[level - 1])
marker=enum_marker, for text, format, hyperlink in elements:
enumerated=is_numbered, # Add the list item to the parent group
parent=self.parents[level - 1], doc.add_list_item(
text=text, marker=enum_marker,
) enumerated=is_numbered,
parent=inline_fmt,
text=text,
formatting=format,
hyperlink=hyperlink,
)
return return
def handle_tables( def handle_tables(