Skip to content
Snippets Groups Projects
Select Git revision
  • 7f74b9f836682541bc560779575fe6150f6e784e
  • master default protected
2 results

Makefile

Blame
  • Forked from algorithmique / cours
    Source project has a limited visibility.
    Makefile 2.13 KiB
    PDFOPTIONS = -t beamer
    # PDFOPTIONS += -F pantable
    PDFOPTIONS += -F mermaid-filter
    PDFOPTIONS += --highlight-style my_highlight.theme
    PDFOPTIONS += --pdf-engine xelatex
    PDFOPTIONS += -V theme:metropolis
    PDFOPTIONS += -V themeoptions:numbering=none -V themeoptions:progressbar=foot
    PDFOPTIONS += -V fontsize=smaller
    PDFOPTIONS += -V urlcolor=blue
    
    MD=$(wildcard *.md) # Tous les fichiers .md
    PDF=$(MD:%.md=%.pdf) # Pour les fichier pdf on transforme .md -> .pdf
    HTML=$(MD:%.md=%.html) # Pour les fichier html on transforme .md -> .html
    MARKDOWN=$(MD:%.md=%.markdown) # Pour les fichier markdown on transforme .md -> .markdown
    CHROMIUM:=$(shell which chromium || which chromium-browser)
    
    all: puppeteer $(PDF) 
    # all: puppeteer $(PDF) $(HTML) # La cible par défaut (all) exécute les cibles %.pdf
    
    docker: docker-compose.yml
    	docker-compose run slides
    
    docker_clean: docker-compose.yml
    	docker-compose run slides clean
    
    puppeteer:
    	@echo "Setting chromium to $(CHROMIUM) for puppeteer"
    	@echo -e "{\n\"executablePath\":" \"$(CHROMIUM)\" ",\n\"args\": [\"--no-sandbox\"]\n}" > .puppeteer.json
    
    index.md: gen_index.sh
    	$(shell ./gen_index.sh)
    
    index.html: index.md
    	pandoc -s $(OPTIONS) --css ../css/tufte-css/tufte.css -o $@ $^
    
    markdown: $(MARKDOWN) # La markdown les cibles %.markdown
    
    %.pdf: %.md metadata.yaml # %.pdf (chaque fichier %.md génère un fichier avec le même nom mais l'extension .pdf et la dépendance metadata.yaml)
    	pandoc -s $(OPTIONS) $(PDFOPTIONS) -o $@ $^
    
    %.markdown: %.md metadata.yaml yq
    	sed '1 { /^---/ { :a N; /\n---/! ba; d} }' $< > no_header
    	grep -v -F -x -f  no_header $< > header.yaml
    	echo "---" > tmp.yaml
    	./yq_linux_amd64 merge metadata.yaml header.yaml >> tmp.yaml
    	cat tmp.yaml no_header > $@
    	rm no_header header.yaml tmp.yaml
    
    yq: # On peut même télécharger un petit programme avec notre makefile
    	wget -nc https://github.com/mikefarah/yq/releases/download/3.4.1/yq_linux_amd64
    	chmod "u+x" yq_linux_amd64 
    
    deploy: all index.html
    	mkdir -p algo_cours
    	cp *.pdf algo_cours
    	cp index.html algo_cours
    
    clean:
    	rm -rf *.html *.pdf *.markdown yq_linux_amd64* index.md .puppeteer.json algo_cours *.err
    
    .PHONY:	clean index.md puppeteer yq