Introduit une fonction pour la conversion vers markdown

This commit is contained in:
Cléo Baras 2021-04-02 15:38:53 +02:00
parent bcd7e69ff0
commit e609824f3c
2 changed files with 21 additions and 22 deletions

View File

@ -129,7 +129,7 @@ for r in liste_ressources:
# Remet en forme le descriptif # Remet en forme le descriptif
split_description(r) split_description(r)
nettoie_contenus(r) nettoie_contenus_ressource(r)
# Remet en forme les mots-clés # Remet en forme les mots-clés
# Tri dans le bon semestre # Tri dans le bon semestre

View File

@ -322,8 +322,11 @@ def get_marqueur_numerique(contenu):
m += re.findall(r"(--\s|--\t)", contenu) m += re.findall(r"(--\s|--\t)", contenu)
return m return m
def get_marqueurs(contenus): def get_marqueurs(contenu):
"""Renvoie la liste des marqueurs (à 1 caractère) partant d'une liste de lignes (éventuellement vide)""" """Renvoie la liste des marqueurs (à 1 caractère) partant d'un contenu - splitable en plusieurs lignes
(éventuellement vide)"""
contenus = [ligne.rstrip() for ligne in contenu.split("\n")] # les contenus
marqueurs = [] marqueurs = []
for ligne in contenus: for ligne in contenus:
m = re.search(r"(\t)*", ligne) # y a-t-il des tabulations ? m = re.search(r"(\t)*", ligne) # y a-t-il des tabulations ?
@ -331,7 +334,7 @@ def get_marqueurs(contenus):
ajout = m.group() ajout = m.group()
else: else:
ajout = "" ajout = ""
ligne = ligne.replace("\t","").rstrip() ligne = ligne.replace("\t","").rstrip() # supprime les tabulations pour rapatrier le marqueur en début de ligne
if ligne: # si la ligne n'est pas vide, cherche le marqueur en début de ligne (si 1 caractère) if ligne: # si la ligne n'est pas vide, cherche le marqueur en début de ligne (si 1 caractère)
if ligne[0] not in string.ascii_letters and ligne[0] != "É" and ligne[0] != "/": if ligne[0] not in string.ascii_letters and ligne[0] != "É" and ligne[0] != "/":
marqueurs += [ajout + ligne[0]] # tous les symboles marqueurs += [ajout + ligne[0]] # tous les symboles
@ -342,7 +345,7 @@ def get_marqueurs(contenus):
marqueurs_finaux.append(m) marqueurs_finaux.append(m)
return marqueurs_finaux return marqueurs_finaux
def get_marqueur(ligne, marqueurs): def get_marqueur_from_liste(ligne, marqueurs):
"""Renvoie le marqueur qui marque le début d'une ligne parmi une liste de marqueurs recherchés""" """Renvoie le marqueur qui marque le début d'une ligne parmi une liste de marqueurs recherchés"""
for m in marqueurs: for m in marqueurs:
if ligne.startswith(m): if ligne.startswith(m):
@ -356,31 +359,27 @@ def remplace_marqueur_numerique_with_caracteres(contenu):
contenu = contenu.replace(m, ">") contenu = contenu.replace(m, ">")
return contenu return contenu
def nettoie_contenus(r): def convert_to_markdown(contenu):
# suppression des \t """Convertit un contenu avec des marqueurs en markdown"""
contenu = r.contenu.replace(" / ", "/")
contenu = remplace_marqueur_numerique_with_caracteres(contenu) contenu = remplace_marqueur_numerique_with_caracteres(contenu)
marqueurs_finaux = get_marqueurs(contenu)
contenus = [ligne.rstrip() for ligne in contenu.split("\n")] # les contenus lignes = contenu.split("\n")
# contenus = remove_ligne_vide(contenus) # supprime les lignes vides contenus_fin = lignes[:] # copie des ligne
for (i, ligne) in enumerate(lignes):
marqueurs_finaux = get_marqueurs(contenus) m = get_marqueur_from_liste(ligne, marqueurs_finaux) # identifie la présence d'un marqueur dans la ligne
contenus_fin = contenus[:] # copie des ligne
for (i, ligne) in enumerate(contenus):
m = get_marqueur(ligne, marqueurs_finaux)
if m: if m:
pos = marqueurs_finaux.index(m) pos = marqueurs_finaux.index(m)
contenus_fin[i] = "\t" * (pos) + "* " + ligne.replace(m, "").replace("\t", "").rstrip() contenus_fin[i] = "\t" * (pos) + "* " + ligne.replace(m, "").replace("\t", "").rstrip()
contenu = "\n\n".join(contenus_fin) contenu = "\n\n".join(contenus_fin)
# contenu = contenu.replace("\n\n", "\n") return contenu
def nettoie_contenus_ressource(r):
# suppression des \t
contenu = r.contenu.replace(" / ", "/")
contenu = convert_to_markdown(contenu)
r.contenu = contenu r.contenu = contenu
class SAEDocx(): class SAEDocx():
def __init__(self, nom, brut): def __init__(self, nom, brut):