diff options
| author | Florian Fischer <florian.fl.fischer@fau.de> | 2021-03-01 11:19:34 +0100 |
|---|---|---|
| committer | Florian Fischer <florian.fl.fischer@fau.de> | 2021-03-01 11:19:34 +0100 |
| commit | 898ccaaf393ccd20f4b105ac59af74c35ea93bb2 (patch) | |
| tree | a849ac451075b4ef93d1dfc2cab1720988366cfc /html/Makefile | |
| parent | 130c80b40454015e988de29f92eb020aa25fa91b (diff) | |
| download | muhqs-game-898ccaaf393ccd20f4b105ac59af74c35ea93bb2.tar.gz muhqs-game-898ccaaf393ccd20f4b105ac59af74c35ea93bb2.zip | |
[html] generate cards listing
Diffstat (limited to 'html/Makefile')
| -rw-r--r-- | html/Makefile | 65 |
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 |
