#!/usr/bin/env python """ Usage: make_index.py <html_ref_file> [ > <output_func_index_file> ] This script parses html reference file, creates alphabetical list of functions and list of examples ] """ import sys, re, string f = open(sys.argv[1]) func_list = {} struct_list = [] func_decl_re = re.compile( r'<a name="decl_(.+?)"' ) for l in f.xreadlines(): llist = func_decl_re.findall(l) if llist: ll = llist[0] if ll.startswith('Cv'): struct_list.append(ll) elif ll.startswith('Ipl'): struct_list.append(ll) elif ll.startswith('cvm'): sublist = func_list.get(ll[3], []) sublist.append(ll) func_list[ll[3]] = sublist elif ll.startswith('cv'): sublist = func_list.get(ll[2], []) sublist.append(ll) func_list[ll[2]] = sublist f.close() struct_list.sort() func_letters = func_list.keys() func_letters.sort() print "<html><body>" columns = 3 for letter in func_letters: print '<hr><h3>%s</h3>\n<table width="100%%">' % letter sublist = func_list[letter] sublist.sort() col_len = (len(sublist)+columns-1)/columns #if col_len*columns > len(sublist): # sublist.append( "" * (col_len*columns - len(sublist)) ) for i in range(col_len): print '<tr>' for j in range(columns): if i + j*col_len < len(sublist): fn = sublist[i+j*col_len] fn_short = fn.lstrip(string.lowercase) print '<td width="25%%"><a href="#decl_%s">%s</a></td>' % (fn, fn_short) else: print '<td width="25%%"></td>' print '</tr>' print "</table>"