diff --git a/examples/generate_example_docs.py b/examples/generate_example_docs.py
new file mode 100755
index 0000000000000000000000000000000000000000..61e2bd414c76067d7391b3ebae0771fcdb482b5b
--- /dev/null
+++ b/examples/generate_example_docs.py
@@ -0,0 +1,38 @@
+#!/usr/bin/env python3
+import os
+import argparse
+import subprocess
+
+parser = argparse.ArgumentParser()
+parser.add_argument("-d", "--directory", help="The folder to look for examples", default=".")
+parser.add_argument("-m", "--markdowngenerator", help="The markdown generator script taking a list of files", default="../bin/doc/cpp_to_md.sh")
+args = vars(parser.parse_args())
+
+def convertToMarkdownAndMerge(dir, includeList):
+    script = os.path.join(os.path.abspath(args["markdowngenerator"]))
+    with open(os.path.join(dir, "README.md"), "w") as readme:
+        for include in includeList:
+            if os.path.splitext(include)[1] == ".md":
+                with open(include, "r") as markdown:
+                    readme.write(markdown.read())
+            else:
+                readme.write("\n\n## The file `{}`\n\n".format(os.path.split(include)[1]))
+                markdown = subprocess.check_output(["bash", script, include], encoding="utf-8")
+                readme.write(markdown + "\n")
+
+def generateReadme(dir):
+    includeList = None
+    try:
+        configname = os.path.join(dir, ".doc_config")
+        with open(configname, 'r') as config:
+            includeList = [os.path.join(dir, include) for include in config.read().splitlines()]
+    except FileNotFoundError:
+        print("Error: The example directory {} does not contain a .doc_config file! Could not generate README.md!".format(dir))
+        raise
+    if includeList is not None:
+        convertToMarkdownAndMerge(dir, includeList)
+
+for path in os.listdir(args["directory"]):
+    abspath = os.path.join(os.path.abspath(args["directory"]), path)
+    if os.path.isdir(abspath):
+        generateReadme(abspath)