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