v0.3.0
This commit is contained in:
parent
b4b06cd7e0
commit
415446e688
1
.gitignore
vendored
1
.gitignore
vendored
@ -5,6 +5,7 @@
|
|||||||
INHALT.md
|
INHALT.md
|
||||||
.gitkeep
|
.gitkeep
|
||||||
desktop.ini
|
desktop.ini
|
||||||
|
#NOTES.md
|
||||||
|
|
||||||
# Pandoc
|
# Pandoc
|
||||||
missfont.log
|
missfont.log
|
||||||
|
1
.vscode/cspell.json
vendored
1
.vscode/cspell.json
vendored
@ -43,6 +43,7 @@
|
|||||||
"realAscot",
|
"realAscot",
|
||||||
"Schottky",
|
"Schottky",
|
||||||
"Skotarczak",
|
"Skotarczak",
|
||||||
|
"texlive",
|
||||||
"tocgen"
|
"tocgen"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,14 @@
|
|||||||
# Changelog - Elektrotechnik Handbuch
|
# Changelog - Elektrotechnik Handbuch
|
||||||
|
|
||||||
|
- **2025-06-25**
|
||||||
|
- **Hinzugefügt:**
|
||||||
|
- [x] Variablen aus Makefile in config.mk ausgelagert
|
||||||
|
|
||||||
- **2025-05-19**
|
- **2025-05-19**
|
||||||
- **Hinzugefügt:**
|
- **Hinzugefügt:**
|
||||||
- basis Konfiguration
|
- [x] Basis Konfiguration
|
||||||
- **Geändert:**
|
- **Geändert:**
|
||||||
- [X] Verzeichnistiefe über Makefile nun einstellbar (TOCDEPTH)
|
- [X] Verzeichnistiefe über Makefile nun einstellbar (TOCDEPTH)
|
||||||
|
|
||||||
- **2025-05-18**
|
- **2025-05-18**
|
||||||
- initial commit
|
- initial commit
|
||||||
|
53
Makefile
53
Makefile
@ -1,46 +1,12 @@
|
|||||||
# Makefile für Markdown-eBook-Projekt Rust Handbuch mit Pandoc
|
# Makefile für Markdown-eBook-Projekt Rust Handbuch mit Pandoc
|
||||||
# (C) 2025 - Adam Skotarczak - 19/06/2025
|
# (C) 2025 - Adam Skotarczak - 19/06/2025
|
||||||
|
|
||||||
# === Allgemeine Konfiguration ===
|
# === load Configfile ===
|
||||||
|
include config.mk
|
||||||
|
|
||||||
# === Titel des eBooks ===
|
ifndef OUTPUT
|
||||||
TITLE := Vorlage_eBook
|
$(error Bitte config.mk definieren!)
|
||||||
|
endif
|
||||||
# === Verzeichnis mit Markdown-Dateien ===
|
|
||||||
MANUSCRIPT := manuscript
|
|
||||||
|
|
||||||
# === Ausgabeordner für Builds ===
|
|
||||||
OUTPUT := build
|
|
||||||
|
|
||||||
# === Metadaten für das eBook ===
|
|
||||||
METADATA := metadata/ebook.yaml
|
|
||||||
|
|
||||||
# === CSS-Datei für das eBook ===
|
|
||||||
CSS := styles/ebook.css
|
|
||||||
|
|
||||||
# === LaTeX-Vorlage für das eBook ===
|
|
||||||
TEX_EBOOK := styles/ebook-template.tex
|
|
||||||
|
|
||||||
# === LaTeX-Vorlage für den Druck ===
|
|
||||||
TEX_PRINT := styles/print-template.tex
|
|
||||||
|
|
||||||
# === Logo für das eBook ===
|
|
||||||
LOGO := media/logo/logo.png
|
|
||||||
|
|
||||||
# === Pfad zu Hilfswerkzeugen ===
|
|
||||||
TOOLPATH := tools
|
|
||||||
|
|
||||||
# === LaTeX Geometrie-Einstellungen (z.B. A5-Papier) ===
|
|
||||||
GEOMETRY := geometry:a4paper
|
|
||||||
|
|
||||||
# === Schriftart für LaTeX ===
|
|
||||||
FONT := Noto Sans CJK SC
|
|
||||||
|
|
||||||
# === Python Index für make toc ===
|
|
||||||
INDEXFILE := INHALT
|
|
||||||
|
|
||||||
# === Verzeichnistiefe im eBook ===
|
|
||||||
TOCDEPTH := 3
|
|
||||||
|
|
||||||
# === Automatische Konfiguration ===
|
# === Automatische Konfiguration ===
|
||||||
VERSION := $(shell cat VERSION)
|
VERSION := $(shell cat VERSION)
|
||||||
@ -60,13 +26,6 @@ endif
|
|||||||
MODE ?= prod
|
MODE ?= prod
|
||||||
|
|
||||||
MD_ALL = $(wildcard $(MANUSCRIPT)/*.md)
|
MD_ALL = $(wildcard $(MANUSCRIPT)/*.md)
|
||||||
|
|
||||||
# Dateien auslassen im MODE prod
|
|
||||||
EXCLUDE_prod := \
|
|
||||||
$(MANUSCRIPT)/00_deckblatt.md \
|
|
||||||
$(MANUSCRIPT)/00_Deckblatt.md \
|
|
||||||
$(MANUSCRIPT)/99_test.md
|
|
||||||
|
|
||||||
MD_FILES_prod := $(filter-out $(EXCLUDE_prod), $(MD_ALL))
|
MD_FILES_prod := $(filter-out $(EXCLUDE_prod), $(MD_ALL))
|
||||||
MD_FILES_dev = $(MD_ALL)
|
MD_FILES_dev = $(MD_ALL)
|
||||||
|
|
||||||
@ -205,7 +164,7 @@ toc:
|
|||||||
# === Bereinigen der Ausgaben ===
|
# === Bereinigen der Ausgaben ===
|
||||||
clean:
|
clean:
|
||||||
@rm -rf $(OUTPUT)/*
|
@rm -rf $(OUTPUT)/*
|
||||||
@echo "🧹 alle Builds unter $(OUTPUT)\ gelöscht."
|
@echo "🧹 alle Builds unter $(OUTPUT)/ gelöscht."
|
||||||
@rm -f $(INDEXFILE).md
|
@rm -f $(INDEXFILE).md
|
||||||
@echo "🧹 $(INDEXFILE).md gelöscht."
|
@echo "🧹 $(INDEXFILE).md gelöscht."
|
||||||
|
|
||||||
|
67
README.md
67
README.md
@ -16,6 +16,16 @@
|
|||||||
- [eBook (epub)](#ebook-epub)
|
- [eBook (epub)](#ebook-epub)
|
||||||
- [DOCX (Office/ Word)](#docx-office-word)
|
- [DOCX (Office/ Word)](#docx-office-word)
|
||||||
- [Build](#build)
|
- [Build](#build)
|
||||||
|
- [=== CSS-Datei für das eBook ===](#-css-datei-für-das-ebook-)
|
||||||
|
- [=== LaTeX-Vorlage für das eBook ===](#-latex-vorlage-für-das-ebook-)
|
||||||
|
- [=== LaTeX-Vorlage für den Druck ===](#-latex-vorlage-für-den-druck-)
|
||||||
|
- [=== Logo für das eBook ===](#-logo-für-das-ebook-)
|
||||||
|
- [=== Pfad zu Hilfswerkzeugen ===](#-pfad-zu-hilfswerkzeugen-)
|
||||||
|
- [=== LaTeX Geometrie-Einstellungen (z.B. A5-Papier) ===](#-latex-geometrie-einstellungen-zb-a5-papier-)
|
||||||
|
- [=== Schriftart für LaTeX ===](#-schriftart-für-latex-)
|
||||||
|
- [=== Python Index für make toc ===](#-python-index-für-make-toc-)
|
||||||
|
- [=== Verzeichnistiefe im eBook ===](#-verzeichnistiefe-im-ebook-)
|
||||||
|
- [](#)
|
||||||
- [Erklärung zum Makefile](#erklärung-zum-makefile)
|
- [Erklärung zum Makefile](#erklärung-zum-makefile)
|
||||||
- [Struktur beim schreiben des Buchs](#struktur-beim-schreiben-des-buchs)
|
- [Struktur beim schreiben des Buchs](#struktur-beim-schreiben-des-buchs)
|
||||||
- [Schreiben mit VS-Code](#schreiben-mit-vs-code)
|
- [Schreiben mit VS-Code](#schreiben-mit-vs-code)
|
||||||
@ -106,14 +116,14 @@ Falls der Build trotzdem scheitert oder du dir den Aufwand sparen möchtest, lad
|
|||||||
- Zusätzlich deutsche Sprache (falls babel fehlt):
|
- Zusätzlich deutsche Sprache (falls babel fehlt):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo apt install texlive-lang-german
|
sudo apt install Texlive-lang-german
|
||||||
```
|
```
|
||||||
|
|
||||||
Ich empfehle aber dringend `texlive-full` zu installieren da man erfahrungsgemäss am Anfang auf viele Fehler mit fehlenden Abhängigkeiten stößt wenn man Templates testet.
|
Ich empfehle aber dringend `texlive-full` zu installieren da man erfahrungsgemäss am Anfang auf viele Fehler mit fehlenden Abhängigkeiten stößt wenn man Templates testet.
|
||||||
|
|
||||||
- **✅ Make installieren:**
|
- **✅ Make installieren:**
|
||||||
|
|
||||||
Make oder besser die Anwendung `make` wird benötigt um die Erstellung der Ziele wie PDF zu automatisiern.
|
Make oder besser die Anwendung `make` wird benötigt um die Erstellung der Ziele wie PDF zu automatisieren.
|
||||||
Dafür liegt auch das vorbereitete Skript `Makefile` im Hauptverzeichnis. Die ist nur optional und man kann es selbstverständlich auch manuell durchführen.
|
Dafür liegt auch das vorbereitete Skript `Makefile` im Hauptverzeichnis. Die ist nur optional und man kann es selbstverständlich auch manuell durchführen.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
@ -145,7 +155,8 @@ sudo apt install fonts-symbola
|
|||||||
|
|
||||||
### Build
|
### Build
|
||||||
|
|
||||||
Schau mal ins [`Makefile`](./Makefile), dort findest Du einige Kandidaten um aus dem vorliegenden Markdown Manuskript eine entsprechende Version zu konvertieren. Es stehen zum aktuellen Zeitpunkt folgende zur Verfügung:
|
Schau mal ins [`Makefile`](./Makefile), dort findest Du einige Kandidaten, um aus dem vorliegenden Markdown Manuskript eine entsprechende Version zu konvertieren.
|
||||||
|
Es stehen zum aktuellen Zeitpunkt folgende zur Verfügung:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
make pdf
|
make pdf
|
||||||
@ -153,20 +164,44 @@ Schau mal ins [`Makefile`](./Makefile), dort findest Du einige Kandidaten um aus
|
|||||||
make docx
|
make docx
|
||||||
```
|
```
|
||||||
|
|
||||||
Du musst im Kopfbereich der Datei zwingend ein paar Einstellungen vornehmen:
|
Du musst in der config.mk zwingend ein paar Einstellungen vornehmen:
|
||||||
|
|
||||||
|
: Table with multiline cells
|
||||||
|
:--------------------------:
|
||||||
|
| **Variable** | **Funktion** |
|
||||||
|
|--------------------------------------------|-------------------------------------------|
|
||||||
|
| `TITLE := Vorlage_eBook` | Titel des eBooks |
|
||||||
|
| `MANUSCRIPT := manuscript` | Verzeichnis mit den Markdown-Dateien |
|
||||||
|
| `OUTPUT := build` | Ausgabeordner für Builds |
|
||||||
|
| `METADATA := metadata/ebook.yaml` | Metadaten für das eBook |
|
||||||
|
| `EXCLUDE_prod := \`
|
||||||
|
`$(MANUSCRIPT)/00_deckblatt.md \` | Dateien auslassen im MODE prod |
|
||||||
|
|
||||||
|
|
||||||
|
$(MANUSCRIPT)/00_Deckblatt.md \
|
||||||
|
$(MANUSCRIPT)/99_test.md
|
||||||
|
|
||||||
|
|
||||||
|
# === CSS-Datei für das eBook ===
|
||||||
|
CSS := styles/ebook.css
|
||||||
|
# === LaTeX-Vorlage für das eBook ===
|
||||||
|
TEX_EBOOK := styles/ebook-template.tex
|
||||||
|
# === LaTeX-Vorlage für den Druck ===
|
||||||
|
TEX_PRINT := styles/print-template.tex
|
||||||
|
# === Logo für das eBook ===
|
||||||
|
LOGO := media/logo/logo.png
|
||||||
|
# === Pfad zu Hilfswerkzeugen ===
|
||||||
|
TOOLPATH := tools
|
||||||
|
# === LaTeX Geometrie-Einstellungen (z.B. A5-Papier) ===
|
||||||
|
GEOMETRY := geometry:a4paper
|
||||||
|
# === Schriftart für LaTeX ===
|
||||||
|
FONT := Noto Sans CJK SC
|
||||||
|
# === Python Index für make toc ===
|
||||||
|
INDEXFILE := INHALT
|
||||||
|
# === Verzeichnistiefe im eBook ===
|
||||||
|
TOCDEPTH := 3
|
||||||
|
#
|
||||||
|
|
||||||
| Parameter | Beschreibung |
|
|
||||||
|-------------------------------------------|-------------------------------------------------------------|
|
|
||||||
| `# === Allgemeine Konfiguration ===` | |
|
|
||||||
| `TITLE := rust-tutorial` | Dateiname ohne Erweiterung für die Ausgabe nach dem Build |
|
|
||||||
| `MANUSCRIPT := manuscript` | |
|
|
||||||
| `MANUSCRIPT := manuscript` | |
|
|
||||||
| `OUTPUT := build` | |
|
|
||||||
| `METADATA := metadata/ebook.yaml` | |
|
|
||||||
| `CSS := styles/ebook.css` | |
|
|
||||||
| `TEX_EBOOK := styles/ebook-template.tex` | |
|
|
||||||
| `TEX_PRINT := styles/print-template.tex` | |
|
|
||||||
| `LOGO := media/logo/logo.png` | Logo für den epub Build |
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
33
config.mk
Normal file
33
config.mk
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
# === Allgemeine Konfiguration ===
|
||||||
|
|
||||||
|
# === Titel des eBooks ===
|
||||||
|
TITLE := Vorlage_eBook
|
||||||
|
# === Verzeichnis mit Markdown-Dateien ===
|
||||||
|
MANUSCRIPT := manuscript
|
||||||
|
# === Ausgabeordner für Builds ===
|
||||||
|
OUTPUT := build
|
||||||
|
# === Metadaten für das eBook ===
|
||||||
|
METADATA := metadata/ebook.yaml
|
||||||
|
# === CSS-Datei für das eBook ===
|
||||||
|
CSS := styles/ebook.css
|
||||||
|
# === LaTeX-Vorlage für das eBook ===
|
||||||
|
TEX_EBOOK := styles/ebook-template.tex
|
||||||
|
# === LaTeX-Vorlage für den Druck ===
|
||||||
|
TEX_PRINT := styles/print-template.tex
|
||||||
|
# === Logo für das eBook ===
|
||||||
|
LOGO := media/logo/logo.png
|
||||||
|
# === Pfad zu Hilfswerkzeugen ===
|
||||||
|
TOOLPATH := tools
|
||||||
|
# === LaTeX Geometrie-Einstellungen (z.B. A5-Papier) ===
|
||||||
|
GEOMETRY := geometry:a4paper
|
||||||
|
# === Schriftart für LaTeX ===
|
||||||
|
FONT := Noto Sans CJK SC
|
||||||
|
# === Python Index für make toc ===
|
||||||
|
INDEXFILE := INHALT
|
||||||
|
# === Verzeichnistiefe im eBook ===
|
||||||
|
TOCDEPTH := 3
|
||||||
|
# Dateien auslassen im MODE prod
|
||||||
|
EXCLUDE_prod := \
|
||||||
|
$(MANUSCRIPT)/00_deckblatt.md \
|
||||||
|
$(MANUSCRIPT)/00_Deckblatt.md \
|
||||||
|
$(MANUSCRIPT)/99_test.md
|
@ -1,6 +0,0 @@
|
|||||||
[.ShellClassInfo]
|
|
||||||
IconResource=.\media\favicon.ico,0
|
|
||||||
[ViewState]
|
|
||||||
Mode=
|
|
||||||
Vid=
|
|
||||||
FolderType=Documents
|
|
160
gitcopy.bat
160
gitcopy.bat
@ -1,160 +0,0 @@
|
|||||||
@echo off
|
|
||||||
setlocal enabledelayedexpansion
|
|
||||||
chcp 65001 >nul
|
|
||||||
|
|
||||||
REM Skript, um aus einem Projekt mit git-repo, ein portables .zip zu erstellen
|
|
||||||
REM
|
|
||||||
REM (C) 2025 MIT Adam Skotarczak
|
|
||||||
REM
|
|
||||||
REM Version: v1.1.2
|
|
||||||
REM Github: https://github.com/realAscot/gitcopy
|
|
||||||
REM -------------------------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
rem --- Git-Verfügbarkeit prüfen ---
|
|
||||||
where git >nul 2>nul
|
|
||||||
if errorlevel 1 (
|
|
||||||
echo.
|
|
||||||
echo [⚠️] Git ist nicht installiert oder nicht im PATH.
|
|
||||||
echo [📦] Bitte installiere Git von https://git-scm.com/download/win
|
|
||||||
call :show_help
|
|
||||||
echo.
|
|
||||||
exit /b 1
|
|
||||||
)
|
|
||||||
|
|
||||||
rem --- Git-Version anzeigen ---
|
|
||||||
for /f "tokens=*" %%i in ('git --version') do set "GIT_VERSION=%%i"
|
|
||||||
|
|
||||||
if defined GIT_VERSION (
|
|
||||||
echo.
|
|
||||||
echo [✅] Gefundene Git-Version: %GIT_VERSION%
|
|
||||||
) else (
|
|
||||||
echo([⚠️] Konnte Git-Version nicht ermitteln.
|
|
||||||
)
|
|
||||||
|
|
||||||
rem Prüfe auf optionalen Parameter "--debug"
|
|
||||||
set DEBUG=0
|
|
||||||
|
|
||||||
if NOT "%~1"=="" (
|
|
||||||
if "%~1"=="--debug" (
|
|
||||||
set DEBUG=1
|
|
||||||
echo [⚠️] Debug-Modus aktiv: Ignoriere offene Commits.
|
|
||||||
exit /b 0
|
|
||||||
) else if "%~1"=="-d" (
|
|
||||||
set DEBUG=1
|
|
||||||
echo [⚠️] Debug-Modus aktiv: Ignoriere offene Commits.
|
|
||||||
exit /b 0
|
|
||||||
) else if "%~1"=="-h" (
|
|
||||||
call :show_help
|
|
||||||
exit /b 0
|
|
||||||
) else if "%~1"=="--help" (
|
|
||||||
call :show_help
|
|
||||||
exit /b 0
|
|
||||||
) else (
|
|
||||||
rem Parameter vorhanden aber nicht erkannt.
|
|
||||||
call :kein_Parameter "%~1"
|
|
||||||
exit /b 1
|
|
||||||
)
|
|
||||||
) else (
|
|
||||||
call :go "%~1"
|
|
||||||
)
|
|
||||||
|
|
||||||
exit /b 0
|
|
||||||
|
|
||||||
:go
|
|
||||||
|
|
||||||
call :generate_timestamp
|
|
||||||
set ZIP_NAME=projektarchiv-%TIMESTAMP%.zip
|
|
||||||
|
|
||||||
rem -------------------------------------------------------------------
|
|
||||||
|
|
||||||
pushd %~dp0
|
|
||||||
|
|
||||||
if %DEBUG%==0 (
|
|
||||||
echo [🔍] Prüfe auf uncommitted oder ungetrackte Änderungen...
|
|
||||||
set "hasChanges="
|
|
||||||
for /f "delims=" %%i in ('git status --porcelain') do (
|
|
||||||
set "hasChanges=1"
|
|
||||||
goto :has_changes
|
|
||||||
)
|
|
||||||
echo [✅] Arbeitsverzeichnis ist sauber.
|
|
||||||
) else (
|
|
||||||
echo [⚠️] Prüfschritt übersprungen.
|
|
||||||
)
|
|
||||||
|
|
||||||
goto :create_zip
|
|
||||||
|
|
||||||
:has_changes
|
|
||||||
echo.
|
|
||||||
echo [⚠️] Es sind uncommitted oder ungetrackte Änderungen vorhanden:
|
|
||||||
echo.
|
|
||||||
git status --short
|
|
||||||
echo.
|
|
||||||
echo [❌] Bitte committe oder stash diese Änderungen, bevor du ein ZIP erstellst.
|
|
||||||
echo [⚠️] versuche --debug um diese Prüfung zu umgehen aber dann wird das Archiv unvollständig.
|
|
||||||
echo.
|
|
||||||
endlocal
|
|
||||||
pause
|
|
||||||
exit /b 1
|
|
||||||
|
|
||||||
:create_zip
|
|
||||||
echo [💾] Erstelle ZIP-Archiv von HEAD...
|
|
||||||
git archive --format=zip --output="%ZIP_NAME%" HEAD
|
|
||||||
if errorlevel 1 (
|
|
||||||
echo [⚠️] Fehler beim Erstellen des Archivs.
|
|
||||||
pause
|
|
||||||
exit /b 1
|
|
||||||
)
|
|
||||||
echo [✅] Archiv erfolgreich erstellt: %CD%\%ZIP_NAME%
|
|
||||||
popd
|
|
||||||
endlocal
|
|
||||||
pause
|
|
||||||
exit /b 0
|
|
||||||
|
|
||||||
:generate_timestamp
|
|
||||||
rem Erzeugt einen Zeitstempel TTMMJJHHMM sicher und universell
|
|
||||||
for /f "tokens=1-4 delims=. " %%d in ('echo %DATE%') do (
|
|
||||||
set "TAG=0%%d"
|
|
||||||
set "MONAT=0%%e"
|
|
||||||
set "JAHR=%%f"
|
|
||||||
)
|
|
||||||
|
|
||||||
for /f "tokens=1-2 delims=: " %%g in ('echo %TIME%') do (
|
|
||||||
set "STUNDE=0%%g"
|
|
||||||
set "MINUTE=0%%h"
|
|
||||||
)
|
|
||||||
|
|
||||||
set "TAG=!TAG:~-2!"
|
|
||||||
set "MONAT=!MONAT:~-2!"
|
|
||||||
set "JAHR=!JAHR:~-2!"
|
|
||||||
set "STUNDE=!STUNDE:~-2!"
|
|
||||||
set "MINUTE=!MINUTE:~-2!"
|
|
||||||
|
|
||||||
set "TIMESTAMP=!TAG!!MONAT!!JAHR!!STUNDE!!MINUTE!"
|
|
||||||
goto :eof
|
|
||||||
|
|
||||||
:kein_Parameter
|
|
||||||
echo.
|
|
||||||
echo [⚠️] Unbekannter Parameter: "%~1" abbruch ...
|
|
||||||
echo.
|
|
||||||
call :show_help
|
|
||||||
exit /b 1
|
|
||||||
|
|
||||||
:show_help
|
|
||||||
echo.
|
|
||||||
echo ℹ️ GitCopy – Hilfe
|
|
||||||
echo =====================
|
|
||||||
echo Erstellt ein ZIP-Archiv vom aktuellen HEAD-Stand des Git-Repositories.
|
|
||||||
echo.
|
|
||||||
echo Verwendung:
|
|
||||||
echo gitcopy.bat [Option]
|
|
||||||
echo.
|
|
||||||
echo Optionen:
|
|
||||||
echo --debug / -d Überspringt die Prüfung auf uncommitted oder ungetrackte Änderungen.
|
|
||||||
echo -h / --help Zeigt diese Hilfe an.
|
|
||||||
echo.
|
|
||||||
endlocal
|
|
||||||
pause
|
|
||||||
goto :eof
|
|
||||||
|
|
||||||
endlocal
|
|
Loading…
x
Reference in New Issue
Block a user