From 2ce1eb44bdeba9b783f506db81986b8bd07b330a Mon Sep 17 00:00:00 2001 From: David Bruant Date: Thu, 8 May 2025 13:34:36 +0200 Subject: [PATCH] passing test --- scripts/odf/fillOdtTemplate.js | 10 ++++++---- .../liste-nombres-avec-formattage.odt | Bin 12592 -> 12594 bytes 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/scripts/odf/fillOdtTemplate.js b/scripts/odf/fillOdtTemplate.js index fdf8663..678b9aa 100644 --- a/scripts/odf/fillOdtTemplate.js +++ b/scripts/odf/fillOdtTemplate.js @@ -299,7 +299,7 @@ const elseMarker = '{:else}' const closingIfMarker = '{/if}' const eachStartMarkerRegex = /{#each\s+([^}]+?)\s+as\s+([^}]+?)\s*}/; -const eachClosingBlockMarker = '{/each}' +const eachClosingMarker = '{/each}' @@ -366,7 +366,7 @@ function fillTemplatedOdtElement(rootElement, compartment) { /** * Looking for {/each} */ - const isEachClosingBlock = text.includes(eachClosingBlockMarker) + const isEachClosingBlock = text.includes(eachClosingMarker) if(isEachClosingBlock) { @@ -836,9 +836,11 @@ function fillTemplatedOdtDocument(document, compartment) { ...findAllMatches(fullText, elseMarker), ...findAllMatches(fullText, closingIfMarker), ...findAllMatches(fullText, eachStartMarkerRegex), - ...findAllMatches(fullText, eachClosingBlockMarker) + ...findAllMatches(fullText, eachClosingMarker) ]; + console.log('positionedMarkers', positionedMarkers) + // If no markers found, skip this container if(positionedMarkers.length >= 1) { @@ -995,7 +997,7 @@ function fillTemplatedOdtDocument(document, compartment) { let matchIndex; // looking for a block marker - for(const marker of [ifStartMarkerRegex, elseMarker, closingIfMarker, eachStartMarkerRegex, eachClosingBlockMarker]) { + for(const marker of [ifStartMarkerRegex, elseMarker, closingIfMarker, eachStartMarkerRegex, eachClosingMarker]) { if(typeof marker === 'string') { const index = remainingText.indexOf(marker) diff --git a/tests/fixtures/liste-nombres-avec-formattage.odt b/tests/fixtures/liste-nombres-avec-formattage.odt index 510998687bbde4a0467843bc8d9f4030a1f769a4..9b967982d72519b648b11306e6817a5a9e727ee2 100644 GIT binary patch delta 4813 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