1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
# Pandoc-SSP https://github.com/infologie/pandoc-ssp/
# by Arthur Perret https://www.arthurperret.fr
# custom by Roch Delannay https://github.com/RochDLY/pandoc-ssg
########################VARIABLES##############################
POSTS := $(sort $(shell find src/posts -type f -iname '*.md'))
POSTS_DOCS := $(patsubst %.md, docs/posts/%.html, $(notdir $(POSTS)))
PAGES := $(sort $(shell find src/pages -type f -iname '*.md'))
PAGES_DOCS := $(patsubst %.md, docs/pages/%.html, $(notdir $(PAGES)))
# Copy static files recursively :
# (Adapted from https://stackoverflow.com/questions/41993726/)
STATIC := $(shell find static -type f)
STATIC_DOCS := $(patsubst static/%, docs/%, $(STATIC))
$(foreach s,$(STATIC),$(foreach t,$(filter %$(notdir $s),$(STATIC_DOCS)),$(eval $t: $s)))
$(STATIC_DOCS):; $(if $(wildcard $(@D)),,mkdir -p $(@D) &&) cp $^ $@
references = src/bibliography/references.bib
csl_file = templates/csl/apa.csl
metadata_site = src/metadata.yml
PANDOCFLAGS = \
--from markdown \
--to html \
--standalone \
--citeproc \
--wrap none \
--bibliography $(references) \
--metadata-file $(metadata_site) \
--csl $(csl_file)
#############################COMMANDS###########################
.PHONY: all html clean #pdf
all: clean html serve #pdf
clean:
@ rm -rf docs/*
serve:
@ python3 -m http.server -d docs/
# Pandoc conversions
# HTML
html: $(STATIC_DOCS) docs/index.html $(POSTS_DOCS) $(PAGES_DOCS)
docs/index.html: src/index.md
@ echo "Index production."
@ pandoc \
$< \
$(PANDOCFLAGS) \
--template templates/index.html \
--output $@
@ echo "The index is built."
docs/pages/%.html: src/pages/%.md
@ mkdir -p "$(@D)"
@ echo "Pages production."
@ pandoc \
$< \
$(PANDOCFLAGS) \
--template templates/post.html \
--output $@
@ echo "Pages are built."
docs/posts/%.html: src/posts/%.md
@ mkdir -p "$(@D)"
@ echo "Production of posts."
@ pandoc \
$< \
$(PANDOCFLAGS) \
--template templates/post.html \
--table-of-content \
--output $@
@ echo "Posts are built."
# PDF
#pdf: docs/these.pdf
#docs/these.pdf: src/introduction.md $(POSTS) src/conclusion.md
# pandoc $^ [options] -o docs/these.pdf
|