Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 26 additions & 8 deletions linuxdoc/rstFlatTable.py
Original file line number Diff line number Diff line change
Expand Up @@ -327,15 +327,33 @@ def parseCellItem(self, cellItem):
cspan = rspan = 0
if not len(cellItem): # pylint: disable=len-as-condition
return cspan, rspan, []
for elem in cellItem[0]:
if isinstance(elem, colSpan):
cspan = elem.get("span")
elem.parent.remove(elem)
continue
if isinstance(elem, rowSpan):
rspan = elem.get("span")
elem.parent.remove(elem)
for elem in cellItem[0][:]:
if isinstance(elem, colSpan) or isinstance(elem, rowSpan):
if isinstance(elem, colSpan):
cspan = elem.get("span")
if isinstance(elem, rowSpan):
rspan = elem.get("span")

# Trim leading whitespace in the following element
parent = elem.parent
if parent.index(elem) == 0 and len(parent) > 1:
sibling = parent[1]
if isinstance(sibling, nodes.Text):
new_text = sibling.lstrip()
if len(new_text) != 0:
parent.replace(sibling, nodes.Text(new_text))
else:
parent.remove(sibling)

# Finally remove target element from parent
parent.remove(elem)

# And if the parent paragraph is now empty, remove it
if len(parent) == 0:
parent.replace_self([])

continue

return cspan, rspan, cellItem[:]


Expand Down