build_full_index.py 1.6 KB

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