diff --git a/data.js b/data.js index ddab4c0..2a26906 100644 --- a/data.js +++ b/data.js @@ -208,7 +208,7 @@ const typst_header = `#import "template/template.typ": * author_pronouns: "{author_info.pronouns}", citations: "citations.bib" ) @@ -234,9 +234,12 @@ function generate_template() { console.log("- " + key); const search_condition = "<" + step_key + "." + key + ":"; - const condition_pos = out.search(search_condition); - if(condition_pos >= 0) { + while(true) { + const condition_pos = out.search(search_condition); + + if(condition_pos < 0) break; + const condition_end_pos = out.slice(condition_pos).search(">"); if(condition_end_pos >= 0) { @@ -249,9 +252,12 @@ function generate_template() { } const search_replacement = "{" + step_key + "." + key + "}"; - const replacement_pos = out.search(search_replacement); - if(replacement_pos >= 0) { + while(true) { + const replacement_pos = out.search(search_replacement); + + if(replacement_pos < 0) break; + const head = out.slice(0, replacement_pos); const meat = result[key]; const tail = out.slice(replacement_pos + search_replacement.length);