From a88ef036f506b99c3af873d703158536fd9ab264 Mon Sep 17 00:00:00 2001 From: Miguel Angel Reina Ortega <miguelangel.reinaortega@etsi.org> Date: Wed, 26 Feb 2025 17:09:32 +0100 Subject: [PATCH] Fixing setting of cell alignment --- toMkdocs/gridTableTools.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/toMkdocs/gridTableTools.py b/toMkdocs/gridTableTools.py index 487ae31..2dd122a 100644 --- a/toMkdocs/gridTableTools.py +++ b/toMkdocs/gridTableTools.py @@ -39,6 +39,7 @@ class GridCell: self.colspan:int = 0 self.colspanAdjusted:bool = False self.alignment:str = 'align="center"' + self.positionStart:Optional[int] = None self.position:Optional[int] = None self.listFlag:bool = False self.auxiliarIndex:int = 0 @@ -57,19 +58,15 @@ class GridCell: defaultAlignments: The default alignments. hasHeader: True if the table has a header, False otherwise. """ - if self.position is None: + if self.position is None or self.positionStart is None: raise ValueError('Cell position must be set before calculating alignment.') if hasHeader: headerDelimiterIndex = 0 - while headerDelimiterIndex < len(defaultAlignments) and self.position > headerDelimiterPositions[headerDelimiterIndex]: + while headerDelimiterIndex < len(defaultAlignments) and self.positionStart > headerDelimiterPositions[headerDelimiterIndex]: headerDelimiterIndex += 1 if headerDelimiterIndex < len(defaultAlignments): - if self.position < headerDelimiterPositions[headerDelimiterIndex]: - self.alignment = defaultAlignments[headerDelimiterIndex] - elif self.position == headerDelimiterPositions[headerDelimiterIndex]: - self.alignment = defaultAlignments[headerDelimiterIndex] - headerDelimiterIndex += 1 + self.alignment = defaultAlignments[headerDelimiterIndex] else: raise ValueError('Invalid table formatting') @@ -364,6 +361,7 @@ def parseGridTableWithSpans(gridTable:str) -> tuple[GridTableRowList, GridTableR cell = rows[-1][columnIndex] # Set position + cell.positionStart = delimiterIndex - len(parts[rowIndex]) cell.position = delimiterIndex # Position of cell delimiter + # Set alignment as defined by header separator line @@ -390,6 +388,7 @@ def parseGridTableWithSpans(gridTable:str) -> tuple[GridTableRowList, GridTableR if auxiliarCellIndex < numberOfColumns: auxDelimiterIndex += len(content) + 1 cell = rows[-1][auxiliarCellIndex] + cell.positionStart = auxDelimiterIndex - len(content) # Position of cell delimiter + cell.position = auxDelimiterIndex # Position of cell delimiter + cell.calculateAndSetAlignment(headerDelimiterPositions, delimiterPositions, defaultAlignments, hasHeader) while auxDelimiterIndex > delimiterPositions[auxiliarCellIndex]: -- GitLab