| 1 | # Generates the source code
|
| 2 | # simple script to convert markdown to html format
|
| 3 |
|
| 4 | .POSIX:
|
| 5 | .PHONY: all build copy clean
|
| 6 |
|
| 7 | SHELL := bash
|
| 8 | .SHELLFLAGS := -eu -o pipefail -c
|
| 9 | OUT_DIR := output
|
| 10 | PANDOC_FORMAT := -f markdown+link_attributes
|
| 11 | TEMPLATE := template.html
|
| 12 | RSYNC_OPTS := -av --delete
|
| 13 | DEPLOY_PATH := # add yours here
|
| 14 | RSYNC_IGNORE := --exclude=$(OUT_DIR) \
|
| 15 | --exclude=$(TEMPLATE) \
|
| 16 | --exclude=Makefile \
|
| 17 | --exclude=".git*" \
|
| 18 | --exclude="*.md"
|
| 19 |
|
| 20 | MD := $(shell find . -type f -name "*.md" -not -path "./$(OUT_DIR)/*")
|
| 21 | HTML := $(patsubst ./%.md,$(OUT_DIR)/%.html,$(MD))
|
| 22 |
|
| 23 | all: build copy
|
| 24 |
|
| 25 | build:
|
| 26 | mkdir -p $(OUT_DIR)
|
| 27 | for f in $(MD); do \
|
| 28 | out="$(OUT_DIR)/$${f#./}"; \
|
| 29 | out="$${out%.md}.html"; \
|
| 30 | mkdir -p "$$(dirname "$$out")"; \
|
| 31 | pandoc $(PANDOC_FORMAT) \
|
| 32 | --template=$(TEMPLATE) \
|
| 33 | "$$f" -s -o "$$out"; \
|
| 34 | done
|
| 35 |
|
| 36 | copy:
|
| 37 | rsync -a $(RSYNC_IGNORE) ./ $(OUT_DIR)/
|
| 38 |
|
| 39 | deploy:
|
| 40 | rsync $(RSYNC_OPTS) $(OUT_DIR)/ $(DEPLOY_PATH)
|
| 41 |
|
| 42 | clean:
|
| 43 | rm -rf $(OUT_DIR)
|