Code/app/plan_d_action/utils/interface/visualization.py
2025-06-04 21:24:56 +02:00

27 lines
1.1 KiB
Python

from typing import Dict, Optional
import re
from app.plan_d_action.utils.interface import CORRESPONDANCE_COULEURS
def remplacer_par_badge(
markdown_text: str,
correspondance: Optional[Dict[str, str]] = CORRESPONDANCE_COULEURS
) -> str:
"""Remplace certains mots par des badges colorés dans un texte Markdown.
Args:
markdown_text (str): Le texte Markdown à modifier.
correspondance (dict, optional): Dictionnaire qui mappe les mots
à remplacer vers les couleurs de leurs badges. Si None, utilise
CORRESPONDANCE_COULEURS par défaut.
Returns:
str: Le texte Markdown modifié avec des badges ajoutés.
"""
# É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