def _apply_ctx(text, ctx): """À l'intérieur d'un Répéteur de données, {{champ}} est remplacé par la valeur de ce champ pour la ligne en cours — appliqué au contenu ET aux attributs de l'élément et de tous ses descendants.""" if not ctx or not text: return text for k, v in ctx.items(): text = text.replace("{{" + k + "}}", v) return text