genauteur.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import yaml,sys,os
  2. #
  3. # Fabriquer la table des auteurs.
  4. #
  5. excludedirs={"ChapitresEtParties","Academie"}
  6. #---------------------------------------------
  7. sys.path.append(f"{os.getcwd()}/..")
  8. from memmod import *
  9. #
  10. with open("all_texts") as f:
  11. L= f.readlines()
  12. D={}
  13. for x in L:
  14. d0=x.split('/')[0]
  15. if not d0 in excludedirs and d0[0]!="#":
  16. d= f"../{d0}/data.yml"
  17. with open(d) as f:
  18. lt=yaml.safe_load(f)
  19. auteur= lt["auteur"]
  20. titre= lt["titre"]
  21. D.setdefault(auteur,[]).append(titre)
  22. # On a un dictionnaire D: auteur -> liste des textes.
  23. # fabriquer le LaTeX.
  24. with open("refauteur.tex","w") as f:
  25. s="\\begin{center} \\Large{\\bfseries INDEX DES AUTEURS}\\end{center}\n"
  26. f.write(s)
  27. f.write("\n")
  28. # trier les clés pas noms (pas forcément exact)
  29. DK=sorted([x for x in D.keys()], key=lambda x: s.split()[-1])
  30. for k in DK:
  31. print(k,len(D[k]))
  32. if len(D[k])==1:
  33. x=D[k][0]
  34. cle= dolabel(k,x)
  35. print("Clé:",k,"/",x,cle,"\n")
  36. s= f"{k}, \\textit{{{x}}} \\dotfill \\pageref{{{cle}}}\n\n"
  37. f.write(s)
  38. else:
  39. f.write(f"{k}:\n\n")
  40. for x in D[k]:
  41. space="\\hspace*{0.75cm}"
  42. cle= dolabel(k,x)
  43. print("Clé:",k,"/",x,cle,"\n")
  44. s= f"{space}\\textit{{{x}}} \\dotfill \\pageref{{{cle}}}\n\n"
  45. f.write(s)
  46. f.write("\n")