From d0869d267b817bc68c3900b0f5d126e82513a479 Mon Sep 17 00:00:00 2001
From: Miguel Angel Reina Ortega <miguelangel.reinaortega@etsi.org>
Date: Wed, 26 Jul 2023 12:02:59 +0200
Subject: [PATCH] Adding support for changes in tables

---
 generateChangemarks/changemarks.py | 27 +++++++++++++++++++++++----
 1 file changed, 23 insertions(+), 4 deletions(-)

diff --git a/generateChangemarks/changemarks.py b/generateChangemarks/changemarks.py
index 0bb5c7b..57a0bf0 100644
--- a/generateChangemarks/changemarks.py
+++ b/generateChangemarks/changemarks.py
@@ -192,11 +192,30 @@ https://forge.etsi.org/rep/cdm/pipeline-scripts/-/blob/main/common/Dockerfile.st
     j = change.target_start - changed_clause.from_id # index gap
     for line in change:
         if (not (line.value.strip() == '') and (line.is_added)):
-            clauseMDlines.insert(j, "<span class=\"underline\">" + line.value + "</span>\n\n")
-            #clauseMDlines.insert(j, "<mark>" + line.value.strip("\n") + "</mark>\n\n")
-            clauseMDlines.pop(j+1)
+            if line.value.strip().startswith("|"): # It is a table
+                tableElements = line.value.strip().split("|")
+                modifiedElements:list[str] = []
+                for element in tableElements:
+                    if not element.strip() == '':
+                        modifiedElements.append("<span class=\"underline\">" + element.strip() + "</span>")
+                modifiedRow = "|" + "|".join(modifiedElements) + "|" + "\n"
+                clauseMDlines.insert(j,modifiedRow)
+                clauseMDlines.pop(j + 1)
+            else:
+                clauseMDlines.insert(j, "<span class=\"underline\">" + line.value + "</span>\n\n")
+                #clauseMDlines.insert(j, "<mark>" + line.value.strip("\n") + "</mark>\n\n")
+                clauseMDlines.pop(j+1)
         elif line.is_removed:
-            clauseMDlines.insert(j, "~~" + line.value.strip() + "~~")
+            if line.value.strip().startswith("|"):  # It is a table
+                tableElements = line.value.strip().split("|")
+                modifiedElements: list[str] = []
+                for element in tableElements:
+                    if not element.strip() == '':
+                        modifiedElements.append("~~" + element.strip() + "~~")
+                modifiedRow = "|" + "|".join(modifiedElements) + "|" + "\n"
+                clauseMDlines.insert(j, modifiedRow)
+            else:
+                clauseMDlines.insert(j, "~~" + line.value.strip() + "~~")
             
         j = j + 1
                      
-- 
GitLab