import re from app.plan_d_action.utils.interface import CORRESPONDANCE_COULEURS def remplacer_par_badge(markdown_text, correspondance=CORRESPONDANCE_COULEURS): # Échappe les mots à remplacer s'ils contiennent des accents ou espaces for mot, couleur in correspondance.items(): # Utilise des bords de mots (\b) pour éviter les remplacements partiels pattern = r'\b' + re.escape(mot) + r'\b' remplacement = f":{couleur}-badge[{mot}]" markdown_text = re.sub(pattern, remplacement, markdown_text) return markdown_text