27 lines
1.1 KiB
Python
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
|