Skip to content

Commit

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

Erstelle in einem Verzeichnis eine AsciiDoc Datei.
Kopiere dann das Verzeichnis _Preprocessor_ in dieses Verzeichnis.
In der Konsole kannst du dann mit 2 Varianten arbeiten:
Mit dem _convert_adoc.cmd_ Skript kannst du den Parameter _--processor_ übergeben, der den Pfad zur Preprocessor Anwendung angibt.

.Schreiben der Zwischendatei
----
dotnet run --project Preprocessor my_file.adoc > my_file_processed.adoc
convert_adoc.cmd my_file_processed.adoc my_file_processed.pdf
----

Diese Variante hat den Vorteil, dass du die erzeugte Datei _my_file_processed.adoc_ kontrollieren und ggf. händisch anpassen kannst.

.Direkte Verarbeitung über die Pipe

Möchtest du keine Zwischendatei anlegen, kann auch über die Pipe gearbeitet werden. Das Symbol `-` bedeutet, dass _convert_adoc.cmd_ die Daten von stdin liest.

[source]
----
dotnet run --project Preprocessor -- my_file.adoc | convert_adoc.cmd - my_file_processed.pdf
convert_adoc.cmd 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.

=== Das Makro `chatgpt_prompt`

Expand Down Expand Up @@ -223,26 +212,29 @@ Ruft das vordefinierte Makro example_macro im Preprocessor Programm auf.
Aufruf:
+
----
dotnet run --project Preprocessor -- preprocessor_simple_test.adoc | convert_adoc.cmd - preprocessor_simple_test.pdf
convert_adoc.cmd preprocessor_simple_test.adoc preprocessor_simple_test.pdf --processor Preprocessor
----
+
Die Zwischendatei ist in _preprocessor_simple_test.processed.adoc_ zu finden.

[link:preprocessor_test.adoc[preprocessor_test.adoc]]::
Verwendet das ChatGPT Makro, um eine Datenbank Aufgabenstellung zu bearbeiten.
API Key erforderlich!
Aufruf:
+
----
dotnet run --project Preprocessor -- preprocessor_test.adoc | convert_adoc.cmd - preprocessor_test.pdf
convert_adoc.cmd preprocessor_test.adoc preprocessor_test.pdf --processor Preprocessor
----
+
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.
API Key erforderlich!
Aufruf:
+
----
dotnet run --project Preprocessor -- kommentar.adoc | convert_adoc.cmd - kommentar.pdf
convert_adoc.cmd kommentar.adoc kommentar.pdf --processor Preprocessor
----

TIP: Du kannst statt der Pipe auch die Ausgabe von `dotnet run` in eine Datei umleiten.
Dann kannst du das Ergebnis des Preprocessors als AsciiDoc Dokument betrachten und ggf. nachbearbeiten.
+
Die Zwischendatei ist in kommentar.processed.adoc_ zu finden.
Binary file modified 07 Asciidoctor/03_preprocessor.pdf
Binary file not shown.
19 changes: 19 additions & 0 deletions 07 Asciidoctor/convert_adoc.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,14 @@ if "%~2"=="" (
echo Nutzung: convert_adoc.cmd "eingabedatei.adoc" "ausgabedatei.[pdf|docx|md|html]"
exit /b 1
)
if "%~3"=="--processor" (
if not exist "%~4" (
echo [ERROR] Das Verzeichnis %~4 existiert nicht.
exit /b 1
) else (
set PROCESSOR_DIR=%~4
)
)

REM Parameter setzen
set INPUT_FILE=%~1
Expand All @@ -64,6 +72,17 @@ if exist "%BASENAME%.yml" (
set THEME_OPTION=
)

REM Wurde ein Processor angegeben, rufen wir ihn auf
if not "%PROCESSOR_DIR%"=="" (
echo [INFO] Führe Processor aus...
dotnet run --project "%PROCESSOR_DIR%" -- "%INPUT_FILE%" > "%BASENAME%.processed.adoc"
if %ERRORLEVEL% neq 0 (
echo [ERROR] Fehler beim Ausführen des Processors.
exit /b 1
)
set INPUT_FILE=%BASENAME%.processed.adoc
)

REM Entscheidung basierend auf der Erweiterung
if /i "%EXT%"=="pdf" (
echo [INFO] Konvertiere "%INPUT_FILE%" nach PDF...
Expand Down

0 comments on commit 1970ef9

Please sign in to comment.