diff --git a/slides/src/control.md b/slides/src/control.md
index fe5b8163111787658ce90a3806821dbcbd5348e5..5279524abd711aaac66ef0c81fb1f8a751ee1a03 100644
--- a/slides/src/control.md
+++ b/slides/src/control.md
@@ -36,7 +36,7 @@ fn main() {
 
 ## La boucle infinie: `loop`
 
-```rust [] ignore
+```rust ignore []
 fn main() {
     loop {
         println!("En boucle!");
diff --git a/slides/src/errors.md b/slides/src/errors.md
index eb96c9c11a54cad331de84d1d0839e5aa7812041..4d98114e26dcb7db1067de6d57c7fccf65f27e3b 100644
--- a/slides/src/errors.md
+++ b/slides/src/errors.md
@@ -9,7 +9,7 @@
 
 ## `panic!()`
 
-```rust [2-4|] should_panic
+```rust should_panic [2-4|]
 fn elem(v: &[i32], i: usize) -> i32 {
     if i >= v.len() {
         panic!("Erreur fatale!");
@@ -67,7 +67,7 @@ stack backtrace:
 
 ## Asserts
 
-```rust [4,6,7|] should_panic
+```rust should_panic [4,6,7|]
 fn main() {
     let num = 1;
     let denum = 0;
@@ -131,7 +131,7 @@ fn main() {
 
 ## Options: `unwrap()`
 
-```rust [11|] should_panic
+```rust should_panic [11|]
 fn div(num: i32, denum: i32) -> Option<i32> {
     if denum == 0 {
         None
@@ -179,7 +179,7 @@ fn main() {
 
 ## `unwrap()`
 
-```rust [10|] should_panic
+```rust should_panic [10|]
 fn elem(v: &[i32], i: usize) -> Result<i32, &str> {
     if i >= v.len() {
         return Err("L'index est trop grand!")
@@ -192,4 +192,4 @@ fn main() {
     let res = elem(&v, 100).unwrap();
     println!("L'élément est {}", res);
 }
-```
\ No newline at end of file
+```
diff --git a/slides/src/generics.md b/slides/src/generics.md
index a84135d1316f44b00c01bbe3bf59fd4d237c5488..a96b13f7099ce83186dba2b7b67be2dfe7cef185 100644
--- a/slides/src/generics.md
+++ b/slides/src/generics.md
@@ -27,7 +27,7 @@ fn main() {
 
 ## Exemple avec générique (concept)
 
-```rust [1|2|] compile_fail
+```rust compile_fail [1|2|]
 fn max<T>(a: T, b: T) -> T {
     if a > b { a } else { b }
 }                            
@@ -54,7 +54,7 @@ fn main() {
 
 ## Un seul type générique
 
-```rust [6-7|8|] compile_fail
+```rust compile_fail [6-7|8|]
 struct Point<T> {
     x: T,
     y: T,
diff --git a/slides/src/lifetimes.md b/slides/src/lifetimes.md
index b1d7834c84e47ac4b8c935fa5c8a28ec43752480..4b5f508f63570dfc68957442cf02a76d2be50ae0 100644
--- a/slides/src/lifetimes.md
+++ b/slides/src/lifetimes.md
@@ -7,7 +7,7 @@
 
 ## Problématique
 
-```rust [2|3-6|7|] compile_fail
+```rust compile_fail [2|3-6|7|]
 fn main() {
     let r;
     {
@@ -20,7 +20,7 @@ fn main() {
 
 ## Durée de vie: annotation
 
-```rust [] compile_fail
+```rust compile_fail []
 fn main() {
     let r: &'a i32;        // --------+-- 'a
     {                      //         |
@@ -42,7 +42,7 @@ fn main() {
 
 ## Exemple
 
-```rust [8-13|1,7|] compile_fail
+```rust compile_fail [8-13|1,7|]
 fn longest(x: &str, y: &str) -> &str {
     if x.len() > y.len() {
         x
@@ -82,7 +82,7 @@ fn main() {
 * Ne permet pas d'augmenter une durée de vie,
 * Le compilateur vérifie que la durée de vie est **compatible** avec la durée de vie.
 
-```rust [] ignore
+```rust ignore []
 &T        // référence
 &'a T     // référence avec durée de vie a
 &'a mut T // référence mutable avec durée de vie a
diff --git a/slides/src/methods.md b/slides/src/methods.md
index 4242165f86b5e5009601f9e6d6fa53b81d826cd5..56a7d279e03778377338e4c9189d13645b195f17 100644
--- a/slides/src/methods.md
+++ b/slides/src/methods.md
@@ -45,7 +45,7 @@ fn main() {
 
 ## Le mot-clé `self`
 
-```rust [6-9|10-12|16-18|] compile_fail
+```rust compile_fail [6-9|10-12|16-18|]
 struct Rectangle {
     width: u32,
     height: u32,
diff --git a/slides/src/modules.md b/slides/src/modules.md
index 591faf124ae2ea27d9720bed26902fb2ec991b13..31e55fdf1b3cf0844a5a7c53d1f57d21326464ff 100644
--- a/slides/src/modules.md
+++ b/slides/src/modules.md
@@ -55,7 +55,7 @@ fn main() {
 
 ## Le contenu d'un module est privé
 
-```rust [2-3,6|] compile_fail
+```rust compile_fail [2-3,6|]
 mod hepia {
     fn uni_automne() {
     }
@@ -114,7 +114,7 @@ ecole
 
 ## Les fichiers et visibilité
 
-```rust [1-3|4-6|7-8|9-10|11-12|13-17|] ignore
+```rust ignore [1-3|4-6|7-8|9-10|11-12|13-17|]
 // dans lib.rs
 pub mod hepia;
 pub mod heg;
@@ -153,4 +153,4 @@ pub
    | pub ( self )  // public dans le module courant
    | pub ( super ) // public dans le module parent
    | pub ( in path ) // public dans le path explicite
-```
\ No newline at end of file
+```
diff --git a/slides/src/ownership.md b/slides/src/ownership.md
index 19c914b7776a54b04c93bb0b5c537fc20d8c73b9..281d402bd92fcd80f4415984afe1e19dabf72b28 100644
--- a/slides/src/ownership.md
+++ b/slides/src/ownership.md
@@ -117,7 +117,7 @@ fn main() {
 
 ## Changement de propriétaire: invalide
 
-```rust [7-8|9|] compile_fail
+```rust compile_fail [7-8|9|]
 fn main() {
     let mut y = Vec::new();
     for i in 0..5 {
@@ -167,7 +167,7 @@ fn main() {
 
 ## Lors du passage en paramètre à une fonction
 
-```rust [1-3,8|] compile_fail
+```rust compile_fail [1-3,8|]
 fn take_own(_v: Vec<i32>) {
 	// on fait des choses
 }
@@ -242,7 +242,7 @@ fn main() {
 
 ## Exemple 2
 
-```rust [1-4,10|] compile_fail
+```rust compile_fail [1-4,10|]
 fn get_len(v: &Vec<i32>) -> usize {
 	v.push(2); // on ajoute 2 à v
 	v.len()
@@ -281,7 +281,7 @@ fn main() {
 
 ## Sans la règle sur la référence mutable
 
-```rust [2|3|4|5-6|] compile_fail
+```rust compile_fail [2|3|4|5-6|]
 fn main() {
     let mut y = Vec::new();
     let z = &y;
diff --git a/slides/src/smart_pointers.md b/slides/src/smart_pointers.md
index 5f5dbcf559a312c074c721dacd8be714a0a03a0b..2eee5f58b304498fefc8c296f9cb65063f87ab87 100644
--- a/slides/src/smart_pointers.md
+++ b/slides/src/smart_pointers.md
@@ -68,7 +68,7 @@ fn main() {
 
 ## Cas pratique: la liste chaînée
 
-```rust [1,4|2-3|1-4|] compile_fail
+```rust compile_fail [1,4|2-3|1-4|]
 enum List {
 	Elem(i32, List),
 	Nil,
diff --git a/slides/src/types.md b/slides/src/types.md
index 3d66c117891d30837c0880aa460604a2a498cc0e..512484ee4836858d064da3d250f165cf7fc45eac 100644
--- a/slides/src/types.md
+++ b/slides/src/types.md
@@ -48,7 +48,7 @@ fn main() {
 
 - La conversion implicite **n'existe pas**.
 
-```rust [2|] compile_fail
+```rust compile_fail [2|]
 fn main() {
     let x:i64 = 5i32; // entier 32 bits dans une variable 64 bits
 }
@@ -66,7 +66,7 @@ fn main() {
 ## Les entiers (3/3)
 
 - Le dépassement de capacité est **interdit**.
-```rust [4|] compile_fail
+```rust compile_fail [4|]
 fn main() {
     let x:i32 = 12345678; 
     let y:i32 = 12345678; 
@@ -84,7 +84,7 @@ fn main() {
 
 - On ne **peut pas** convertir implicitement d'un type à un autre.
 
-```rust [2|] compile_fail
+```rust compile_fail [2|]
 fn main() {
     let x:f64 = 3.14159265359f32; // flottant 32 bits en flottant 64 bits
 }
diff --git a/slides/src/types_avances.md b/slides/src/types_avances.md
index 76b1b4c529fa48cef0e1ae55142f120655a4c539..c808e65e11cb53d2c3c43d4967da4e5233309f1e 100644
--- a/slides/src/types_avances.md
+++ b/slides/src/types_avances.md
@@ -239,7 +239,7 @@ fn main() {
 
 ## `match`: bras manquant
 
-```rust [8-10|] compile_fail
+```rust compile_fail [8-10|]
 enum TypeEnum {
     Id1,
     Id2,
diff --git a/slides/src/variables.md b/slides/src/variables.md
index fff742a40241fe4bda6129b2777b66d2e9dd8b68..5f4077cf210e8bf2bcd869c240c520c830c29c8e 100644
--- a/slides/src/variables.md
+++ b/slides/src/variables.md
@@ -40,7 +40,7 @@ fn main() {
 
 ## Interdiction: utilisation sans initialisation
 
-```rust  [2-3|] compile_fail
+```rust compile_fail [2-3|]
 fn main() {
     let x: i32;
     println!("La valeur de x est: {}", x);
@@ -60,7 +60,7 @@ fn main() {
 
 ## Portée: pas ok
 
-```rust [2-5|6|] compile_fail
+```rust compile_fail [2-5|6|]
 fn main() {
     {
         let x = 5; 
@@ -88,7 +88,7 @@ fn main() {
 
 ## Mutabilité/**Immutabilité**
 
-```rust [2|3|] compile_fail
+```rust compile_fail [2|3|]
 fn main() {
     let x = 5; // variable immutable
     x = 6;     // interdit
diff --git a/slides/src/vec.md b/slides/src/vec.md
index 44018d4cab366b630b1cb982defaf108d3a385cf..0984df721d83aab06980d8b4063f44b3b0c9f3f3 100644
--- a/slides/src/vec.md
+++ b/slides/src/vec.md
@@ -63,7 +63,7 @@ fn main() { // Prob: on veut modifier v[1]
 
 ## Modification d'élément (version 2)
 
-```rust [3] compile_fail
+```rust compile_fail [3]
 fn main() {
     let v = vec![1, 2, 3, 4];
     let mut elem = &v[1]; // que se passe-t-il à votre avis?
@@ -74,7 +74,7 @@ fn main() {
 
 ## Modification d'élément (version 3)
 
-```rust [2,3|6|] compile_fail
+```rust compile_fail [2,3|6|]
 fn main() {
     let v = vec![1, 2, 3, 4];
     let mut elem = &mut v[1]; // que se passe-t-il à votre avis?
@@ -85,7 +85,7 @@ fn main() {
 
 ## Modification d'élément (version 4)
 
-```rust [3-6|7|] compile_fail
+```rust compile_fail [3-6|7|]
 fn main() {
     let mut v = vec![1, 2, 3, 4];
     let mut elem = &mut v[1]; // que se passe-t-il à votre avis?