Skip to content

Commit 1cd4475

Browse files
committed
Add missing extract_label_and_title helper
1 parent 03e2778 commit 1cd4475

1 file changed

Lines changed: 25 additions & 0 deletions

File tree

markup_doc/labeling_utils.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1074,6 +1074,31 @@ def append_fragment(node_dest, val):
10741074
node_dest.append(child)
10751075

10761076

1077+
def extract_label_and_title(text):
1078+
"""
1079+
Extrae el Label (Figura/Figure/Tabla/Table/Tabela + número) y el Title (resto del texto limpio).
1080+
Ignora mayúsculas y minúsculas y limpia puntuación/espacios entre el número y el título.
1081+
"""
1082+
# Acepta Figura/Figure y Tabla/Table/Tabela
1083+
pattern = r'\b(Imagen|Imágen|Image|Imagem|Figura|Figure|Tabla|Table|Tabela)\s+(\d+)\b'
1084+
match = re.search(pattern, text, re.IGNORECASE)
1085+
1086+
if match:
1087+
word = match.group(1).capitalize() # Normaliza capitalización
1088+
number = match.group(2)
1089+
label = f"{word} {number}"
1090+
1091+
# Texto después del número
1092+
rest = text[match.end():]
1093+
1094+
# Quita puntuación/espacios iniciales (.,;: guiones, etc.)
1095+
rest_clean = re.sub(r'^[\s\.,;:–—-]+', '', rest)
1096+
1097+
return {"label": label, "title": rest_clean.strip()}
1098+
else:
1099+
return {"label": None, "title": text.strip()}
1100+
1101+
10771102
def proccess_special_content(text, data_body):
10781103
# normaliza espacios no separables por si acaso
10791104
text = re.sub(r'[\u00A0\u2007\u202F]', ' ', text)

0 commit comments

Comments
 (0)