|
@@ -0,0 +1,62 @@
|
|
|
|
|
+#
|
|
|
|
|
+from jinja2 import Environment, FileSystemLoader
|
|
|
|
|
+import os,yaml
|
|
|
|
|
+
|
|
|
|
|
+#
|
|
|
|
|
+def doTitre(d):
|
|
|
|
|
+ #path= f"{os.getcwd()}/../Jinja"
|
|
|
|
|
+ path= "/home/moi/Memoires/Jinja"
|
|
|
|
|
+ env = Environment(loader=FileSystemLoader(path))
|
|
|
|
|
+
|
|
|
|
|
+ # Load a template
|
|
|
|
|
+ template = env.get_template('titre.jin')
|
|
|
|
|
+#
|
|
|
|
|
+ if d["auteur"][0].lower()[0] in ("a","e","i","o","u","y"):
|
|
|
|
|
+ d["de"]=" d'"
|
|
|
|
|
+ else:
|
|
|
|
|
+ d["de"]=" de "
|
|
|
|
|
+
|
|
|
|
|
+ if d["statut"] !="":
|
|
|
|
|
+ d["virgule"]=","
|
|
|
|
|
+ else:
|
|
|
|
|
+ d["virgule"]=""
|
|
|
|
|
+
|
|
|
|
|
+ if "titre_court" not in d.keys():
|
|
|
|
|
+ d["titre_court"]= d["titre"]
|
|
|
|
|
+
|
|
|
|
|
+ return template.render(di=d)
|
|
|
|
|
+#
|
|
|
|
|
+if __name__ == '__main__':
|
|
|
|
|
+ #---clés du fichier data.yml
|
|
|
|
|
+ data_yml_mandatory_keys=['fichier', 'date', 'auteur', 'titre']
|
|
|
|
|
+ data_yml_order=['date','type','auteur','statut','titre']
|
|
|
|
|
+ #
|
|
|
|
|
+
|
|
|
|
|
+ with open("data.yml") as f:
|
|
|
|
|
+ d=yaml.safe_load(f)
|
|
|
|
|
+ # on vérifie que le fichier "data.yml" est correct:
|
|
|
|
|
+ for x in data_yml_mandatory_keys: #vérifier la présence des
|
|
|
|
|
+ #clés obligatoires
|
|
|
|
|
+ if not x in d.keys():
|
|
|
|
|
+ raise Exception(f"\n\n Il manque la clé {x} dans data.yml\n\n")
|
|
|
|
|
+ # si statut est défini, type doit l'être aussi:
|
|
|
|
|
+
|
|
|
|
|
+ if "statut" in d.keys(): # membre t=itulaire, correspondant, d'honneur...
|
|
|
|
|
+ if "type" not in d.keys():
|
|
|
|
|
+ raise Exception(f"\n\n statut est défini, mais pas type\n\n")
|
|
|
|
|
+ add_virgule = True
|
|
|
|
|
+ else: # si statut n'est pas défini, on le définit à
|
|
|
|
|
+ # " " et type à "Conférence".
|
|
|
|
|
+ add_virgule =False
|
|
|
|
|
+ d["statut"]=" "
|
|
|
|
|
+ if "type" not in d.keys():
|
|
|
|
|
+ d["type"]="Conférence"
|
|
|
|
|
+ #
|
|
|
|
|
+ add_virgule = True
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ print("data_yml lu")
|
|
|
|
|
+ T=doTitre(d)
|
|
|
|
|
+ #print(T)
|
|
|
|
|
+ with open("titre.tex","w") as f:
|
|
|
|
|
+ f.write(T)
|