From f66a2c553786204041632b7da7dffc344339099e Mon Sep 17 00:00:00 2001 From: ankraft <an.kraft@gmail.com> Date: Tue, 10 Oct 2023 16:10:09 +0200 Subject: [PATCH] Added -contents / -c CLA. Printing the link to the "Contents" section is now not added by default, but can be enabled --- generateTOC/README.md | 3 ++- generateTOC/generateTOC.py | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/generateTOC/README.md b/generateTOC/README.md index beae4c0..4907235 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 36f2bb4..ef65376 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() -- GitLab