build_full_index.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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(f, "GRASS GIS %s Reference Manual: Full index" % grass_version, body_width="80%")
  35. #generate main index of all modules:
  36. f.write(full_index_header)
  37. f.write(toc)
  38. #for all module groups:
  39. for cls, cls_label in classes:
  40. f.write(cmd2_tmpl.substitute(cmd_label=to_title(cls_label), cmd=cls))
  41. #for all modules:
  42. for cmd in html_files(cls):
  43. basename = os.path.splitext(cmd)[0]
  44. desc = check_for_desc_override(basename)
  45. if desc is None:
  46. desc = get_desc(cmd)
  47. f.write(desc1_tmpl.substitute(cmd = cmd,
  48. basename = basename,
  49. 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