diff --git a/generateTOC/README.md b/generateTOC/README.md index beae4c00dc41d787a0673140edff05a49dfe55c7..4907235c1adc052c564772582669abd17a8ef695 100644 --- a/generateTOC/README.md +++ b/generateTOC/README.md @@ -19,7 +19,7 @@ $ python generateTOC.py <document path> ## Command Line Options ``` -usage: generateTOC.py [-h] [--add-content] [--indent <indent>] document +usage: generateTOC.py [-h] [--add-content] [--indent <indent>] [--contents] document positional arguments: document document to parse @@ -29,4 +29,5 @@ options: --add-content, -a add TOC to "# Content" section in the document (default: False) --indent <indent>, -i <indent> indent spaces for each level (default: 4) + --contents, -c add link to "Contents" section in the generated TOC (default: False) ``` \ No newline at end of file diff --git a/generateTOC/generateTOC.py b/generateTOC/generateTOC.py index 36f2bb48b5f4f5a392d3dbf7be71e556760fb4a6..ef6537691bcd829b5c6794b05ccd15dae26eb19c 100644 --- a/generateTOC/generateTOC.py +++ b/generateTOC/generateTOC.py @@ -51,7 +51,9 @@ def processDocument(args:argparse.Namespace) -> None: _l = line.strip() if _l.startswith('#'): level = len(_l) - len(_l.lstrip('#')) - 1 # level is number of # - 1 - headers.append((_l.lstrip('#').strip(), level)) + if (headline := _l.lstrip('#').strip()) == 'Contents' and not args.contents: + continue + headers.append((headline, level)) # Prepare and Print the table of contents to = '# Contents\n\n' @@ -93,6 +95,7 @@ if __name__ == '__main__': parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter) parser.add_argument('--add-content', '-a', action='store_true', dest='addContent', default = False, help = 'add TOC to "# Content" section in the document') parser.add_argument('--indent', '-i', action='store', dest='indent', default = 4, metavar = '<indent>', help = 'indent spaces for each level') + parser.add_argument('--contents', '-c', action='store_true', dest='contents', default = False, help = 'add link to "Contents" section in the generated TOC') parser.add_argument('document', help = 'document to parse') args = parser.parse_args()