build_full_index.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #!/usr/bin/env python3
  2. # generates docs/html/full_index.html
  3. # (C) 2003-2009 Markus Neteler and the GRASS Development Team
  4. # Authors:
  5. # Markus Neteler
  6. # Glynn Clements
  7. import sys
  8. import os
  9. from build_html import *
  10. year = None
  11. if len(sys.argv) > 1:
  12. year = sys.argv[1]
  13. os.chdir(html_dir)
  14. # TODO: create some master function/dict somewhere
  15. class_labels = {
  16. "d": "display",
  17. "db": "database",
  18. "g": "general",
  19. "i": "imagery",
  20. "m": "miscellaneous",
  21. "ps": "PostScript",
  22. "r": "raster",
  23. "r3": "3D raster",
  24. "t": "temporal",
  25. "v": "vector",
  26. }
  27. classes = []
  28. for cmd in html_files("*"):
  29. prefix = cmd.split(".")[0]
  30. if prefix not in [item[0] for item in classes]:
  31. classes.append((prefix, class_labels.get(prefix, prefix)))
  32. classes.sort(key=lambda tup: tup[0])
  33. # begin full index:
  34. filename = "full_index.html"
  35. f = open(filename + ".tmp", "w")
  36. write_html_header(
  37. f, "GRASS GIS %s Reference Manual: Full index" % grass_version, body_width="80%"
  38. )
  39. # generate main index of all modules:
  40. f.write(full_index_header)
  41. f.write(toc)
  42. # for all module groups:
  43. for cls, cls_label in classes:
  44. f.write(cmd2_tmpl.substitute(cmd_label=to_title(cls_label), cmd=cls))
  45. # for all modules:
  46. for cmd in html_files(cls):
  47. basename = os.path.splitext(cmd)[0]
  48. desc = check_for_desc_override(basename)
  49. if desc is None:
  50. desc = get_desc(cmd)
  51. f.write(desc1_tmpl.substitute(cmd=cmd, basename=basename, desc=desc))
  52. f.write("</table>\n")
  53. write_html_footer(f, "index.html", year)
  54. f.close()
  55. replace_file(filename)
  56. # done full index