* add rough roadmap
* adding test of odt template filling
* progress
* avec les titres
* premier jet de remplacement
* progress i guess
* Bimz ! Remplissage de template et passage de tests !
* nettoyages
* zip entries async generator
* un fichier d'exemple pour la génération d'une liste de courses
* Test avec le each et amélioration de getOdtTextContent
* yep
* Le test du each passe mais pas encore la création du fichier .odt
* Meilleur packaging du zip
* Création d'un fichier à partir d'un template - le fichier de sortie s'ouvre avec LibreOffice !!
* Génération d'une liste dans un .odt
* 2 sibling each in a document
* add nested each test
* Génération d'un tableau avec un {#each}
* Refacto API for Node.js
* add fillOdtTemplate to browser exports
* Mention template filling in readme
24 lines
689 B
JavaScript
24 lines
689 B
JavaScript
/*
|
|
Since we're using xmldom in Node.js context, the entire DOM API is not implemented
|
|
Functions here are helpers whild xmldom becomes more complete
|
|
*/
|
|
|
|
/**
|
|
* Traverses a DOM tree starting from the given element and applies the visit function
|
|
* to each Element node encountered in tree order (depth-first).
|
|
*
|
|
* This should probably be replace by the TreeWalker API when implemented by xmldom
|
|
*
|
|
* @param {Node} node
|
|
* @param {(n : Node) => void} visit
|
|
*/
|
|
export function traverse(node, visit) {
|
|
//console.log('traverse', node.nodeType, node.nodeName)
|
|
|
|
for (const child of Array.from(node.childNodes)) {
|
|
traverse(child, visit);
|
|
}
|
|
|
|
visit(node);
|
|
}
|