Refactor PDF generation workflow, integrate YAML-based event config, and simplify Makefile scripts.

- Replace `generate-personalized` with unified `generate` target in Makefile, supporting event config integration.
- Add YAML parsing to `generate_cards.py` for event-level placeholders and back side generation.
- Update templates to include `EVENT_*` placeholders and dynamic content rendering.
- Simplify `build` and `build-personalized` targets; consolidate redundant logic.
- Enhance `make help` documentation for updated workflow.
- Adjust LaTeX formatting for back side templates, removing hardcoded spacing.
This commit is contained in:
Peter Adam
2026-02-28 10:43:57 +01:00
parent f59c52551b
commit 9c4c7c6ccb
4 changed files with 156 additions and 143 deletions

View File

@@ -12,15 +12,6 @@
\setlength{\tabcolsep}{3pt}
\pagestyle{empty}
% A4 landscape height: 21cm
% Half height: 10.5cm from top of page
% Top margin: 0.8cm
% Row 4 should start at: 10.5 - 0.8 = 9.7cm from start of content
%
% Front side: each card is 8.5cm tall
% So rows 1-3 should be: 8.5cm total (2.833cm each)
% Gap after row 3: 9.7 - 8.5 = 1.2cm
\newcommand{\rowheight}{2.833cm}
\begin{document}
@@ -29,91 +20,79 @@
\noindent
\begin{tabular}{|p{6.6cm}|p{6.6cm}|p{6.6cm}|p{6.6cm}|}
\hline
% Row 1 (Upper card) - height 2.833cm
% Row 1
\parbox[c][\rowheight][t]{6.5cm}{%
\vspace{2mm}
\textbf{Nr. 1:} Km 0 - Unisport\\
\textbf{Nr. 1:} Km 0 -- Unisport\\
Nachtigallenweg 86, Bonn\\
\\
\textbf{Kontrollzeit}\\
von: 7:30\\
bis: 8:30
}
bis: 8:30}
&
\parbox[c][\rowheight][c]{6.5cm}{%
% Empty for stamps
\parbox[c][\rowheight][t]{6.5cm}{%
}
&
\parbox[c][\rowheight][t]{6.5cm}{%
\vspace{2mm}
\textbf{Nr. 4:} Km 165 Mahlberg Ecke K50,\\
\textbf{Nr. 4:} Km 165 -- Mahlberg Ecke K50,\\
Breitestraße\\
\textbf{Kontrollzeit}\\
von: 13:21\\
bis: 19:30
}
bis: 19:30}
&
\parbox[c][\rowheight][t]{6.5cm}{%
\vspace{2mm}
\textbf{Kontrollfrage:}\\
Wann wurde das Kriegerdenkmal\\
eingerichtet?
}
eingerichtet?}
\\
\hline
% Row 2 (Upper card) - height 2.833cm
% Row 2
\parbox[c][\rowheight][t]{6.5cm}{%
\vspace{2mm}
\textbf{Nr. 2:} Km 57 -- Nationalpark-Tor" im\\
\textbf{Nr. 2:} Km 57 -- ,,Nationalpark-Tor`` im\\
alten Bahnhofsgebäude, Heimbach\\
\\
\textbf{Kontrollzeit}\\
von: 9:11\\
bis: 12:21
}
bis: 12:21}
&
\parbox[c][\rowheight][c]{6.5cm}{%
% Empty for stamps
\parbox[c][\rowheight][t]{6.5cm}{%
}
&
\parbox[c][\rowheight][t]{6.5cm}{%
\vspace{2mm}
\textbf{Nr. 5:} Km 205 - Unisport\\
\textbf{Nr. 5:} Km 205 -- Unisport\\
Nachtigallenweg 86, Bonn\\
\\
\textbf{Kontrollzeit}\\
von: 13:23\\
bis: 21:00
}
bis: 21:00}
&
\parbox[c][\rowheight][c]{6.5cm}{%
% Empty
\parbox[c][\rowheight][t]{6.5cm}{%
}
\\
\hline
% Row 3 (Upper card) - height 2.833cm
% Row 3
\parbox[c][\rowheight][t]{6.5cm}{%
\vspace{2mm}
\textbf{Nr. 3:} Km 100 - Friterie Au Petit\\
Creux" oder Total-Tankstelle, Ecke Rue\\
\textbf{Nr. 3:} Km 100 -- Friterie ,,Au Petit\\
Creux`` oder Total-Tankstelle, Ecke Rue\\
de Botrange/Rue de Charmilles, Waimes\\
\textbf{Kontrollzeit}\\
von: 11:26\\
bis: 15:10
bis: 15:10}
&
\parbox[c][\rowheight][t]{6.5cm}{%
}
&
\parbox[c][\rowheight][c]{6.5cm}{%
% Empty for stamps
\parbox[c][\rowheight][t]{6.5cm}{%
}
&
\parbox[c][\rowheight][c]{6.5cm}{%
% Empty
}
&
\parbox[c][\rowheight][c]{6.5cm}{%
% Empty
\parbox[c][\rowheight][t]{6.5cm}{%
}
\\
\hline
@@ -121,98 +100,86 @@ bis: 15:10
\vspace{1.8cm}
% Lower card table (rows 4-6)
% Lower card table (rows 1-3, identical)
\noindent
\begin{tabular}{|p{6.6cm}|p{6.6cm}|p{6.6cm}|p{6.6cm}|}
\hline
% Row 1 (Lower card)
% Row 1
\parbox[c][\rowheight][t]{6.5cm}{%
\vspace{2mm}
\textbf{Nr. 1:} Km 0 - Unisport\\
\textbf{Nr. 1:} Km 0 -- Unisport\\
Nachtigallenweg 86, Bonn\\
\\
\textbf{Kontrollzeit}\\
von: 7:30\\
bis: 8:30
}
bis: 8:30}
&
\parbox[c][\rowheight][c]{6.5cm}{%
% Empty for stamps
\parbox[c][\rowheight][t]{6.5cm}{%
}
&
\parbox[c][\rowheight][t]{6.5cm}{%
\vspace{2mm}
\textbf{Nr. 4:} Km 165 Mahlberg Ecke K50,\\
\textbf{Nr. 4:} Km 165 -- Mahlberg Ecke K50,\\
Breitestraße\\
\textbf{Kontrollzeit}\\
von: 13:21\\
bis: 19:30
}
bis: 19:30}
&
\parbox[c][\rowheight][t]{6.5cm}{%
\vspace{2mm}
\textbf{Kontrollfrage:}\\
Wann wurde das Kriegerdenkmal\\
eingerichtet?
}
eingerichtet?}
\\
\hline
% Row 2 (Lower card) - height 2.833cm
% Row 2
\parbox[c][\rowheight][t]{6.5cm}{%
\vspace{2mm}
\textbf{Nr. 2:} Km 57 -- Nationalpark-Tor" im\\
\textbf{Nr. 2:} Km 57 -- ,,Nationalpark-Tor`` im\\
alten Bahnhofsgebäude, Heimbach\\
\\
\textbf{Kontrollzeit}\\
von: 9:11\\
bis: 12:21
}
bis: 12:21}
&
\parbox[c][\rowheight][c]{6.5cm}{%
% Empty for stamps
\parbox[c][\rowheight][t]{6.5cm}{%
}
&
\parbox[c][\rowheight][t]{6.5cm}{%
\vspace{2mm}
\textbf{Nr. 5:} Km 214 - Unisport\\
\textbf{Nr. 5:} Km 205 -- Unisport\\
Nachtigallenweg 86, Bonn\\
\\
\textbf{Kontrollzeit}\\
von: 13:23\\
bis: 21:00
}
bis: 21:00}
&
\parbox[c][\rowheight][c]{6.5cm}{%
% Empty
\parbox[c][\rowheight][t]{6.5cm}{%
}
\\
\hline
% Row 3 (Lower card) - height 2.833cm
% Row 3
\parbox[c][\rowheight][t]{6.5cm}{%
\vspace{2mm}
\textbf{Nr. 3:} Km 100 - Friterie Au Petit\\
Creux" oder Total-Tankstelle, Ecke Rue\\
\textbf{Nr. 3:} Km 100 -- Friterie ,,Au Petit\\
Creux`` oder Total-Tankstelle, Ecke Rue\\
de Botrange/Rue de Charmilles, Waimes\\
\textbf{Kontrollzeit}\\
von: 11:26\\
bis: 15:10
bis: 15:10}
&
\parbox[c][\rowheight][t]{6.5cm}{%
}
&
\parbox[c][\rowheight][c]{6.5cm}{%
% Empty for stamps
\parbox[c][\rowheight][t]{6.5cm}{%
}
&
\parbox[c][\rowheight][c]{6.5cm}{%
% Empty
}
&
\parbox[c][\rowheight][c]{6.5cm}{%
% Empty
\parbox[c][\rowheight][t]{6.5cm}{%
}
\\
\hline
\end{tabular}
\end{document}
\end{document}