# Makefile # Espace de recherche # ----- Notes ----------------------------------------------- # TODO: pandoc flags → tout ce qui est commun aux deux appels # ----------------------------------------------------------- # =========================================================== # variables # =========================================================== SHELL := /bin/bash # Timestamp date0500 := $(shell date +%Y-%m-%dT%H:%M:%S-05:00) # -05:00 date0400 := $(shell date +%Y-%m-%dT%H:%M:%S-04:00) # -04:00 # Git hash #hash := $(shell cat .git/refs/heads/main) # Name name := $(PROJET) # Variables pour les intrants config_screen = ./src/config-screen.yml config_print = ./src/config-print.yml src_dir := ./src/$(name) src_files = $(shell ls $(src_dir)/*.md | grep -v -f exclure.txt) # Variables pour les extrants # Invariant: ./archives et ./dist préexistent nécessairement zip := ./archives/$(name).zip dist := ./dist/$(name) print := ./dist/$(name)/$(name).html # Pandoc flags # TODO: mise en œuvre PANDOCFLAGS = \ --metadata-file ./src/global-metadata.yml \ --metadata-file $(src_dir)/metadata.yml \ --metadata-file $(src_dir)/theme.yml \ --citeproc \ --bibliography $(references_file) \ --csl $(csl_file) \ --wrap none \ --toc # Règle par défaut, si aucune n’est mentionnée .DEFAULT_GOAL := aide # =========================================================== # Règles publiques # =========================================================== # Affiche l’aide .PHONY: aide aide: ## Le double croisillon indique de la doc à parser @cat aide.txt | ccze -A # Génère l’ensemble des documents # NOTE: $(zip) = dépendance de $(print), donc $(zip) s’exécute avec build avant $(print) .PHONY: build build: _projet $(print) # Exécute Antidote # NOTE: wip .PHONY: antidote antidote: /usr/local/bin/Antidote9 $(CORRIGER) # Lance un serveur http .PHONY: serve serve: http-server ./dist/ -c-1 # Compte les nombre de mots # NOTE: wip .PHONY: wordcount wordcount: pandoc $(src) \ --lua-filter ./scripts/wordcount.lua # =========================================================== # Règles privées # =========================================================== # Vérifier qu’un projet est fourni .PHONY: _projet _projet: ifndef PROJET $(error ERREUR : aucun projet sélectionné) endif # =========================================================== # Fichiers # =========================================================== # Génère la version HTML pour écran # NOTE: $(