mirror of
https://github.com/aaronpo97/the-biergarten-app.git
synced 2026-10-14 17:54:42 +00:00
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com> for assistance with diagram creation and documentation prose updates.
44 lines
1.3 KiB
Makefile
44 lines
1.3 KiB
Makefile
# Makefile for rendering all Mermaid (.mmd) diagrams to SVG,
|
|
# preserving the source directory structure under OUT_ROOT.
|
|
#
|
|
# Usage:
|
|
# make # render all diagrams
|
|
# make clean # remove all rendered output
|
|
# make FORMAT=png # render as PNG instead of SVG
|
|
# make FORMAT=pdf # render as PDF instead of SVG
|
|
#
|
|
# Requires: @mermaid-js/mermaid-cli (mmdc) on PATH
|
|
# npm install -g @mermaid-js/mermaid-cli
|
|
|
|
SRC_ROOT := .
|
|
OUT_ROOT := rendered-diagrams
|
|
FORMAT := svg
|
|
|
|
# Optional: point to a shared Mermaid config/theme file if you have one.
|
|
# CONFIG := ./mermaidconfig.json
|
|
# CONFIG_FLAG := -c $(CONFIG)
|
|
CONFIG_FLAG :=
|
|
|
|
# Find every .mmd file under SRC_ROOT, excluding the output directory itself.
|
|
SRC_FILES := $(shell find $(SRC_ROOT) -type f -name "*.mmd" -not -path "./$(OUT_ROOT)/*")
|
|
|
|
# Map each source file to its corresponding output file, preserving subdirectories.
|
|
OUT_FILES := $(patsubst $(SRC_ROOT)/%.mmd,$(OUT_ROOT)/%.$(FORMAT),$(SRC_FILES))
|
|
|
|
.PHONY: all clean list
|
|
|
|
all: $(OUT_FILES)
|
|
|
|
# Pattern rule: build any output file from its matching .mmd source file,
|
|
# creating the destination subdirectory as needed.
|
|
$(OUT_ROOT)/%.$(FORMAT): $(SRC_ROOT)/%.mmd
|
|
@mkdir -p $(dir $@)
|
|
mmdc $(CONFIG_FLAG) -i $< -o $@
|
|
|
|
clean:
|
|
rm -rf $(OUT_ROOT)
|
|
|
|
# Debug helper: print which source files were discovered.
|
|
list:
|
|
@echo "$(SRC_FILES)" | tr ' ' '\n'
|