Commit cb13fe47 authored by Fred Drake's avatar Fred Drake

Allow the user to specify the "biggest" section type from the command line;

default is "chapter".  Use 'python toc2bkm.py -c section' to use with
Python HOWTO documents.
parent 1949a013
...@@ -6,6 +6,7 @@ The output file has an extension of '.bkm' instead of '.out', since hyperref ...@@ -6,6 +6,7 @@ The output file has an extension of '.bkm' instead of '.out', since hyperref
already uses that extension. Let's avoid clashing. already uses that extension. Let's avoid clashing.
""" """
import getopt
import os import os
import re import re
import string import string
...@@ -38,10 +39,10 @@ _transition_map = { ...@@ -38,10 +39,10 @@ _transition_map = {
('subsubsection', 'chapter'): 3, ('subsubsection', 'chapter'): 3,
} }
def parse_toc(fp): def parse_toc(fp, bigpart=None):
toc = top = [] toc = top = []
stack = [toc] stack = [toc]
level = 'chapter' level = bigpart or 'chapter'
lineno = 0 lineno = 0
while 1: while 1:
line = fp.readline() line = fp.readline()
...@@ -105,10 +106,18 @@ def write_toc_entry(entry, fp, layer): ...@@ -105,10 +106,18 @@ def write_toc_entry(entry, fp, layer):
def main(): def main():
base, ext = os.path.splitext(sys.argv[1]) bigpart = None
ext = ext or ".toc" opts, args = getopt.getopt(sys.argv[1:], "c:")
toc = parse_toc(open(base + ext)) if opts:
write_toc(toc, open(base + ".bkm", "w")) bigpart = opts[0][1]
if not args:
usage()
sys.exit(2)
for filename in args:
base, ext = os.path.splitext(filename)
ext = ext or ".toc"
toc = parse_toc(open(base + ext), bigpart)
write_toc(toc, open(base + ".bkm", "w"))
if __name__ == "__main__": if __name__ == "__main__":
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment