memmod.py 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. import hashlib
  2. from jinja2 import Environment, FileSystemLoader
  3. import os,yaml
  4. def doTitre(d):
  5. #path= f"{os.getcwd()}/../Jinja"
  6. path= "/home/moi/Memoires/Jinja"
  7. env = Environment(loader=FileSystemLoader(path))
  8. # Load a template
  9. template = env.get_template('titre.jin')
  10. #
  11. if d["auteur"][0].lower()[0] in ("a","e","i","o","u","y"):
  12. d["de"]=" d'"
  13. else:
  14. d["de"]=" de "
  15. if d["statut"] !="":
  16. d["virgule"]=","
  17. else:
  18. d["virgule"]=""
  19. if "titre_court" not in d.keys():
  20. d["titre_court"]= d["titre"]
  21. return template.render(di=d)
  22. #
  23. def dolabel(k,t):
  24. # faire une étiquette "unique" à partir de deux chaines de caratères k et t.
  25. s=(k+t).encode("UTF-8")
  26. return hashlib.sha1(s).hexdigest()
  27. #
  28. # Données pour treatline.
  29. #
  30. # attention, l'ordre est important !
  31. tabler={"textsuperscript{e}":"ieme{}",
  32. "textsuperscript{ème}":"ieme{}",
  33. "textsuperscript{er}":"ier{}",
  34. "\\begin{quote}":"",
  35. "\\end{quote}":"",
  36. "subsection{":"subsection*{",
  37. "\\textquotesingle ":"'",
  38. "\\textquotesingle":"",
  39. "~":"",
  40. }
  41. def treatline(l):
  42. # Les substitutions éventuelles à faire sur une ligne
  43. for x,y in tabler.items():
  44. l=l.replace(x,y)
  45. return l
  46. def nocite_all(fich):
  47. # Créer un nocite{...} avec toutes les entrées du fichier fich
  48. # (un fichier .bib).
  49. with open(fich) as f:
  50. L=f.readlines()
  51. all=[]
  52. for x in L:
  53. if "@" in x:
  54. d=x.find("{")+1
  55. e=x.find(",")
  56. all.append(x[d:e])
  57. return f"\\nocite{{{','.join(all)}}}"
  58. def doTitre(d):
  59. #path= f"{os.getcwd()}/../Jinja"
  60. path= "/home/moi/Memoires/Jinja"
  61. env = Environment(loader=FileSystemLoader(path))
  62. # Load a template
  63. template = env.get_template('titre.jin')
  64. #
  65. if d["auteur"][0].lower()[0] in ("a","e","i","o","u","y"):
  66. d["de"]=" d'"
  67. else:
  68. d["de"]=" de "
  69. if d["statut"] !="":
  70. d["virgule"]=","
  71. else:
  72. d["virgule"]=""
  73. if "titre_court" not in d.keys():
  74. d["titre_court"]= d["titre"]
  75. return template.render(di=d)
  76. #