# Importation de la bibliothèque Streamlit # Streamlit est utilisé pour créer des applications web interactives en Python import streamlit as st import re # Pour les expressions régulières import requests # Pour effectuer des requêtes HTTP # Définition de la fonction principale pour l'onglet 2 de l'application def app_tab2(): # Affiche le texte "Aperçu" dans l'interface utilisateur # st.write() est une fonction polyvalente de Streamlit pour afficher du contenu st.write("Aperçu") # Affiche le contenu Markdown stocké dans la session # st.markdown() est utilisé pour rendre du texte formaté en Markdown # st.session_state est un dictionnaire qui conserve les données entre les rechargements de page # ['content'] fait référence à la clé où le contenu Markdown est stocké markdown_content = st.session_state['markdown'] fabriquedoc_public_endpoint = st.session_state['fabriquedoc_public_endpoint'] bearer_token = st.session_state['bearer_token'] # Regex pour trouver les images Markdown: ![alt text](path/to/image.ext) # Capture le chemin complet de l'image (y compris les répertoires si présents) image_pattern = re.compile(r'!\[.*?\]\((.*?)\)') def replace_image_path(match): image_path = match.group(1) # Si le chemin est déjà une URL complète, ne rien faire if image_path.startswith('http://') or image_path.startswith('https://'): return match.group(0) # Construire l'URL complète de l'image # On suppose que le chemin dans le markdown est juste le nom du fichier ou un chemin relatif simple # et que le backend sert les images via /images/{nom_fichier} image_name = image_path.split('/')[-1] # Prend juste le nom du fichier full_image_url = f"{fabriquedoc_public_endpoint}/images/{image_name}" return f"![{match.group(0).split('](')[0][2:]}]({full_image_url})" # Remplacer tous les chemins d'images relatifs par des URLs complètes processed_markdown_content = image_pattern.sub(replace_image_path, markdown_content) st.markdown(processed_markdown_content)