Skip to content

Commit

Permalink
Add processor in shellskript
Browse files Browse the repository at this point in the history
  • Loading branch information
schletz committed Nov 29, 2024
1 parent 1970ef9 commit 1d4c426
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 4 deletions.
21 changes: 17 additions & 4 deletions 07 Asciidoctor/03_preprocessor.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -109,14 +109,25 @@ Ein Dictionary, in dem alle globalen Variablen (z. B. `:author: value`) abrufbar

=== Aufruf

IMPORTANT: Um den Preprocessor zu verwenden, benötigst du die .NET 8 SDK.
Du kannst dies mit dem Befehl `dotnet --list-sdks` überprüfen.

Erstelle in einem Verzeichnis eine AsciiDoc Datei.
Kopiere dann das Verzeichnis _Preprocessor_ in dieses Verzeichnis.
Du kannst das Verzeichnis _Preprocessor_ auch in ein globales Verzeichnis kopieren.
Mit dem _convert_adoc.cmd_ Skript kannst du den Parameter _--processor_ übergeben, der den Pfad zur Preprocessor Anwendung angibt.

.Windows
----
convert_adoc.cmd my_file.adoc my_file.pdf --processor Preprocessor
----

.macOS
----
./convert_adoc.sh my_file.adoc my_file.pdf --processor Preprocessor
----


In _my_file.processed.adoc_ findest du die Ausgabe des Preprocessors.
Diese Datei wird dann den nachfolgenden Befehlen übergeben.

Expand Down Expand Up @@ -177,7 +188,7 @@ resolve_links=true::
Mit dieser Option fordert das C# Programm über die Klasse `HttpClient` die Inhalte an, löscht die HTML Syntaxelemente und ersetzt den Link durch den Text, bevor er an ChatGPT gesendet wird. Dies funktioniert nur für Links, die Textdokumente zurückgeben.

NOTE: Schreibe die Links in eine eigene Zeile und ohne Punkt (.) am Ende.
Alles von _http(s)?:// bis zur nächsten Leerstelle wird als Link interpretiert.
Alles von `http(s)?://` bis zur nächsten Leerstelle wird als Link interpretiert.

save_message=true::
Die API ist _stateless_, das bedeutet dass der Prompt nicht das Ergebnis der vorigen Prompts zur Verarbeitung einschließt.
Expand Down Expand Up @@ -205,7 +216,9 @@ Falls du Prompts mit der Option _save_message_ änderst, oder nicht erwartete An

==== Beispiele

Um die Verwendung zu demonstrieren, gibt es folgende Beispiele:
Um die Verwendung zu demonstrieren, gibt es folgende Beispiele.

NOTE: Achte darauf, dass sich die Datei _chatgpt_key.txt_ im Verzeichnis des AsciiDoc Dokumentes befindet.

[link:preprocessor_simple_test.adoc[preprocessor_simple_test.adoc]]::
Ruft das vordefinierte Makro example_macro im Preprocessor Programm auf.
Expand All @@ -226,7 +239,7 @@ Aufruf:
convert_adoc.cmd preprocessor_test.adoc preprocessor_test.pdf --processor Preprocessor
----
+
Die Zwischendatei ist in preprocessor_test.processed.adoc_ zu finden.
Die Zwischendatei ist in _preprocessor_test.processed.adoc_ zu finden.

[link:kommentar.adoc[kommentar.adoc]]::
Verwendet das ChatGPT Makro, um einen Kommentar auf Basis der URL eines Artikels zu verfassen.
Expand All @@ -237,4 +250,4 @@ Aufruf:
convert_adoc.cmd kommentar.adoc kommentar.pdf --processor Preprocessor
----
+
Die Zwischendatei ist in kommentar.processed.adoc_ zu finden.
Die Zwischendatei ist in _kommentar.processed.adoc_ zu finden.
Binary file modified 07 Asciidoctor/03_preprocessor.pdf
Binary file not shown.
1 change: 1 addition & 0 deletions 07 Asciidoctor/convert_adoc.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ if exist "%BASENAME%.yml" (
REM Wurde ein Processor angegeben, rufen wir ihn auf
if not "%PROCESSOR_DIR%"=="" (
echo [INFO] Führe Processor aus...
dotnet restore "%PROCESSOR_DIR%" --no-cache
dotnet run --project "%PROCESSOR_DIR%" -- "%INPUT_FILE%" > "%BASENAME%.processed.adoc"
if %ERRORLEVEL% neq 0 (
echo [ERROR] Fehler beim Ausführen des Processors.
Expand Down
20 changes: 20 additions & 0 deletions 07 Asciidoctor/convert_adoc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,15 @@ if [ -z "$2" ]; then
exit 1
fi

if [ "$3" == "--processor" ]; then
if [ ! -d "$4" ]; then
echo "[ERROR] Das Verzeichnis $4 existiert nicht."
exit 1
else
PROCESSOR_DIR="$4"
fi
fi

# Parameter setzen
INPUT_FILE="$1"
OUTPUT_FILE="$2"
Expand All @@ -57,6 +66,17 @@ else
THEME_OPTION=""
fi

# Wurde ein Processor angegeben, rufen wir ihn auf
if [ -n "$PROCESSOR_DIR" ]; then
echo "[INFO] Führe Processor aus..."
dotnet restore "$PROCESSOR_DIR" --no-cache
if ! dotnet run --project "$PROCESSOR_DIR" -- "$INPUT_FILE" > "${BASENAME}.processed.adoc"; then
echo "[ERROR] Fehler beim Ausführen des Processors."
exit 1
fi
INPUT_FILE="${BASENAME}.processed.adoc"
fi

# Entscheidung basierend auf der Erweiterung
case "$EXT" in
pdf)
Expand Down

0 comments on commit 1d4c426

Please sign in to comment.