diff --git a/.gitignore b/.gitignore
index ca0e1cfbfd9f47405c10a9e3b724f0dcca90175f..e001480645ad2c6f2cdbc2c2db64bb08c4867d27 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,5 @@
 *.backup
 *.pdf
 *.html
+*.markdown
+macros
diff --git a/00_macros.md b/00_macros.md
index 7dd8daa168f5ed66ffb81ac6001774aab586dafe..8d41d08fdb5807205b3ac4b415b2c2941e2dd851 100644
--- a/00_macros.md
+++ b/00_macros.md
@@ -2,4 +2,4 @@
   \newcommand{\dd}{\mathrm{d}}
   \newcommand{\real}{\mathbb{R}}
   \newcommand{\grad}{\mathrm{grad}}
-  
\ No newline at end of file
+ 
diff --git a/01_rappel.md b/01_rappel.md
index b836992ed0480b12ec92bfd7238ed2fa39c09bd2..1d5ce3831b17e3a4524af6a96bc03a437c781014 100644
--- a/01_rappel.md
+++ b/01_rappel.md
@@ -338,3 +338,4 @@ $$f(x)=\frac{x^3}{x^2-4}.$$
     extremum, etc).
 
 6. Faire un croquis de $f(x)$.
+
diff --git a/03_integrales.md b/03_integrales.md
index 53db1402f0096f824086cfebbe6a4dcd5d8ffca2..e0ad79b8380e41a6cd495651cf6b6d043ee246bd 100644
--- a/03_integrales.md
+++ b/03_integrales.md
@@ -741,3 +741,4 @@ Il vient donc que $$\begin{aligned}
 
 Cette méthode permet d’évaluer exactement les intégrales des polynômes d’ordre 3,
 $f(x)=ax^3+bx^2+cx+d$.
+
diff --git a/04_edo.md b/04_edo.md
index 197c7e2917467911fe3b208446b1d50b34326fc8..3606bf93283c2562eea66b5f6c1a7c2a3002b5b6 100644
--- a/04_edo.md
+++ b/04_edo.md
@@ -912,3 +912,4 @@ considérable de ce modèle est qu’il est très simple d’y inclure une
 force de frottement proportionnelle à la vitesse. Sans entrer dans les
 détails de la dérivation du schéma on a
 $$x(t_{n+1})=(2-\delta t\zeta)x(t_n)-(1-\delta t\zeta)x(t_{n-1})+\delta t^2 a(x(t_n)).$$
+
diff --git a/05_fourier.md b/05_fourier.md
index 7c4308829237a10cc0571baaf04b46c958658a3d..3eb3223da9b698dd735ab0769dc8e77ecea02e7c 100644
--- a/05_fourier.md
+++ b/05_fourier.md
@@ -965,3 +965,4 @@ permet de représenter les fréquences plus petites que $F_N/2$. Si la
 fréquence d’échantillonnage est plus petite que la fréquence de Nyquist
 de notre signal, on verra apparaître le phénomène de *repliement de
 spectre* (aliasing en anglais).
+
diff --git a/06_probas_stats.md b/06_probas_stats.md
index 5373a18946a169ff75bc056bf623c69f78bbcdc8..4401c7a0f10f042196313a9861b396256a700c69 100644
--- a/06_probas_stats.md
+++ b/06_probas_stats.md
@@ -1289,3 +1289,4 @@ mais bien en dehors du champs de ce cours...
 
 Il existe beaucoup d’autres possibilités (il y a des recommandations
 sur le site `http://www.random.org`) pour tester des nombres aléatoires.
+
diff --git a/07_remerciements.md b/07_remerciements.md
index 474e5573451166c783dac9f128c02fc43c8dd66c..4c06a39b94e0bed2344a141aa846686d951c41ab 100644
--- a/07_remerciements.md
+++ b/07_remerciements.md
@@ -5,3 +5,4 @@ Je voudrais remercier (par ordre alphabétique) les étudiants du cours
 qui ont contribué à améliorer ce polycopié. En espérant que cette liste
 continuera à s’allonger avec les années. Merci à Messieurs
 Borel, Gay-Balmaz, Ibanez, Lovino et Sousa. Je voudrais également remercier A. Malaspinas pour sa relecture et ses corrections.
+
diff --git a/08_notes.md b/08_notes.md
index 94d6eaa3c3f1daacdf1f448073e19ca51ca729de..feaebbb164fa83e97112b2e5247c095cefafd14c 100644
--- a/08_notes.md
+++ b/08_notes.md
@@ -25,4 +25,4 @@
     boule blanche ($p(B)=1/3$) n’est pas donnné par
     $p(A)=\mbox{nombre d'éléments dans }A/\mbox{nombre total d'éléments}=1/2$,
     $p(B)=\mbox{nombre d'éléments dans }B/\mbox{nombre total d'éléments}=1/2$.
-[^10]: Leur valeur est un peu arbitraire, souvent $\delta x=0.01$ et $k=2$.
\ No newline at end of file
+[^10]: Leur valeur est un peu arbitraire, souvent $\delta x=0.01$ et $k=2$.
diff --git a/Makefile b/Makefile
index 1b12a289f5bde63b68d3f2147f933c1edc4a8720..6db27a899090b58414e1c3e0875a2126bc5c49b7 100644
--- a/Makefile
+++ b/Makefile
@@ -28,6 +28,33 @@ cours.pdf: 00_macros.md 01_rappel.md 02_optimisation.md 03_integrales.md 04_edo.
 cours.html: 00_macros.md 01_rappel.md 02_optimisation.md 03_integrales.md 04_edo.md 05_fourier.md 06_probas_stats.md 07_remerciements.md 08_notes.md
 	pandoc -s $(OPTIONS) $(HTMLOPTIONS) -o $@ $^ --metadata-file metadata.yaml
 
+hakyll_gen: rappel.markdown optimisation.markdown integrales.markdown integrales.markdown edo.markdown fourier.markdown probas_stats.markdown remerciements.markdown
+
+macros: 00_macros.md
+	sed  "1i ---\ndate: $(shell date +%y%y-%m-%d)\n---" $< > $@
+
+rappel.markdown: macros 01_rappel.md 08_notes.md
+	cat $^ > $@
+
+optimisation.markdown: macros 02_optimisation.md 08_notes.md
+	cat $^ > $@
+
+integrales.markdown: macros 03_integrales.md 08_notes.md
+	cat $^ > $@
+
+edo.markdown: macros 04_edo.md 08_notes.md
+	cat $^ > $@
+
+fourier.markdown: macros 05_fourier.md 08_notes.md
+	cat $^ > $@
+
+probas_stats.markdown: macros 06_probas_stats.md 08_notes.md
+	cat $^ > $@
+
+remerciements.markdown: macros 07_remerciements.md 08_notes.md
+	cat $^ > $@
+
+
 deploy: all
 	mkdir -p mti
 	cp cours.html mti/index.html
@@ -46,4 +73,4 @@ deploy: all
 	cp travaux_pratiques/tpOptimisation/tpOptimisation.html mti/tpOptimisation/index.html
 
 clean:
-	rm -rf *.html *.pdf
+	rm -rf mti *.markdown macros *.html *.pdf