memmod.py 990 B

123456789101112131415161718192021222324252627282930313233343536
  1. import hashlib
  2. def dolabel(k,t):
  3. # faire une étiquette "unique" à partir de deux chaines de caratères k et t.
  4. s=(k+t).encode("UTF-8")
  5. return hashlib.sha1(s).hexdigest()
  6. # Données pour treatline.
  7. #
  8. # attention, l'ordre est important !
  9. tabler={"textsuperscript{e}":"ieme{}",
  10. "\\begin{quote}":"",
  11. "\\end{quote}":"",
  12. "subsection{":"subsection*{",
  13. "\\textquotesingle ":"'",
  14. "\\textquotesingle":"",
  15. "~":"",
  16. }
  17. def treatline(l):
  18. # Les substitutions éventuelles à faire sur une ligne
  19. for x,y in tabler.items():
  20. l=l.replace(x,y)
  21. return l
  22. def nocite_all(fich):
  23. # Créeer un nocite{...} avec toutes les entrées du fichier fich
  24. # (un fichier .bib).
  25. with open(fich) as f:
  26. L=f.readlines()
  27. all=[]
  28. for x in L:
  29. if "@" in x:
  30. d=x.find("{")+1
  31. e=x.find(",")
  32. all.append(x[d:e])
  33. return f"\\nocite{{{','.join(all)}}}"