#!/usr/bin/env python
# -*- coding: utf-8 -*-
# generates keywords.html
# (c) 2013 by the GRASS Development Team, Luca Delucchi
import os
import sys
import glob
from build_html import *
blacklist = ['Display', 'Database', 'General', 'Imagery', 'Misc', 'Postscript',
'Raster', 'Raster3D', 'Temporal', 'Vector']
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()
# remove empty lines
lines = [x for x in lines if x != '\n']
try:
index_keys = lines.index('
KEYWORDS
\n') + 1
index_desc = lines.index('NAME
\n') + 1
except:
continue
try:
keys = lines[index_keys].split(',')
except:
continue
for key in keys:
key = key.strip()
try:
key = key.split('>')[1].split('<')[0]
except:
pass
#key = "%s%s" % (key[0].upper(), key[1:])
if key not in keywords.keys():
keywords[key] = []
keywords[key].append(fname)
elif fname not in keywords[key]:
keywords[key].append(fname)
for black in blacklist:
try:
del keywords[black]
except:
continue
keywordsfile = open(os.path.join(path, 'keywords.html'), 'w')
keywordsfile.write(header1_tmpl.substitute(title = "GRASS GIS " \
"%s Reference Manual: Keywords index" % grass_version))
keywordsfile.write(headerkeywords_tmpl)
keywordsfile.write('')
for key, values in sorted(keywords.iteritems()):
keyword_line = '- %s
- ' % (key, key)
for value in sorted(values):
keyword_line += ' %s,' % (value, value.replace('.html',
''))
keyword_line = keyword_line.rstrip(',')
keyword_line += '
\n'
keywordsfile.write(keyword_line)
keywordsfile.write("
\n")
write_html_footer(keywordsfile, "index.html", year)
keywordsfile.close()