diff --git a/toMkdocs/gridTableFilter.py b/toMkdocs/gridTableFilter.py
index c630ae1c466941e93781a4bf5ef33c874c375600..027c69f8e2695740c14877d62ef757b2a474eea3 100644
--- a/toMkdocs/gridTableFilter.py
+++ b/toMkdocs/gridTableFilter.py
@@ -12,7 +12,6 @@
 """
 
 import argparse, sys
-from rich import print
 from markdownTools import analyseMarkdown, setLoggers
 
 def main() -> None:
diff --git a/toMkdocs/markdownTools.py b/toMkdocs/markdownTools.py
index 6c9dc412bf6b9b9f2df992fc2e6dce5f991a5400..67fafa5b0b6aa8a34082f7c207c5867c58b754db 100644
--- a/toMkdocs/markdownTools.py
+++ b/toMkdocs/markdownTools.py
@@ -214,6 +214,13 @@ class Footnote:
 		
 		self.line = line
 		""" The line of the footnote. """
+	
+	def __str__(self) -> str:
+		return self.line.text
+
+
+	def __repr__(self) -> str:
+		return self.__str__()
 
 class Document:
 	"""	Represents the document object. """	
@@ -386,7 +393,7 @@ class Document:
 
 	def __str__(self) -> str:
 		"""	Return the document as a string. """
-		return '\n'.join([ str(c) for c in self.clauses ])
+		return '\n'.join([ str(c) for c in self.clauses + self.footnotes ])
 	
 
 	def __repr__(self) -> str:
@@ -545,3 +552,47 @@ def analyseMarkdown(filename:Optional[str]=None, inLines:Optional[list[str]]=Non
 	return Document(outClauses, footnotes)
 
 
+def main() -> None:
+    """Hauptfunktion zur Verarbeitung von Markdown-Dateien über die Kommandozeile."""
+    import argparse
+    
+    parser = argparse.ArgumentParser(description='Markdown-Dateien verarbeiten, um Gittertabellen zu konvertieren und andere Formatierungen zu handhaben')
+    parser.add_argument('eingabe', help='Eingabe-Markdown-Datei')
+    parser.add_argument('-v', '--verbose', action='store_true', help='Ausführliche Ausgabe aktivieren')
+    parser.add_argument('-vv', '--sehr-verbose', action='store_true', help='Sehr ausführliche Ausgabe aktivieren')
+    parser.add_argument('-i', '--ignoriere-titel', nargs='+', default=[], help='Liste der zu ignorierenden Titel')
+    parser.add_argument('-s', '--teilungs-ebene', type=int, default=1, help='Ebene, auf der das Dokument geteilt werden soll (Standard: 1)')
+    parser.add_argument('-f', '--ignoriere-erste', action='store_true', help='Inhalt bis zur ersten Überschrift ignorieren')
+    
+    args = parser.parse_args()
+    
+    # Verbositätsebenen setzen
+    global verbose, veryVerbose
+    verbose = args.verbose
+    veryVerbose = args.sehr_verbose
+    
+    # Markdown-Datei verarbeiten
+    doc = analyseMarkdown(args.eingabe)
+    
+    # Dokument teilen und verarbeiten
+    doc.splitMarkdownDocument(
+        ignoreTitles=args.ignoriere_titel,
+        splitLevel=args.teilungs_ebene,
+        ignoreUntilFirstHeading=args.ignoriere_erste
+    )
+    
+    # Dokumentenelemente aktualisieren
+    doc.insertFootnotes()
+    doc.updateLinks()
+    doc.updateNotes()
+    
+    # Verarbeitetes Dokument ausgeben
+    for clause in doc.clauses:
+        print(f"\n{'#' * clause.level} {clause.title}")
+        for line in clause.lines:
+            print(line.text, end='')
+
+if __name__ == '__main__':
+    main()
+
+