opencv/utils/make_index.py

64 lines
1.7 KiB
Python

#!/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>"