diff --git a/scripts/odf/templating/fillOdtElementTemplate.js b/scripts/odf/templating/fillOdtElementTemplate.js index a03e5f2..788dda9 100644 --- a/scripts/odf/templating/fillOdtElementTemplate.js +++ b/scripts/odf/templating/fillOdtElementTemplate.js @@ -799,7 +799,7 @@ export default function fillOdtElementTemplate(rootElements, compartment, addIma } else { const imageMarker = findImageMarker(currentNode.data, compartment) if (imageMarker){ - console.log({imageMarker}, "dans le if imageMarker") + //console.log({imageMarker}, "dans le if imageMarker") if (imageMarker.odfjsImage) { const href = addImageToOdtFile(imageMarker.odfjsImage) diff --git a/scripts/shared.js b/scripts/shared.js index ba3b9ed..6a97bbd 100644 --- a/scripts/shared.js +++ b/scripts/shared.js @@ -18,7 +18,6 @@ const TEXT_NODE = 3 function extraxtODSCellText(cell) { let text = ''; const childNodes = cell.childNodes; - for (const child of Array.from(childNodes)) { if (child.nodeType === TEXT_NODE) { // Direct text node, append the text directly @@ -34,6 +33,8 @@ function extraxtODSCellText(cell) { text += pChild.nodeValue; // Append text inside } else if (pChild.nodeName === 'text:line-break') { text += '\n'; // Append newline for + } else if (pChild.nodeName === 'text:a') { + text += pChild.textContent } } } else if (child.nodeName === 'text:line-break') { diff --git a/tests/fixtures/cellules avec emails.ods b/tests/fixtures/cellules avec emails.ods new file mode 100644 index 0000000..0b82277 Binary files /dev/null and b/tests/fixtures/cellules avec emails.ods differ diff --git a/tests/ods-files.js b/tests/ods-files.js index 5926b5b..fe7aa79 100644 --- a/tests/ods-files.js +++ b/tests/ods-files.js @@ -55,4 +55,24 @@ Pourquoi t'aimeraient-ils seulement comme tu es ? (hein) Si t'es pas comme eux quand t'es naturel` t.deepEqual(feuille1[0][0].value, expectedValue) +}); + +test('.ods cells with mails should be recognized', async t => { + const odsFileWithEmails = (await readFile('./tests/fixtures/cellules avec emails.ods')).buffer + const table = await getODSTableRawContent(odsFileWithEmails); + + const feuille1 = table.get('Feuille1') + + const row1 = feuille1[0] + t.deepEqual(row1[0].value, 'Nom') + t.deepEqual(row1[1].value, 'Email') + + const row2 = feuille1[1] + + t.deepEqual(row2[0].value, 'Dav') + t.deepEqual(row2[1].value, 'david@example.org') + + const row3 = feuille1[2] + t.deepEqual(row3[0].value, 'Fanny') + t.deepEqual(row3[1].value, 'lemaildeFanny@example.com') }); \ No newline at end of file