OPTIONS = --toc
OPTIONS += --filter=pandoc-plot
OPTIONS += --filter=pandoc-numbering
OPTIONS += --filter=pandoc-crossref

PDFOPTIONS = --highlight-style kate
PDFOPTIONS += --pdf-engine xelatex
PDFOPTIONS += --number-sections
# PDFOPTIONS += --template=./default.latex


HTMLOPTIONS += -t html5
HTMLOPTIONS += -c css/tufte-css/tufte.css
HTMLOPTIONS += --standalone --embed-resources
HTMLOPTIONS += --mathjax=MathJax.js

CLASS_SOURCES := $(sort $(filter-out README.md, $(wildcard *.md)))
SOURCES := $(filter-out 00_macros.md, $(CLASS_SOURCES))
SOURCES := $(filter-out 10_footer.md, $(SOURCES))

MARKDOWN := $(patsubst %.md, %.markdown, $(SOURCES))
PDF := $(patsubst %.md, %.pdf, $(SOURCES))
HTML := $(patsubst %.md, %.html, $(SOURCES))
TEX := $(patsubst %.md, %.tex, $(SOURCES))

all:  cours.pdf cours.html

docker: docker-compose.yml
	docker-compose run cours
	# chown $(USER):$(GROUP) cours.html
	# chown $(USER):$(GROUP) cours.pdf

docker_clean: docker-compose.yml
	docker-compose run cours clean


debug: $(PDF) $(TEX)

cours.pdf: $(CLASS_SOURCES)
	pandoc -s $(OPTIONS) $(PDFOPTIONS) -o $@ $^ --metadata-file metadata.yaml

cours.html: $(CLASS_SOURCES)
	pandoc $(OPTIONS) $(HTMLOPTIONS) -o $@ $^ --metadata-file metadata.yaml

$(PDF): %.pdf: 00_macros.md %.md 10_footer.md
	pandoc -s $(OPTIONS) $(PDFOPTIONS) -o $@ $^ --metadata-file metadata.yaml

$(HTML): %.html: 00_macros.md %.md 10_footer.md
	pandoc -s $(OPTIONS) $(HTMLOPTIONS) -o $@ $^ --metadata-file metadata.yaml

$(TEX): %.tex: 00_macros.md %.md 10_footer.md
	pandoc -s $(OPTIONS) $(PDFOPTIONS) -o $@ $^ --metadata-file metadata.yaml


hakyll_gen: $(MARKDOWN)

$(MARKDOWN): %.markdown: 00_macros.md %.md 10_footer.md
	$(file >$@,---)
	$(file >>$@,date: $(shell git log --follow -p -1 --format=%cd --date=format:'%Y-%m-%d' -- $(word 2,$^) | head -n 1))
	$(file >>$@,mathjax: on)
	$(file >>$@,---)
	cat $^ >> $@

deploy: all
	mkdir -p phys
	mkdir -p phys/planets
	mkdir -p phys/field_lines
	mkdir -p phys/rc_circuit
	cp cours.html phys/index.html
	cp cours.pdf phys/cours.pdf
	make -C exercices
	make -C practical_work
	mkdir -p phys/exercices
	cp exercices/*.html phys/exercices
	cp exercices/*.pdf phys/exercices
	mkdir -p phys/practical_work
	cp practical_work/*.html phys/practical_work
	cp practical_work/*.pdf phys/practical_work
	cd practical_work/ && tar cvf tp_vec2.tar tp_vec2/ && cp tp_vec2.tar ../phys/practical_work
	cd ..
	make -C practical_work/planets
	cp practical_work/planets/*.pdf phys/planets/
	cp practical_work/planets/*.html phys/planets/
	cd practical_work/planets && tar cvf skeleton.tar skeleton && cp *.tar ../../phys/planets
	cd ..
	make -C practical_work/electric_fl
	cp practical_work/electric_fl/*.pdf phys/field_lines/
	cp practical_work/electric_fl/*.html phys/field_lines/
	cd practical_work/electric_fl && tar cvf utils_jour.tar utils Jour && tar cvf utils_soir.tar utils Soir && cp *.tar ../../phys/field_lines
	cd ..
	pwd
	make -C practical_work/rc_circuit
	cp practical_work/rc_circuit/*.pdf phys/rc_circuit/
	cp practical_work/rc_circuit/*.html phys/rc_circuit/


clean:
	rm -f *.html *.pdf $(MARKDOWN) $(PDF) $(TEX) $(HTML)
	rm -rf phys