Skip to content
Snippets Groups Projects
Select Git revision
  • 32d83213579d6e21f59387ddfbd61e81837df0d5
  • master default protected
  • yassin.elhakoun-master-patch-31368
  • yassin.elhakoun-master-patch-63504
  • yassin.elhakoun-master-patch-79717
  • yassin.elhakoun-master-patch-87271
  • yassin.elhakoun-master-patch-97182
  • pk
  • high-order-functions
9 results

Makefile

Blame
  • Makefile 1.86 KiB
    PDFOPTIONS = -t beamer
    PDFOPTIONS += -F mermaid-filter
    PDFOPTIONS += --highlight-style my_highlight.theme
    PDFOPTIONS += --pdf-engine pdflatex
    PDFOPTIONS += -V theme:metropolis
    PDFOPTIONS += -V themeoptions:numbering=none -V themeoptions:progressbar=foot
    PDFOPTIONS += -V fontsize=smaller
    PDFOPTIONS += -V urlcolor=blue
    
    REVEALOPTIONS = -t revealjs
    REVEALOPTIONS += -F mermaid-filter
    REVEALOPTIONS += --self-contained
    REVEALOPTIONS += -V revealjs-url=./reveal.js
    REVEALOPTIONS += -V theme=white
    REVEALOPTIONS += -V width=1920
    REVEALOPTIONS += -V margin=0
    REVEALOPTIONS += --slide-level=1
    
    MD=$(wildcard *.md) # Tous les fichiers .md
    HTML=$(MD:%.md=%.html) # Pour les fichier html on transforme .md -> .html
    PDF=$(MD:%.md=%.pdf) # Pour les fichier pdf on transforme .md -> .pdf
    MARKDOWN=$(MD:%.md=%.markdown) # Pour les fichier markdown on transforme .md -> .markdown
    
    all: $(PDF) $(HTML) # La cible par défaut (all) exécute les cibles %.html et %.pdf
    
    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 $@ $^
    
    %.html: %.md metadata.yaml
    	pandoc -s $(OPTIONS) $(REVEALOPTIONS) -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 
    	mkdir -p prog_seq_c_cours
    	cp *.pdf prog_seq_c_cours
    	cp *.html prog_seq_c_cours
    
    clean:
    	rm -f *.pdf *.html *.markdown yq_linux_amd64*