Commit 0af4d248 authored by ankraft's avatar ankraft
Browse files

Update

parent fa20f688
Loading
Loading
Loading
Loading
+21 −20
Original line number Diff line number Diff line
@@ -12,7 +12,7 @@ from __future__ import annotations
from typing import Callable, Optional

from dataclasses import dataclass
import base64, hashlib
import base64, hashlib, argparse
from enum import Enum, auto

from gridTableTools import generateHtmlTableWithSpans, setLoggers as setGridTableLoggers
@@ -553,45 +553,46 @@ def analyseMarkdown(filename:Optional[str]=None, inLines:Optional[list[str]]=Non


def main() -> None:
    """Hauptfunktion zur Verarbeitung von Markdown-Dateien über die Kommandozeile."""
    import argparse
    """Main function to process markdown files.
	"""
   
    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')
    parser = argparse.ArgumentParser(description='Handle markdown files for MkDocs processing.')
    parser.add_argument('input', help='Input markdown file to process')
    parser.add_argument('-v', '--verbose', action='store_true', help='Enable verbose output')
    parser.add_argument('-vv', '--very-verbose', action='store_true', help='Enable very verbose output')
    parser.add_argument('-i', '--ignore-title', nargs='+', default=[], help='List of titles to ignore in the document (case insensitive)')
    parser.add_argument('-s', '--split-level', type=int, default=1, help='Level at which to split the document into clauses (default: 1)')
    parser.add_argument('-f', '--ignore-first', action='store_true', help='Ignore all clauses until the first heading is found')
    
    args = parser.parse_args()
    
    # Verbositätsebenen setzen
    # Set the verbosity levels based on command line arguments
    global verbose, veryVerbose
    verbose = args.verbose
    veryVerbose = args.sehr_verbose
    veryVerbose = args.very_verbose
    
    # Markdown-Datei verarbeiten
    # Handle the input file
    doc = analyseMarkdown(args.eingabe)
    
    # Dokument teilen und verarbeiten
    # Split the document into clauses based on the specified level
    doc.splitMarkdownDocument(
        ignoreTitles=args.ignoriere_titel,
        splitLevel=args.teilungs_ebene,
        ignoreUntilFirstHeading=args.ignoriere_erste
        ignoreTitles=args.ignore_title,
        splitLevel=args.split_level,
        ignoreUntilFirstHeading=args.ignore_first
    )
    
    # Dokumentenelemente aktualisieren
    # Update links and footnotes
    doc.insertFootnotes()
    doc.updateLinks()
    doc.updateNotes()
    
    # Verarbeitetes Dokument ausgeben
    # Print the processed document
    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()