r"""  Code Python 3.12, encod早 en UTF-8, CRLF, test OK = 2024-07-11

À Â Ç É È Ê Ë Î Ï Ô Ù Û Ü Ÿ Æ Œ æ œ
version 1 - 2024-07-11 11:32 """

import tkinter as tk; from tkinter import *; from tkinter import messagebox

def f(x):
  try:
    position = x.index("http")    
    y="<a href='"+x[position:-1]+"'>"+x[3:position-1]+"</a>"
  except ValueError: print("'http' n'a pas été trouvé dans",x)
  return y

def formater():
  t="<details><summary>"; t+=txt1.get("0.0","end"); t+="</summary>"
  re="IA : "+txt2.get("0.0","end"); tab=re.splitlines(); isSource=False
  for x in tab:
    if x.startswith("Source : "): isSource=True; t+="<div class='note'><p>"+x+"</p><ol>"; continue
    if isSource: t+="<li>"+f(x)+"</li>"
    else:
      if len(x)>0: t+="<p>"+x+"</p>"
  if isSource: t+="</ol></div>"
  t+="</details>"; Fp.clipboard_clear(); Fp.clipboard_append(t)
  messagebox.showwarning("Fin du traitement","Texte en mémoire")
  txt1.delete(1.0, tk.END);txt2.delete(1.0, tk.END)

# messagebox n'affiche des lignes que de 53 chiffres et 36 "m" caractères
msg=""" La question posée à l'IA et sa réponse seront insérées
dans la balise HTML <details> où
- la question sera le contenu de la balise <summary>
- sa réponse, à la suite de cette balise
- et, éventuellement, ses sources dans la balise
<div class='note'>

Le contenu de la balise HTML <details> est copié dans le presse-papier.
Il suffira alors de faire un 'coller' dans le fichier HTML. 
"""
messagebox.showinfo("Formater",msg)

Fp = Tk();lbl1 = Label(text = "Question à IA");txt1 = Text(height=2)
lbl2 = Label(text = "Réponse IA");txt2 = Text(height=10)
btn = Button(text="Formater",command=formater)
lbl1.pack();txt1.pack();lbl2.pack();txt2.pack();btn.pack()

Fp.mainloop() 