diff options
-rwxr-xr-x | Doc/tools/buildindex.py | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/Doc/tools/buildindex.py b/Doc/tools/buildindex.py index 428100b..01805f3 100755 --- a/Doc/tools/buildindex.py +++ b/Doc/tools/buildindex.py @@ -151,7 +151,7 @@ def split_letters(nodes): # need a function to separate the nodes into columns... def split_columns(nodes, columns=1): if columns <= 1: - return (nodes,) + return [nodes] # This is a rough height; we may have to increase to avoid breaks before # a subitem. colheight = len(nodes) / columns @@ -176,7 +176,7 @@ def split_columns(nodes, columns=1): start = i * colheight end = start + colheight cols.append(nodes[start:end]) - return tuple(cols) + return cols DL_LEVEL_INDENT = " " @@ -249,7 +249,7 @@ def format_letter(letter): % (letter, lettername) -def format_html(nodes, columns=1): +def format_html_letters(nodes, columns=1): letter_groups = split_letters(nodes) items = [] for letter, nodes in letter_groups: @@ -261,6 +261,9 @@ def format_html(nodes, columns=1): s.append(format_nodes(nodes, columns)) return string.join(s, '') +def format_html(nodes, columns): + return format_nodes(nodes, columns) + def collapse(nodes): """Collapse sequences of nodes with matching keys into a single node. @@ -289,12 +292,16 @@ def main(): ifn = "-" ofn = "-" columns = 1 - opts, args = getopt.getopt(sys.argv[1:], "c:o:", ["columns=", "output="]) + letters = 0 + opts, args = getopt.getopt(sys.argv[1:], "c:lo:", + ["columns=", "letters", "output="]) for opt, val in opts: if opt in ("-o", "--output"): ofn = val elif opt in ("-c", "--columns"): columns = string.atoi(val) + elif opt in ("-l", "--letters"): + letters = 1 if not args: args = [ifn] nodes = [] @@ -302,7 +309,10 @@ def main(): nodes = nodes + load(open(fn)) nodes.sort() collapse(nodes) - html = format_html(nodes, columns) + if letters: + html = format_html_letters(nodes, columns) + else: + html = format_html(nodes, columns) if ofn == "-": sys.stdout.write(html) else: |