aboutsummaryrefslogtreecommitdiff
path: root/html/Makefile
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fl.fischer@fau.de>2021-03-01 11:19:34 +0100
committerFlorian Fischer <florian.fl.fischer@fau.de>2021-03-01 11:19:34 +0100
commit898ccaaf393ccd20f4b105ac59af74c35ea93bb2 (patch)
treea849ac451075b4ef93d1dfc2cab1720988366cfc /html/Makefile
parent130c80b40454015e988de29f92eb020aa25fa91b (diff)
downloadmuhqs-game-898ccaaf393ccd20f4b105ac59af74c35ea93bb2.tar.gz
muhqs-game-898ccaaf393ccd20f4b105ac59af74c35ea93bb2.zip
[html] generate cards listing
Diffstat (limited to 'html/Makefile')
-rw-r--r--html/Makefile65
1 files changed, 51 insertions, 14 deletions
diff --git a/html/Makefile b/html/Makefile
index b11d692d..6afc7ead 100644
--- a/html/Makefile
+++ b/html/Makefile
@@ -1,20 +1,42 @@
-VERBOSE = @
+VERBOSE ?= @
PANDOC_FLAGS = -f markdown -s --template=./template.html
-BUILDDIR = build
+# The full path to the Makefile
+MAKEFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
+# The path to the directory of the Makefile
+MAKEFILE_DIR := $(dir $(MAKEFILE_PATH))
-RULES_DIR = rules
-RULE_FILES = rules.md tiles.md ai.md
-DE_RULES = $(addprefix $(RULES_DIR)/de/,$(RULE_FILES))
-EN_RULES = $(addprefix $(RULES_DIR)/en/,$(RULE_FILES))
-RULES = $(DE_RULES) $(EN_RULES)
-RULES_HTML = $(addprefix $(BUILDDIR)/,$(RULES:.md=.html))
+HTML_ROOT := $(MAKEFILE_DIR)
+GAME_ROOT := $(MAKEFILE_DIR)/../
+RULES_ROOT := $(GAME_ROOT)/rules
+MAPS_ROOT := $(GAME_ROOT)/maps
+DATA_ROOT := $(GAME_ROOT)/data
+CARDS_YML_DIR := $(DATA_ROOT)/cards
+LATEX_ROOT := $(GAME_ROOT)/latex
+CARDS_PDF_DIR := $(LATEX_ROOT)/build
-MAPS_DIR = ../maps
+GENERATE_CARD := $(GAME_ROOT)scripts/generate_card.py
+GENERATE_CARD_ARGS := --format markdown
-SITES = index.md rules.md cards.md maps.md
-HTML = $(addprefix $(BUILDDIR)/,$(SITES:.md=.html))
+SETS := $(shell find $(CARDS_YML_DIR) -mindepth 1 -type d -printf "%f\n")
+SETS_SOURCEDIRS := $(foreach set, $(SETS), $(addprefix $(CARDS_YML_DIR)/, $(set)))
+
+BUILDDIR := $(MAKEFILE_DIR)/build
+
+RULE_FILES := rules.md tiles.md ai.md
+DE_RULES := $(addprefix $(RULES_ROOT)/de/,$(RULE_FILES))
+EN_RULES := $(addprefix $(RULES_ROOT)/en/,$(RULE_FILES))
+RULES := $(DE_RULES) $(EN_RULES)
+RULES_HTML := $(addprefix $(BUILDDIR)/,$(RULES:.md=.html))
+
+SITES := index.md rules.md cards.md maps.md
+HTML := $(addprefix $(BUILDDIR)/,$(SITES:.md=.html))
+
+# Create a list of yaml card definitions
+CARDS_YAML := $(foreach dir,$(SETS_SOURCEDIRS),$(wildcard $(dir)/*.yml))
+
+MAKEFILE_LIST := Makefile
.PHONY: all clean maps
all: $(HTML) $(RULES_HTML) maps
@@ -23,12 +45,27 @@ clean:
rm -rf $(BUILDDIR)
maps:
- ln -sf ../$(MAPS_DIR) $(BUILDDIR)/maps
- make -C $(MAPS_DIR)
+ @echo "building $@"
+ $(VERBOSE) ln -sf $(MAPS_ROOT) $(BUILDDIR)/maps
+ $(VERBOSE) make -C $(MAPS_ROOT)
-$(BUILDDIR)/%.html: %.md
+$(BUILDDIR)/%.html: %.md $(MAKEFILE_LIST)
@echo "building $@"
@if test \( ! \( -d $(@D) \) \) ;then mkdir -p $(@D);fi
$(VERBOSE) if [[ $$(cat $< | wc -l) -gt 80 ]]; \
then pandoc --toc $(PANDOC_FLAGS) $< -o $@; \
else pandoc $(PANDOC_FLAGS) $< -o $@; fi
+
+cards.md: $(CARDS_YAML) $(GENERATE_CARD) $(MAKEFILE_LIST)
+ @echo "render cards $@"
+ $(VERBOSE) ln -sf $(CARDS_PDF_DIR) $(BUILDDIR)/cards
+ $(VERBOSE) make -C $(LATEX_ROOT)
+ @echo "building $@"
+ $(VERBOSE) echo -e "% Cards" > $@
+ $(VERBOSE) for set in $(SETS); \
+ do echo -e "\n##" $$set >> $@; \
+ for card in $(CARDS_YML_DIR)/$$set/*.yml; \
+ do echo "" >> $@; \
+ $(GENERATE_CARD) $(GENERATE_CARD_ARGS) $$card >> $@; \
+ done; \
+ done