#!/usr/bin/env python # -*- coding: utf-8 -*- # generates topics.html and topic_*.html # (c) 2012 by the GRASS Development Team, Markus Neteler, Luca Delucchi import os import sys import glob from build_html import * path = sys.argv[1] year = os.getenv("VERSION_DATE") keywords = {} htmlfiles = glob.glob1(path, '*.html') for fname in htmlfiles: fil = open(os.path.join(path, fname)) # TODO maybe move to Python re (regex) lines = fil.readlines() try: index_keys = lines.index('

KEYWORDS

\n')+1 index_desc = lines.index('

NAME

\n')+1 except: continue try: key = lines[index_keys].split(',')[1].strip().capitalize().replace(' ', '_') key = key.split('>')[1].split('<')[0] except: continue try: desc = lines[index_desc].split('-', 1)[1].strip() except: desc.strip() if key not in keywords.keys(): keywords[key] = {} keywords[key][fname] = desc elif fname not in keywords[key]: keywords[key][fname] = desc topicsfile = open(os.path.join(path, 'topics.html'), 'w') topicsfile.write(header1_tmpl.substitute(title = "GRASS GIS " \ "%s Reference Manual: Topics index" % grass_version)) topicsfile.write(headertopics_tmpl) for key, values in sorted(keywords.iteritems()): topicsfile.writelines([moduletopics_tmpl.substitute(key=key.lower(), name=key.replace('_', ' '))]) keyfile = open(os.path.join(path, 'topic_%s.html' % key.lower()), 'w') keyfile.write(header1_tmpl.substitute(title = "GRASS GIS " \ "%s Reference Manual: Topic %s" % (grass_version, key.replace('_', ' ')))) keyfile.write(headerkey_tmpl.substitute(keyword=key.replace('_', ' '))) for mod, desc in sorted(values.iteritems()): keyfile.write(desc1_tmpl.substitute(cmd=mod, desc=desc, basename=mod.replace('.html', ''))) keyfile.write("\n") write_html_footer(keyfile, "index.html", year) topicsfile.write("\n") write_html_footer(topicsfile, "index.html", year) topicsfile.close()