Add CSV-based personalized card generation
Add template-based system for generating personalized brevet cards from CSV data. Uses proper separation of concerns with template file and Python script. - Add brevetkarte-template.tex with placeholders - Add generate_cards.py to read CSV and populate template - Update Makefile with generate-personalized and build-personalized targets - Update .gitignore to exclude generated files Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
46
Makefile
46
Makefile
@@ -4,10 +4,13 @@ IMAGE_NAME := brevetcard-builder
|
||||
CONTAINER_NAME := brevetcard-build
|
||||
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
|
||||
PDF_FILE_PERSONALIZED := brevetkarte-personalized.pdf
|
||||
CSV_FILE := Export Brevetkarte.csv
|
||||
|
||||
.PHONY: all build clean build-image build-pdf build-front build-back run shell help
|
||||
.PHONY: all build clean build-image build-pdf build-front build-back generate-personalized build-personalized run shell help
|
||||
|
||||
# Default target
|
||||
all: build
|
||||
@@ -41,6 +44,25 @@ build-back:
|
||||
pdflatex -interaction=nonstopmode $(TEX_FILE_BACK)
|
||||
@echo "PDF generated: $(PDF_FILE_BACK)"
|
||||
|
||||
# Generate personalized cards from CSV
|
||||
generate-personalized:
|
||||
@echo "Generating personalized cards from $(CSV_FILE)..."
|
||||
@if [ ! -f "$(CSV_FILE)" ]; then \
|
||||
echo "Error: $(CSV_FILE) not found!"; \
|
||||
exit 1; \
|
||||
fi
|
||||
python3 generate_cards.py
|
||||
@echo "Generated $(TEX_FILE_PERSONALIZED)"
|
||||
|
||||
# Build personalized cards PDF
|
||||
build-personalized: generate-personalized build-image
|
||||
@echo "Compiling personalized cards to PDF..."
|
||||
docker run --rm \
|
||||
-v $(PWD):/workspace \
|
||||
$(IMAGE_NAME) \
|
||||
pdflatex -interaction=nonstopmode $(TEX_FILE_PERSONALIZED)
|
||||
@echo "PDF generated: $(PDF_FILE_PERSONALIZED)"
|
||||
|
||||
# Run container interactively
|
||||
run:
|
||||
docker run --rm -it \
|
||||
@@ -73,13 +95,15 @@ help:
|
||||
@echo "Brevet Card PDF Builder"
|
||||
@echo ""
|
||||
@echo "Available targets:"
|
||||
@echo " make build - Build Docker image and compile both PDFs (default)"
|
||||
@echo " make build-image - Build Docker image only"
|
||||
@echo " make build-pdf - Compile both front and back PDFs"
|
||||
@echo " make build-front - Compile front side PDF only"
|
||||
@echo " make build-back - Compile back side PDF only"
|
||||
@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"
|
||||
@echo " make rebuild - Clean everything and rebuild"
|
||||
@echo " make help - Show this help message"
|
||||
@echo " make build - Build Docker image and compile both PDFs (default)"
|
||||
@echo " make build-image - Build Docker image only"
|
||||
@echo " make build-pdf - Compile both front and back PDFs"
|
||||
@echo " make build-front - Compile front side PDF only"
|
||||
@echo " make build-back - Compile back side PDF only"
|
||||
@echo " make generate-personalized - Generate personalized cards from CSV"
|
||||
@echo " make build-personalized - Generate and compile personalized cards"
|
||||
@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"
|
||||
@echo " make rebuild - Clean everything and rebuild"
|
||||
@echo " make help - Show this help message"
|
||||
|
||||
Reference in New Issue
Block a user