diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 79e90c23add5e340b95048e7a5292201398ee56e..8e83d4aa996c23ecf34433e907893f8a01a6ea44 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -27,6 +27,7 @@ Build pythonForPandocFilter docker image:
         - generateChangemarks/pandocFilter.py
         - generateChangemarks/changemarks.py
         - generateChangemarks/addTrackedChanges.py
+        - generateChangemarks/generateTOC.py
         
 Upgrade index for pages:
   stage: upgrade
diff --git a/generateTOC/README.md b/generateChangemarks/README.md
similarity index 100%
rename from generateTOC/README.md
rename to generateChangemarks/README.md
diff --git a/generateTOC/generateTOC.py b/generateChangemarks/generateTOC.py
similarity index 98%
rename from generateTOC/generateTOC.py
rename to generateChangemarks/generateTOC.py
index ad08b438981f823d2abcaa2b44bd17cdb3a64b10..deada950edab3e199c975489a300523088896b32 100644
--- a/generateTOC/generateTOC.py
+++ b/generateChangemarks/generateTOC.py
@@ -9,7 +9,7 @@
 
 from __future__ import annotations
 from typing import Tuple
-import argparse, os, re
+import argparse, os, re, sys
 from rich import print
 
 
@@ -82,7 +82,8 @@ def processDocument(args:argparse.Namespace) -> None:
 	for h in headers:
 		toc += ' ' * (h[1] * args.indent) + f'[{h[0]}](#{prepareTOClink(h[0])})  \n'
 	toc = re.sub('<[^<]+?>', '', toc)
-	
+	toc += '\n'
+
 	# Write the TOC to the console
 	print(toc)
 
@@ -117,7 +118,7 @@ def processDocument(args:argparse.Namespace) -> None:
 			
 
 
-if __name__ == '__main__':
+def main(args=None):
 
 	def nonNegativeInt(value:str) -> int:
 		"""Check if a value is a non-negative integer.
@@ -150,3 +151,5 @@ if __name__ == '__main__':
 
 	processDocument(args)
 
+if __name__ == '__main__':
+	sys.exit(main())
diff --git a/generateChangemarks/setup.py b/generateChangemarks/setup.py
index aa23d04aa3d59b6fc04e502dc1a19ed98bdb3944..7353e00df3b56daac61aeaff67a4ac6641ab30ca 100644
--- a/generateChangemarks/setup.py
+++ b/generateChangemarks/setup.py
@@ -13,8 +13,9 @@ setup(
 	],
     entry_points= {
             'console_scripts' : ['pandocFilter=pandocFilter:main',
-								 'changemarks=changemarks:main',
-								 'addTrackedChanges=addTrackedChanges:main',
+								'changemarks=changemarks:main',
+								'addTrackedChanges=addTrackedChanges:main',
+								'generateTOC=generateTOC:main',
 			]
             }
 
diff --git a/publish_spec.sh b/publish_spec.sh
index 168427bf5cd72719fc233c2d2fe904dad0679129..624f4420f97afc8b7f8a41e2acd6727edb5c0872 100755
--- a/publish_spec.sh
+++ b/publish_spec.sh
@@ -28,6 +28,8 @@ if [ ! $specs ] ; then
 fi
 
 for i in *.md ;  do
+    echo "\n------ Adding TOC to spec --------"
+	docker run --rm -v $(pwd):/tmp/ -u $(id -u):$(id -g) "$TOOLS_DOCKER_IMAGE" generateTOC --add-content "/tmp/$i"
 	echo "\n------ Preparaing spec --------" 
 	docker run --rm -v $(pwd):/tmp/ -u $(id -u):$(id -g) "$TOOLS_DOCKER_IMAGE" pandocFilter -o "/tmp/" "/tmp/$i"
 	echo "\n------ Publishing spec --------"