forked from exo7math/python1-exo7
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmarkdown_code_2_3.py
More file actions
executable file
·56 lines (42 loc) · 1.67 KB
/
markdown_code_2_3.py
File metadata and controls
executable file
·56 lines (42 loc) · 1.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
def afficher_ligne_v3(par,posy):
""" Affiche le texte selon gras et italique et selon le mode
Entrée : un paragraphe (c-à-d une longue ligne), la position verticale
Sortie : affichage """
# Par défaut : texte, sans indentation
mode = "texte"
indentation = 20
if par[0:2] == "##": # Sous_titre
mode = "sous_titre"
par = par[2:] # Supprime les ##
elif par[0] == "#": # Titre
mode = "titre"
par = par[1:] # Supprime le #
elif par[0] == "+": # liste
mode = "liste"
par = u'\u2022' + par[1:] # Remplace le "+" par un rond
indentation = 40
# Gras / pas gras (par défaut ni gras, ni italique)
en_gras = False
en_italique = False
# Début de la ligne (décalé si liste)
posx = indentation
liste_mots = par.split()
for mot in liste_mots:
if mot == "**": # Bascule gras / pas gras
en_gras = not(en_gras)
mot = ""
if en_gras:
fonte = fonte_gras
if mot == "*": # Bascule italique / pas italique
en_italique = not(en_italique)
mot = ""
fonte = choix_fonte(mode,en_gras,en_italique)
if mot != "":
mot = mot + " " # Rajoute espace qui sépare les mots
mot_canvas = canvas.create_text(posx,posy, text=mot,anchor=NW,font=fonte,fill=couleur_texte)
posx = canvas.bbox(mot_canvas)[2]
return
# Tests
afficher_ligne_v3("Mot ** en gras ** et lui en * italique *",100)
afficher_ligne_v3("+ Pommes et surtout ** poires ** et * ananas *",125)
root.mainloop()