From 9b42f824f9592b05f93e4b80650c13a1622f9834 Mon Sep 17 00:00:00 2001 From: Peter Adam Date: Sat, 28 Feb 2026 11:15:07 +0100 Subject: [PATCH] Remove static tex files, simplify Dockerfile and build workflow - Remove brevetkarte.tex (unused static demo, superseded by template) - Dockerfile: remove unnecessary COPY, workspace is volume-mounted at runtime - Makefile: remove build-front, default target is now build-personalized - README: remove references to removed files and targets Co-Authored-By: Claude Sonnet 4.6 --- Dockerfile | 10 +--- Makefile | 31 +++-------- README.md | 6 +-- brevetkarte.tex | 139 ------------------------------------------------ 4 files changed, 10 insertions(+), 176 deletions(-) delete mode 100644 brevetkarte.tex diff --git a/Dockerfile b/Dockerfile index 8bc2bc9..b06d836 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,12 +7,4 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ make \ && rm -rf /var/lib/apt/lists/* -# Set working directory -WORKDIR /workspace - -# Copy project files -COPY brevetkarte.tex . -COPY cyclist-logo.png . - -# Default command -CMD ["pdflatex", "-interaction=nonstopmode", "brevetkarte.tex"] +WORKDIR /workspace \ No newline at end of file diff --git a/Makefile b/Makefile index 1de6b78..bbc763b 100644 --- a/Makefile +++ b/Makefile @@ -1,37 +1,23 @@ # Makefile for building Brevet card PDF in Docker IMAGE_NAME := brevetcard-builder -TEX_FILE_FRONT := brevetkarte.tex -TEX_FILE_BACK := brevetkarte-rueckseite.tex TEX_FILE_PERSONALIZED := brevetkarte-personalized.tex -PDF_FILE_FRONT := brevetkarte.pdf -PDF_FILE_BACK := brevetkarte-rueckseite.pdf +TEX_FILE_BACK := brevetkarte-rueckseite.tex PDF_FILE_PERSONALIZED := brevetkarte-personalized.pdf +PDF_FILE_BACK := brevetkarte-rueckseite.pdf CSV_FILE := Export Brevetkarte.csv -.PHONY: all build clean build-image build-front build-back generate build-personalized run shell help +.PHONY: all build clean build-image build-back generate build-personalized run shell help # Default target -all: build - -# Build static demo front side (builds image if needed) -build: build-image build-front +all: build-personalized # Build Docker image build-image: @echo "Building Docker image..." docker build -t $(IMAGE_NAME) . -# Compile static demo front side PDF -build-front: - @echo "Compiling front side LaTeX to PDF..." - docker run --rm \ - -v $(PWD):/workspace \ - $(IMAGE_NAME) \ - pdflatex -interaction=nonstopmode $(TEX_FILE_FRONT) - @echo "PDF generated: $(PDF_FILE_FRONT)" - -# Compile back side PDF (always generated from event.yml via generate) +# Compile back side PDF (after generate) build-back: build-image @echo "Compiling back side LaTeX to PDF..." docker run --rm \ @@ -89,19 +75,18 @@ clean-all: clean docker rmi $(IMAGE_NAME) 2>/dev/null || true # Rebuild from scratch -rebuild: clean-all build +rebuild: clean-all build-personalized # Show help help: @echo "Brevet Card PDF Builder" @echo "" @echo "Available targets:" - @echo " make build - Build Docker image and compile static front side (default)" + @echo " make - Generate and compile front + back side PDFs (default)" @echo " make build-image - Build Docker image only" - @echo " make build-front - Compile static demo front side PDF" @echo " make generate - Generate tex files from CSV + event.yml" @echo " make build-personalized - Generate and compile front + back side PDFs" - @echo " make build-back - Compile back side PDF (after generate)" + @echo " make build-back - Compile back side PDF only (after generate)" @echo " make shell - Open interactive shell in container" @echo " make clean - Remove generated files (aux, log, pdf)" @echo " make clean-all - Remove all files and Docker image" diff --git a/README.md b/README.md index dd36a45..5f2232c 100644 --- a/README.md +++ b/README.md @@ -76,9 +76,6 @@ make generate # Nur Rückseite kompilieren (nach generate) make build-back - -# Statische Demo-Vorderseite bauen (ohne CSV, für Tests) -make build-front ``` ### Weitere Befehle @@ -99,8 +96,7 @@ make help # Alle Befehle anzeigen | `Export Brevetkarte.csv.example` | Vorlage für Teilnehmerdaten (→ als `Export Brevetkarte.csv` kopieren) | | `brevetkarte-template.tex` | Vorlage Vorderseite (Platzhalter aus CSV + event.yml) | | `brevetkarte-rueckseite-template.tex` | Vorlage Rückseite (Zellplatzhalter aus event.yml) | -| `brevetkarte.tex` | Statische Demo-Vorderseite (ohne Personalisierung) | -| `generate_cards.py` | Generiert personalisierte .tex-Dateien | +| `generate_cards.py` | Generiert .tex-Dateien aus Templates + Konfiguration | | `cyclist-logo.png` | Audax Randonneurs Logo | | `Dockerfile` | Docker-Image-Definition (debian:bookworm-slim + TeX Live) | | `Makefile` | Build-Automatisierung | diff --git a/brevetkarte.tex b/brevetkarte.tex deleted file mode 100644 index ebb8fc9..0000000 --- a/brevetkarte.tex +++ /dev/null @@ -1,139 +0,0 @@ -\documentclass[a4paper,10pt,landscape]{article} -\usepackage[utf8]{inputenc} -\usepackage[T1]{fontenc} -\usepackage[landscape,top=0.8cm,bottom=0.8cm,left=0.8cm,right=0.8cm]{geometry} -\usepackage{graphicx} -\usepackage{xcolor} -\usepackage{tikz} -\usepackage{helvet} -\usepackage{hyperref} - -% Set sans-serif font as default -\renewcommand{\familydefault}{\sfdefault} - -% Define colors -\definecolor{headerblack}{RGB}{0,0,0} - -% Configure hyperlinks to be black -\hypersetup{ - colorlinks=true, - linkcolor=black, - urlcolor=black, - citecolor=black -} - -\setlength{\parindent}{0pt} -\pagestyle{empty} - -% Command to create one brevet card -\newcommand{\brevetcard}{% -\noindent -\begin{tikzpicture}[x=1cm,y=1cm] - -% Black vertical separator lines (drawn first, extend through headers) -\draw[black,line width=0.5pt] (6.9,-7.2) -- (6.9,1.3); -\draw[black,line width=0.5pt] (13.8,-7.2) -- (13.8,1.3); -\draw[black,line width=0.5pt] (20.7,-7.2) -- (20.7,1.3); - -% Black header boxes (drawn on top) -\fill[headerblack] (0,0) rectangle (6.9,1.3); -\node[white,align=center,font=\tiny,text width=6.6cm] at (3.45,0.65) { - Jeder Teilnehmer muss diese Brevetkarte zu jeder Zeit\\ - mit sich führen und an den Kontrollen abstempeln lassen\\ - bzw. Fotos erstellen.\\ - \textbf{Ohne Kontrollzeiten und Zielzeit keine Wertung!} -}; - -\fill[headerblack] (6.9,0) rectangle (13.8,1.3); -\node[white,font=\Large] at (10.35,0.65) {HOMOLOGATION}; - -\fill[headerblack] (13.8,0) rectangle (20.7,1.3); -\node[white,font=\Large] at (17.25,0.65) {TEILNEHMER/-IN}; - -\fill[headerblack] (20.7,0) rectangle (27.6,1.3); -\node[white,align=center,font=\normalsize] at (24.15,0.75) {BREVET DES RANDONNEURS}; -\node[white,font=\Large] at (24.15,0.35) {MONDIAUX}; - -% Column 1 - Rules (left section) -\node[anchor=north west,text width=6.6cm,font=\small,align=left] at (0.2,-0.3) { - \textbf{Es gelten die Regeln von}\\ - \textbf{Randonneur Mondiaux}\\ - \textbf{insbesondere:} - {\setlength{\leftmargini}{0.4cm}% - \begin{itemize}% - \setlength{\itemsep}{1pt}\setlength{\topsep}{2pt}\setlength{\parsep}{0pt} - \item Einhaltung der StVO - \item Beleuchtung und Sicherheitsweste/-Gurt - \item keine Abkürzungen - \item keine Begleitfahrzeuge - \item Rücksicht auf Teilnehmer und Umwelt - \item Rücksicht in den Kontrollen - \end{itemize}} - \hspace{0.3cm}$\Rightarrow$ \textbf{\underline{Bei Verstoß keine Wertung!}}\\[0.3cm] - - -}; - -\node[anchor=south west,text width=6.6cm,font=\small,align=left] at (0.2,-7.0) { - \textbf{AUDAX RANDONNEURS ALLEMAGNE E.V.}\\ - \href{http://www.audax-randonneure.de}{www.audax-randonneure.de}\\ - - gegründet 1992 in Hamburg - -}; - -% Column 2 - Homologation (middle-left section) -\node[anchor=north,text width=6.6cm,font=\small,align=center] at (10.35,-0.5) { - Der Randonnée wurde beendet in:\\[0.6cm] - \makebox[2cm]{\dotfill}h\makebox[2cm]{\dotfill}min -}; - -\node[anchor=center,font=\Large] at (10.35,-4.0) { - HOMOLOGATION -}; - -\node[anchor=south,text width=6.6cm,font=\small,align=center] at (10.35,-6.8) { - Brevet N° \makebox[5cm]{\dotfill} -}; - -% Column 3 - Participant Info (middle-right section) -\node[anchor=north west,text width=6.6cm,font=\small,align=left] at (14.0,-0.5) { - Name:\\[0.4cm] - Straße:\\[0.4cm] - PLZ/Ort:\\[0.4cm] - Land:\\[0.4cm] - Medaille:\\[0.6cm] - Startzeit: 8:30 -}; - -% Column 4 - Event Info (right section) -\node[anchor=north,text width=6.6cm,align=center] at (24.15,-0.4) { - \includegraphics[width=5.5cm]{cyclist-logo.png} -}; - -\node[anchor=north,text width=6.6cm,font=\small,align=center] at (24.15,-2.2) { - \textbf{Auf eine Pommes nach Belgien}\\ - Randonnée über \textbf{200} km\\ - am \textbf{20. September 2025}\\ - mit Start in \textbf{Bonn, Uni-Sportgelände}\\ - von \textbf{ARA Rheinland}\\ - N° ACP du Club \textbf{111011} -}; - -\node[anchor=south,text width=6.6cm,font=\scriptsize,align=center] at (24.15,-7.0) { - CONTRÔLÉE ET HOMOLOGUÉE EXCLUSIVEMENT PAR\\ - \href{http://www.audax-club-parisien.com}{www.audax-club-parisien.com}\\ - - Société fondée en 1904 - -}; - -\end{tikzpicture} -} - -\begin{document} - -% First brevet card -\brevetcard - -\vspace{0.8cm} - -% Second brevet card (identical) -\brevetcard - -\end{document}