{"id":5321,"date":"2025-03-16T06:13:24","date_gmt":"2025-03-16T04:13:24","guid":{"rendered":"https:\/\/www.estudiodefrances.com\/?p=5321"},"modified":"2025-03-17T09:56:47","modified_gmt":"2025-03-17T07:56:47","slug":"revision-de-grammaire-niveau-b1-sur-les-points-suivants-accords-du-participe-passe-subjonctif-et-indicatif-le-gerondif-cause-et-consequence-les-pronoms-relatifs-qui-que-dont-les-temps-du-pa","status":"publish","type":"post","link":"https:\/\/www.estudiodefrances.com\/?p=5321","title":{"rendered":"R\u00e9vision de 8 points de grammaire niveau B1, r\u00e8gles avec exercices."},"content":{"rendered":"\n<figure class=\"wp-block-video\"><video height=\"674\" style=\"aspect-ratio: 898 \/ 674;\" width=\"898\" controls src=\"https:\/\/www.estudiodefrances.com\/wp-content\/uploads\/revision-grammaire.mp4\"><\/video><\/figure>\n\n\n\n<!DOCTYPE html>\n<html lang=\"fr\">\n<head>\n  <meta charset=\"UTF-8\">\n  <title>Exercices de grammaire fran\u00e7aise<\/title>\n  <style>\n    \/* Importation de Google Fonts *\/\n    @import url('https:\/\/fonts.googleapis.com\/css2?family=Roboto:wght@400;500;700&display=swap');\n\n    \/* R\u00e9glages globaux *\/\n    html { scroll-behavior: smooth; }\n    body {\n      background: #f4f7f9;\n      font-family: 'Roboto', sans-serif;\n      margin: 0;\n      padding: 20px;\n      color: #333;\n    }\n    \/* Container principal *\/\n    #container {\n      max-width: 1000px;\n      margin: 40px auto;\n      background: #fff;\n      padding: 30px 40px;\n      border-radius: 8px;\n      box-shadow: 0 8px 16px rgba(0,0,0,0.1);\n    }\n    h1 {\n      text-align: center;\n      margin-bottom: 30px;\n      color: #0073aa;\n    }\n    \/* Style pour les sections et le\u00e7on *\/\n    .lesson {\n      background: #e1f0fb;\n      border-left: 6px solid #0073aa;\n      padding: 12px 16px;\n      margin: 20px 0;\n      font-weight: 700;\n      color: #0073aa;\n      border-radius: 4px;\n    }\n    details {\n      margin-bottom: 20px;\n      border: 1px solid #cbd5e0;\n      border-radius: 8px;\n      background: #fff;\n      padding: 15px;\n    }\n    summary {\n      font-weight: 700;\n      cursor: pointer;\n      padding: 10px;\n      background: #0073aa;\n      color: #fff;\n      border-radius: 4px;\n    }\n    .section-content { margin-top: 15px; }\n    .btn-rule {\n      display: inline-block;\n      margin-bottom: 10px;\n      padding: 8px 16px;\n      background: #d9534f;\n      color: #fff;\n      border: none;\n      border-radius: 4px;\n      cursor: pointer;\n      font-weight: 500;\n      transition: background 0.3s ease;\n    }\n    .btn-rule:hover { background: #c9302c; }\n    .rule-detail {\n      background: #f0f8ff;\n      border-left: 4px solid #0073aa;\n      padding: 12px 16px;\n      margin-bottom: 15px;\n      border-radius: 4px;\n      display: none;\n      font-size: 0.95em;\n      line-height: 1.5;\n    }\n    \/* Tableaux *\/\n    table {\n      border-collapse: collapse;\n      margin: 15px auto;\n      width: 90%;\n    }\n    table, th, td { border: 1px solid #cbd5e0; }\n    th, td {\n      padding: 10px 12px;\n      text-align: left;\n    }\n    th { background: #d4edda; font-weight: 700; }\n    \/* Questions *\/\n    .question {\n      background: #f9fafb;\n      border: 1px solid #cbd5e0;\n      border-radius: 6px;\n      padding: 15px;\n      margin: 12px 0;\n      box-shadow: 0 2px 4px rgba(0,0,0,0.05);\n    }\n    .question input[type=\"text\"] {\n      width: 220px;\n      padding: 6px;\n      border: 1px solid #cbd5e0;\n      border-radius: 4px;\n      margin: 5px 0;\n      font-size: 1em;\n    }\n    .voice-passive input[type=\"text\"] { width: 80%; }\n    .question button {\n      padding: 6px 14px;\n      background: #0073aa;\n      color: #fff;\n      border: none;\n      border-radius: 4px;\n      cursor: pointer;\n      font-weight: 500;\n      transition: background 0.3s ease;\n      margin-top: 5px;\n    }\n    .question button:hover { background: #005a87; }\n    .feedback {\n      font-weight: 700;\n      margin-left: 10px;\n      font-size: 0.95em;\n    }\n    .section-summary {\n      background: #f1f5f9;\n      padding: 10px;\n      margin-top: 15px;\n      border-top: 2px solid #0073aa;\n      font-weight: 700;\n      text-align: center;\n      border-radius: 4px;\n      color: #0073aa;\n    }\n    \/* Bouton global de r\u00e9initialisation *\/\n    #controls {\n      text-align: center;\n      margin-bottom: 20px;\n    }\n    #controls button {\n      padding: 10px 20px;\n      background: #005a87;\n      color: #fff;\n      border: none;\n      border-radius: 4px;\n      cursor: pointer;\n      font-size: 1em;\n      font-weight: 700;\n      transition: background 0.3s ease;\n    }\n    #controls button:hover { background: #003f5c; }\n    \/* Barre de progression *\/\n    #progress-container {\n      background: #e2e8f0;\n      border-radius: 4px;\n      overflow: hidden;\n      margin: 20px auto;\n      width: 90%;\n      height: 25px;\n      position: relative;\n    }\n    #progress-bar {\n      background: #0073aa;\n      height: 100%;\n      width: 0%;\n      transition: width 0.4s ease;\n    }\n    #progress-text {\n      position: absolute;\n      width: 100%;\n      text-align: center;\n      top: 0;\n      line-height: 25px;\n      font-weight: 700;\n      color: #fff;\n    }\n    \/* Bilan g\u00e9n\u00e9ral *\/\n    #final-summary {\n      background: #e2e8f0;\n      padding: 12px;\n      margin: 20px auto;\n      border: 2px solid #0073aa;\n      border-radius: 4px;\n      text-align: center;\n      font-weight: 700;\n      color: #0073aa;\n      max-width: 1000px;\n    }\n    @media (max-width: 600px) {\n      #container { padding: 15px; }\n      .question input[type=\"text\"] { width: 100%; }\n    }\n  <\/style>\n<\/head>\n<body>\n  <div id=\"container\">\n    <h1>Exercices de grammaire fran\u00e7aise<\/h1>\n    \n    <!-- Introduction -->\n    <div class=\"lesson\">\n      Bienvenue dans vos exercices de grammaire\u202f! Ce document regroupe 8 points de grammaire avec explications, tableaux et exercices interactifs.\n    <\/div>\n    \n    <!-- Bouton de r\u00e9initialisation -->\n    <div id=\"controls\">\n      <button onclick=\"resetAll()\">R\u00e9initialiser<\/button>\n    <\/div>\n    \n    <!-- Barre de progression -->\n    <div id=\"progress-container\">\n      <div id=\"progress-bar\"><\/div>\n      <span id=\"progress-text\">0 \/ 80<\/span>\n    <\/div>\n    \n    <!-- SECTION 1 : Accord du participe pass\u00e9 -->\n    <details id=\"section1\">\n      <summary>L&rsquo;accord du participe pass\u00e9<\/summary>\n      <div class=\"section-content\">\n        <button class=\"btn-rule\" onclick=\"toggleRule(this)\">Voir la r\u00e8gle<\/button>\n        <div class=\"rule-detail\">\n          <p><strong>R\u00e8gle :<\/strong><\/p>\n          <ul>\n            <li><em>Avec \u00eatre<\/em> : le participe pass\u00e9 s&rsquo;accorde avec le sujet (ex. : <em>Elle est partie<\/em>).<\/li>\n            <li><em>Avec avoir<\/em> : l&rsquo;accord se fait seulement si le COD pr\u00e9c\u00e8de le verbe (ex. : <em>Les pommes qu\u2019il a mang\u00e9es<\/em>), sinon il reste invariable (ex. : <em>Il a mang\u00e9 des pommes<\/em>).<\/li>\n            <li>Les verbes pronominaux peuvent suivre l&rsquo;une ou l&rsquo;autre r\u00e8gle.<\/li>\n          <\/ul>\n          <table>\n            <tr>\n              <th>Cas<\/th>\n              <th>Accord<\/th>\n              <th>Exemple<\/th>\n            <\/tr>\n            <tr>\n              <td>Avec \u00eatre<\/td>\n              <td>Accord avec le sujet<\/td>\n              <td>Elle est partie.<\/td>\n            <\/tr>\n            <tr>\n              <td>Avec avoir (COD apr\u00e8s)<\/td>\n              <td>Pas d\u2019accord<\/td>\n              <td>Il a mang\u00e9 des pommes.<\/td>\n            <\/tr>\n            <tr>\n              <td>Avec avoir (COD avant)<\/td>\n              <td>Accord avec le COD<\/td>\n              <td>Les pommes qu\u2019il a mang\u00e9es.<\/td>\n            <\/tr>\n            <tr>\n              <td>Verbes pronominaux (COD)<\/td>\n              <td>Accord avec le sujet<\/td>\n              <td>Elle s\u2019est lav\u00e9e.<\/td>\n            <\/tr>\n            <tr>\n              <td>Verbes pronominaux (COI)<\/td>\n              <td>Pas d\u2019accord<\/td>\n              <td>Elle s\u2019est lav\u00e9 les mains.<\/td>\n            <\/tr>\n          <\/table>\n        <\/div>\n        <h3>Exercices :<\/h3>\n        <div class=\"question\">\n          1. Il a pris les affaires qu\u2019il avait <input type=\"text\" id=\"q1\" size=\"10\"> (<em>pr\u00e9parer<\/em>)  \n          <button onclick=\"checkAnswer('q1', 'pr\u00e9par\u00e9es')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q1\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          2. Elle est <input type=\"text\" id=\"q2\" size=\"10\"> en avance (<em>arriver<\/em>)  \n          <button onclick=\"checkAnswer('q2', 'arriv\u00e9e')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q2\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          3. Les lettres qu\u2019il a <input type=\"text\" id=\"q3\" size=\"10\"> sont touchantes (<em>\u00e9crire<\/em>)  \n          <button onclick=\"checkAnswer('q3', '\u00e9crites')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q3\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          4. Ils se sont <input type=\"text\" id=\"q4\" size=\"10\"> t\u00f4t (<em>lever<\/em>)  \n          <button onclick=\"checkAnswer('q4', 'lev\u00e9s')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q4\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          5. Elle s\u2019est <input type=\"text\" id=\"q5\" size=\"10\"> les cheveux (<em>laver<\/em>)  \n          <button onclick=\"checkAnswer('q5', 'lav\u00e9')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q5\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          6. Il a <input type=\"text\" id=\"q6\" size=\"10\"> les livres (<em>ranger<\/em>)  \n          <button onclick=\"checkAnswer('q6', 'rang\u00e9')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q6\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          7. Les robes que tu as <input type=\"text\" id=\"q7\" size=\"10\"> sont jolies (<em>choisir<\/em>)  \n          <button onclick=\"checkAnswer('q7', 'choisies')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q7\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          8. Elle s\u2019est <input type=\"text\" id=\"q8\" size=\"10\"> au bras (<em>blesser<\/em>)  \n          <button onclick=\"checkAnswer('q8', 'bless\u00e9')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q8\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          9. Ils ont <input type=\"text\" id=\"q9\" size=\"10\"> tous les g\u00e2teaux (<em>manger<\/em>)  \n          <button onclick=\"checkAnswer('q9', 'mang\u00e9')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q9\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          10. La voiture que j&rsquo;ai <input type=\"text\" id=\"q10\" size=\"10\"> est rouge (<em>acheter<\/em>)  \n          <button onclick=\"checkAnswer('q10', 'achet\u00e9e')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q10\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"section-summary\"><\/div>\n      <\/div>\n    <\/details>\n    \n    <!-- SECTION 2 : Subjonctif \/ Indicatif -->\n    <details id=\"section2\">\n      <summary>Subjonctif \/ Indicatif<\/summary>\n      <div class=\"section-content\">\n        <button class=\"btn-rule\" onclick=\"toggleRule(this)\">Voir la r\u00e8gle<\/button>\n        <div class=\"rule-detail\">\n          <p style=\"font-size:1.1em; font-weight:700; color:#0073aa;\">Explication :<\/p>\n          <p>Utilisez le <em>subjonctif<\/em> pour exprimer des souhaits, des doutes, des n\u00e9cessit\u00e9s ou des \u00e9motions et l&rsquo;<em>indicatif<\/em> pour rapporter des faits ou des certitudes.<\/p>\n          <p>Exemple de d\u00e9clencheurs :<\/p>\n          <table style=\"background-color:#f7f7f7;\">\n            <tr>\n              <th style=\"background-color:#f8d7da;\">Subjonctif<\/th>\n              <th style=\"background-color:#d4edda;\">Indicatif<\/th>\n            <\/tr>\n            <tr>\n              <td>\n                Je veux que, j&rsquo;aimerais que, je souhaite que, je suis content que,<br>\n                il est essentiel que \/ il est n\u00e9cessaire que \/ il est indispensable que<br>\n                (avec n\u00e9gation : ex. \u00ab Je ne pense pas que\u2026 \u00bb)\n              <\/td>\n              <td>\n                Je suis s\u00fbr que, je suis certain que, j\u2019esp\u00e8re que, je trouve que, je pense que, je crois que<br>\n                <em>(Note : Certains d\u00e9clencheurs passent du subjonctif \u00e0 l\u2019indicatif en cas de n\u00e9gation.)<\/em>\n              <\/td>\n            <\/tr>\n          <\/table>\n        <\/div>\n        <h3>Exercices :<\/h3>\n        <div class=\"question\">\n          1. Je souhaite que tu <input type=\"text\" id=\"q11\" size=\"10\"> (<em>venir<\/em>, \u00ab\u00a0Je souhaite que\u00a0\u00bb)  \n          <button onclick=\"checkAnswer('q11', 'viennes')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q11\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          2. Il faut que tu <input type=\"text\" id=\"q14\" size=\"10\"> r\u00e9guli\u00e8rement (<em>r\u00e9viser<\/em>, \u00ab\u00a0Il faut que\u00a0\u00bb)  \n          <button onclick=\"checkAnswer('q14', 'r\u00e9vises')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q14\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          3. Elle esp\u00e8re qu\u2019il <input type=\"text\" id=\"q15\" size=\"10\"> (<em>r\u00e9ussir<\/em>, \u00ab\u00a0Elle esp\u00e8re que\u00a0\u00bb)  \n          <button onclick=\"checkAnswer('q15', 'r\u00e9ussit')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q15\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          4. Je doute qu\u2019il <input type=\"text\" id=\"q16\" size=\"10\"> (<em>comprendre<\/em>, \u00ab\u00a0Je doute que\u00a0\u00bb)  \n          <button onclick=\"checkAnswer('q16', 'comprenne')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q16\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          5. Je suis s\u00fbr qu\u2019il <input type=\"text\" id=\"q17\" size=\"10\"> la v\u00e9rit\u00e9 (<em>dire<\/em>, \u00ab\u00a0Je suis s\u00fbr que\u00a0\u00bb)  \n          <button onclick=\"checkAnswer('q17', 'dit')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q17\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          6. Je ne crois pas qu\u2019il <input type=\"text\" id=\"q18\" size=\"10\"> tort (<em>avoir<\/em>, \u00ab\u00a0Je ne crois pas que\u00a0\u00bb)  \n          <button onclick=\"checkAnswer('q18', 'ait')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q18\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          7. Il est essentiel que tu <input type=\"text\" id=\"q19\" size=\"10\"> (<em>participer<\/em>, \u00ab\u00a0Il est essentiel que\u00a0\u00bb)  \n          <button onclick=\"checkAnswer('q19', 'participes')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q19\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          8. Je crois qu\u2019il <input type=\"text\" id=\"q20\" size=\"10\"> la r\u00e9ponse (<em>savoir<\/em>, \u00ab\u00a0Je crois que\u00a0\u00bb)  \n          <button onclick=\"checkAnswer('q20', 'sait')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q20\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"section-summary\"><\/div>\n      <\/div>\n    <\/details>\n    \n    <!-- SECTION 3 : Le g\u00e9rondif -->\n    <details id=\"section3\">\n      <summary>Le g\u00e9rondif<\/summary>\n      <div class=\"section-content\">\n        <button class=\"btn-rule\" onclick=\"toggleRule(this)\">Voir la r\u00e8gle<\/button>\n        <div class=\"rule-detail\">\n          <p><strong>R\u00e8gle :<\/strong><\/p>\n          <p>Le g\u00e9rondif s&rsquo;exprime avec <em>en + participe pr\u00e9sent<\/em> pour indiquer une action simultan\u00e9e, une cause ou une mani\u00e8re (ex. : <em>en \u00e9coutant de la musique<\/em>).<\/p>\n          <table>\n            <tr>\n              <th>Fonction<\/th>\n              <th>Exemple<\/th>\n            <\/tr>\n            <tr>\n              <td>Simultan\u00e9it\u00e9<\/td>\n              <td>Elle lit en \u00e9coutant de la musique.<\/td>\n            <\/tr>\n            <tr>\n              <td>Cause<\/td>\n              <td>En r\u00e9visant, elle a r\u00e9ussi.<\/td>\n            <\/tr>\n            <tr>\n              <td>Mani\u00e8re<\/td>\n              <td>Il apprend en r\u00e9p\u00e9tant les phrases.<\/td>\n            <\/tr>\n          <\/table>\n        <\/div>\n        <h3>Exercices :<\/h3>\n        <div class=\"question\">\n          1. Il s\u2019est bless\u00e9 <input type=\"text\" id=\"q21\" size=\"15\"> (<em>courir<\/em>, \u00ab\u00a0Il s\u2019est bless\u00e9\u00a0\u00bb)  \n          <button onclick=\"checkAnswer('q21', 'en courant')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q21\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          2. Elle r\u00e9vise ses cours <input type=\"text\" id=\"q22\" size=\"15\"> (<em>\u00e9couter<\/em>, \u00ab\u00a0Elle r\u00e9vise\u00a0\u00bb)  \n          <button onclick=\"checkAnswer('q22', 'en \u00e9coutant')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q22\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          3. Il am\u00e9liore son niveau <input type=\"text\" id=\"q23\" size=\"15\"> (<em>travailler<\/em>, \u00ab\u00a0Il am\u00e9liore\u00a0\u00bb)  \n          <button onclick=\"checkAnswer('q23', 'en travaillant')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q23\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          4. Elle a progress\u00e9 <input type=\"text\" id=\"q24\" size=\"15\"> (<em>lire<\/em>, \u00ab\u00a0Elle a progress\u00e9\u00a0\u00bb)  \n          <button onclick=\"checkAnswer('q24', 'en lisant')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q24\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          5. Il parle <input type=\"text\" id=\"q25\" size=\"15\"> (<em>marcher<\/em>, \u00ab\u00a0Il parle\u00a0\u00bb)  \n          <button onclick=\"checkAnswer('q25', 'en marchant')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q25\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          6. Elle apprend <input type=\"text\" id=\"q26\" size=\"15\"> (<em>regarder<\/em>, \u00ab\u00a0Elle apprend\u00a0\u00bb)  \n          <button onclick=\"checkAnswer('q26', 'en regardant')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q26\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          7. Il a r\u00e9ussi <input type=\"text\" id=\"q27\" size=\"15\"> (<em>r\u00e9p\u00e9ter<\/em>, \u00ab\u00a0Il a r\u00e9ussi\u00a0\u00bb)  \n          <button onclick=\"checkAnswer('q27', 'en r\u00e9p\u00e9tant')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q27\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          8. Elle s\u2019est endormie <input type=\"text\" id=\"q28\" size=\"15\"> (<em>regarder<\/em>, \u00ab\u00a0Elle s\u2019est endormie\u00a0\u00bb)  \n          <button onclick=\"checkAnswer('q28', 'en regardant')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q28\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          9. Il a compris <input type=\"text\" id=\"q29\" size=\"15\"> (<em>\u00e9tudier<\/em>, \u00ab\u00a0Il a compris\u00a0\u00bb)  \n          <button onclick=\"checkAnswer('q29', 'en \u00e9tudiant')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q29\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          10. Il am\u00e9liore son fran\u00e7ais <input type=\"text\" id=\"q30\" size=\"15\"> (<em>\u00e9couter<\/em>, \u00ab\u00a0Il am\u00e9liore\u00a0\u00bb)  \n          <button onclick=\"checkAnswer('q30', 'en \u00e9coutant')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q30\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"section-summary\"><\/div>\n      <\/div>\n    <\/details>\n    \n    <!-- SECTION 4 : Cause \/ Cons\u00e9quence (QCM) -->\n    <details id=\"section4\">\n      <summary>Cause \/ Cons\u00e9quence (QCM)<\/summary>\n      <div class=\"section-content\">\n        <button class=\"btn-rule\" onclick=\"toggleRule(this)\">Voir la r\u00e8gle<\/button>\n        <div class=\"rule-detail\">\n          <p><strong>R\u00e8gle \u2013 Connecteurs :<\/strong><\/p>\n          <p><strong>La cause :<\/strong> Utilisez des connecteurs tels que <em>parce que, gr\u00e2ce \u00e0 + nom, \u00e0 cause de + nom, puisque, car, comme, \u00e9tant donn\u00e9 que<\/em>.<\/p>\n          <p><strong>La cons\u00e9quence :<\/strong> Utilisez des connecteurs tels que <em>alors, si bien que, c\u2019est pourquoi, par cons\u00e9quent, donc, d\u2019o\u00f9, du coup<\/em><br>(Note : \u00ab du coup \u00bb est surtout utilis\u00e9 \u00e0 l\u2019oral.)<\/p>\n          <table style=\"background-color:#f7f7f7;\">\n            <tr>\n              <th style=\"background-color:#d4edda;\">Connecteurs de cause<\/th>\n              <th style=\"background-color:#d4edda;\">Connecteurs de cons\u00e9quence<\/th>\n            <\/tr>\n            <tr>\n              <td>\n                parce que<br>\n                gr\u00e2ce \u00e0 + nom<br>\n                \u00e0 cause de + nom<br>\n                puisque<br>\n                car<br>\n                comme<br>\n                \u00e9tant donn\u00e9 que\n              <\/td>\n              <td>\n                alors<br>\n                si bien que<br>\n                c\u2019est pourquoi<br>\n                par cons\u00e9quent<br>\n                donc<br>\n                d\u2019o\u00f9<br>\n                du coup\n              <\/td>\n            <\/tr>\n          <\/table>\n        <\/div>\n        <h3>Exercices (QCM) :<\/h3>\n        <div class=\"question qcm\">\n          <p>1. Il a rat\u00e9 son train, ______ il est arriv\u00e9 en retard au travail.<\/p>\n          <div class=\"options\" id=\"q31-options\">\n            <label><input type=\"radio\" name=\"q31\" value=\"parce que\"> parce que<\/label>\n            <label><input type=\"radio\" name=\"q31\" value=\"donc\"> donc<\/label>\n            <label><input type=\"radio\" name=\"q31\" value=\"\u00e0 cause de\"> \u00e0 cause de<\/label>\n          <\/div>\n          <button onclick=\"checkMCQ('q31', 'donc')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q31\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question qcm\">\n          <p>2. Elle a obtenu son dipl\u00f4me ______ ses efforts constants.<\/p>\n          <div class=\"options\" id=\"q32-options\">\n            <label><input type=\"radio\" name=\"q32\" value=\"gr\u00e2ce \u00e0\"> gr\u00e2ce \u00e0<\/label>\n            <label><input type=\"radio\" name=\"q32\" value=\"donc\"> donc<\/label>\n            <label><input type=\"radio\" name=\"q32\" value=\"si bien que\"> si bien que<\/label>\n          <\/div>\n          <button onclick=\"checkMCQ('q32', 'gr\u00e2ce \u00e0')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q32\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question qcm\">\n          <p>3. Il n\u2019est pas venu ______ il \u00e9tait malade.<\/p>\n          <div class=\"options\" id=\"q33-options\">\n            <label><input type=\"radio\" name=\"q33\" value=\"c\u2019est pourquoi\"> c\u2019est pourquoi<\/label>\n            <label><input type=\"radio\" name=\"q33\" value=\"car\"> car<\/label>\n            <label><input type=\"radio\" name=\"q33\" value=\"de sorte que\"> de sorte que<\/label>\n          <\/div>\n          <button onclick=\"checkMCQ('q33', 'car')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q33\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question qcm\">\n          <p>4. Il a eu un accident ______ la route \u00e9tait glissante.<\/p>\n          <div class=\"options\" id=\"q34-options\">\n            <label><input type=\"radio\" name=\"q34\" value=\"c\u2019est pourquoi\"> c\u2019est pourquoi<\/label>\n            <label><input type=\"radio\" name=\"q34\" value=\"si bien que\"> si bien que<\/label>\n            <label><input type=\"radio\" name=\"q34\" value=\"parce que\"> parce que<\/label>\n          <\/div>\n          <button onclick=\"checkMCQ('q34', 'parce que')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q34\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question qcm\">\n          <p>5. Le moteur est tomb\u00e9 en panne, ______ la voiture ne d\u00e9marrait plus.<\/p>\n          <div class=\"options\" id=\"q35-options\">\n            <label><input type=\"radio\" name=\"q35\" value=\"donc\"> donc<\/label>\n            <label><input type=\"radio\" name=\"q35\" value=\"parce que\"> parce que<\/label>\n            <label><input type=\"radio\" name=\"q35\" value=\"\u00e0 cause de\"> \u00e0 cause de<\/label>\n          <\/div>\n          <button onclick=\"checkMCQ('q35', 'donc')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q35\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question qcm\">\n          <p>6. ______ il a \u00e9tudi\u00e9 toute la nuit, il a bien r\u00e9ussi son examen.<\/p>\n          <div class=\"options\" id=\"q36-options\">\n            <label><input type=\"radio\" name=\"q36\" value=\"Gr\u00e2ce \u00e0\"> Gr\u00e2ce \u00e0<\/label>\n            <label><input type=\"radio\" name=\"q36\" value=\"Comme\"> Comme<\/label>\n            <label><input type=\"radio\" name=\"q36\" value=\"Alors\"> Alors<\/label>\n          <\/div>\n          <button onclick=\"checkMCQ('q36', 'Comme')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q36\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question qcm\">\n          <p>7. Elle est stress\u00e9e ______ son travail.<\/p>\n          <div class=\"options\" id=\"q37-options\">\n            <label><input type=\"radio\" name=\"q37\" value=\"gr\u00e2ce \u00e0\"> gr\u00e2ce \u00e0<\/label>\n            <label><input type=\"radio\" name=\"q37\" value=\"\u00e0 cause de\"> \u00e0 cause de<\/label>\n            <label><input type=\"radio\" name=\"q37\" value=\"si bien que\"> si bien que<\/label>\n          <\/div>\n          <button onclick=\"checkMCQ('q37', '\u00e0 cause de')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q37\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question qcm\">\n          <p>8. Il travaille dur, ______ il esp\u00e8re une promotion.<\/p>\n          <div class=\"options\" id=\"q38-options\">\n            <label><input type=\"radio\" name=\"q38\" value=\"donc\"> donc<\/label>\n            <label><input type=\"radio\" name=\"q38\" value=\"parce que\"> parce que<\/label>\n            <label><input type=\"radio\" name=\"q38\" value=\"car\"> car<\/label>\n          <\/div>\n          <button onclick=\"checkMCQ('q38', 'donc')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q38\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question qcm\">\n          <p>9. Il a cri\u00e9 tr\u00e8s fort, ______ tout le monde s\u2019est retourn\u00e9.<\/p>\n          <div class=\"options\" id=\"q39-options\">\n            <label><input type=\"radio\" name=\"q39\" value=\"de sorte que\"> de sorte que<\/label>\n            <label><input type=\"radio\" name=\"q39\" value=\"\u00e0 cause de\"> \u00e0 cause de<\/label>\n            <label><input type=\"radio\" name=\"q39\" value=\"car\"> car<\/label>\n          <\/div>\n          <button onclick=\"checkMCQ('q39', 'de sorte que')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q39\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question qcm\">\n          <p>10. ______ il pleuvait, nous sommes rest\u00e9s \u00e0 la maison.<\/p>\n          <div class=\"options\" id=\"q40-options\">\n            <label><input type=\"radio\" name=\"q40\" value=\"De sorte que\"> De sorte que<\/label>\n            <label><input type=\"radio\" name=\"q40\" value=\"Parce que\"> Parce que<\/label>\n            <label><input type=\"radio\" name=\"q40\" value=\"Donc\"> Donc<\/label>\n          <\/div>\n          <button onclick=\"checkMCQ('q40', 'Parce que')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q40\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"section-summary\"><\/div>\n      <\/div>\n    <\/details>\n    \n    <!-- SECTION 5 : Pronoms relatifs -->\n    <details id=\"section5\">\n      <summary>Pronoms relatifs<\/summary>\n      <div class=\"section-content\">\n        <button class=\"btn-rule\" onclick=\"toggleRule(this)\">Voir la r\u00e8gle<\/button>\n        <div class=\"rule-detail\">\n          <p><strong>R\u00e8gle :<\/strong><\/p>\n          <ul>\n            <li><strong>qui<\/strong> remplace le sujet  \n                <em>(ex. : Le professeur qui enseigne est comp\u00e9tent.)<\/em>\n            <\/li>\n            <li><strong>que<\/strong> remplace le compl\u00e9ment d&rsquo;objet direct  \n                <em>(ex. : Le livre que j&rsquo;ai lu \u00e9tait captivant.)<\/em>\n            <\/li>\n            <li><strong>o\u00f9<\/strong> remplace un compl\u00e9ment de lieu ou de temps  \n                <em>(ex. : La ville o\u00f9 nous vivons est anim\u00e9e.)<\/em>\n            <\/li>\n            <li><strong>dont<\/strong> remplace un compl\u00e9ment introduit par \u00ab\u00a0de\u00a0\u00bb  \n                <em>(ex. : L&rsquo;ami fran\u00e7ais dont je me souviens s&rsquo;appelle David.)<\/em>\n            <\/li>\n          <\/ul>\n          <p><strong>Liste de verbes fr\u00e9quents avec \u00ab\u00a0dont\u00a0\u00bb :<\/strong> se souvenir de, parler de, d\u00e9pendre de, profiter de, se servir de, se m\u00e9fier de, avoir besoin de.<\/p>\n        <\/div>\n        <h3>Exercices :<\/h3>\n        <div class=\"question\">\n          1. L&rsquo;homme <input type=\"text\" id=\"q41\" size=\"10\"> parle est mon oncle.  \n          <button onclick=\"checkAnswer('q41', 'qui')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q41\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          2. Le livre <input type=\"text\" id=\"q42\" size=\"10\"> j&rsquo;ai lu \u00e9tait captivant.  \n          <button onclick=\"checkAnswer('q42', 'que')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q42\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          3. La ville <input type=\"text\" id=\"q43\" size=\"10\"> je suis n\u00e9 est magnifique.  \n          <button onclick=\"checkAnswer('q43', 'o\u00f9')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q43\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          4. L&rsquo;ami fran\u00e7ais <input type=\"text\" id=\"q44\" size=\"10\"> je me souviens s&rsquo;appelle David.  \n          <button onclick=\"checkAnswer('q44', 'dont')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q44\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          5. Le film <input type=\"text\" id=\"q45\" size=\"10\"> est au cin\u00e9ma est un film de science-fiction.  \n          <button onclick=\"checkAnswer('q45', 'qui')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q45\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          6. Le livre <input type=\"text\" id=\"q46\" size=\"10\"> tu m&rsquo;as pr\u00eat\u00e9 \u00e9tait passionnant.  \n          <button onclick=\"checkAnswer('q46', 'que')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q46\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          7. Le professeur <input type=\"text\" id=\"q47\" size=\"10\"> corrige les copies est comp\u00e9tent.  \n          <button onclick=\"checkAnswer('q47', 'qui')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q47\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          8. La maison <input type=\"text\" id=\"q48\" size=\"10\"> j&rsquo;ai grandi est charmante.  \n          <button onclick=\"checkAnswer('q48', 'o\u00f9')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q48\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          9. Le roman <input type=\"text\" id=\"q49\" size=\"10\"> il a parl\u00e9 est un best-seller.  \n          <button onclick=\"checkAnswer('q49', 'dont')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q49\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          10. La voiture <input type=\"text\" id=\"q50\" size=\"10\"> j&rsquo;ai achet\u00e9e est rouge.  \n          <button onclick=\"checkAnswer('q50', 'que')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q50\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"section-summary\"><\/div>\n      <\/div>\n    <\/details>\n    \n    <!-- SECTION 6 : Temps verbaux -->\n    <details id=\"section6\">\n      <summary>Imparfait \/ Pass\u00e9 compos\u00e9 \/ Plus-que-parfait<\/summary>\n      <div class=\"section-content\">\n        <button class=\"btn-rule\" onclick=\"toggleRule(this)\">Voir la r\u00e8gle<\/button>\n        <div class=\"rule-detail\">\n          <p><strong>R\u00e8gle :<\/strong><\/p>\n          <p>Choisissez le temps en fonction du contexte :<\/p>\n          <ul>\n            <li><em>Imparfait<\/em> : Pour d\u00e9crire une habitude ou une description dans le pass\u00e9  \n                <em>(ex. : Quand j\u2019\u00e9tais petit, je jouais au parc.)<\/em><\/li>\n            <li><em>Pass\u00e9 compos\u00e9<\/em> : Pour une action ponctuelle  \n                <em>(ex. : Hier, je suis all\u00e9 au cin\u00e9ma.)<\/em><\/li>\n            <li><em>Plus-que-parfait<\/em> : Pour une action ant\u00e9rieure \u00e0 une autre action pass\u00e9e  \n                <em>(ex. : Il avait mang\u00e9 avant qu\u2019on arrive.)<\/em><\/li>\n          <\/ul>\n          <table>\n            <tr>\n              <th>Temps<\/th>\n              <th>Usage<\/th>\n              <th>Exemple<\/th>\n            <\/tr>\n            <tr>\n              <td>Imparfait<\/td>\n              <td>Habitude\/Description<\/td>\n              <td>Quand j\u2019\u00e9tais petit, je jouais au parc.<\/td>\n            <\/tr>\n            <tr>\n              <td>Pass\u00e9 compos\u00e9<\/td>\n              <td>Action ponctuelle<\/td>\n              <td>Hier, je suis all\u00e9 au cin\u00e9ma.<\/td>\n            <\/tr>\n            <tr>\n              <td>Plus-que-parfait<\/td>\n              <td>Action ant\u00e9rieure<\/td>\n              <td>Il avait mang\u00e9 avant qu\u2019on arrive.<\/td>\n            <\/tr>\n          <\/table>\n        <\/div>\n        <h3>Exercices :<\/h3>\n        <div class=\"question\">\n          1. Quand j\u2019<input type=\"text\" id=\"q51\" size=\"10\"> petit, je jouais au foot.  \n          <button onclick=\"checkAnswer('q51', '\u00e9tais')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q51\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          2. Hier, je <input type=\"text\" id=\"q52\" size=\"10\"> au cin\u00e9ma.  \n          <button onclick=\"checkAnswer('q52', 'suis all\u00e9')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q52\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          3. Il <input type=\"text\" id=\"q53\" size=\"10\"> d\u00e9j\u00e0 mang\u00e9 quand je suis arriv\u00e9.  \n          <button onclick=\"checkAnswer('q53', 'avait')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q53\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          4. Elle <input type=\"text\" id=\"q54\" size=\"10\"> la t\u00e9l\u00e9 quand il est entr\u00e9.  \n          <button onclick=\"checkAnswer('q54', 'regardait')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q54\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          5. Hier, je <input type=\"text\" id=\"q55\" size=\"10\"> Rome en 2019.  \n          <button onclick=\"checkAnswer('q55', 'ai visit\u00e9')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q55\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          6. Il <input type=\"text\" id=\"q56\" size=\"10\"> tous les jours.  \n          <button onclick=\"checkAnswer('q56', 'travaillait')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q56\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          7. Nous <input type=\"text\" id=\"q57a\" size=\"15\"> quand ils <input type=\"text\" id=\"q57b\" size=\"15\">.  \n          <button onclick=\"checkDoubleAnswer('q57a','q57b','nous \u00e9tions partis','ils sont arriv\u00e9s')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q57\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          8. Elle <input type=\"text\" id=\"q58\" size=\"10\"> heureuse dans son enfance.  \n          <button onclick=\"checkAnswer('q58', '\u00e9tait')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q58\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          9. Il <input type=\"text\" id=\"q59\" size=\"10\"> son travail avant midi.  \n          <button onclick=\"checkAnswer('q59', 'avait termin\u00e9')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q59\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          10. Ils <input type=\"text\" id=\"q60\" size=\"10\"> dehors quand il a commenc\u00e9 \u00e0 pleuvoir.  \n          <button onclick=\"checkAnswer('q60', 'jouaient')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q60\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"section-summary\"><\/div>\n      <\/div>\n    <\/details>\n    \n    <!-- SECTION 7 : Discours direct \/ indirect -->\n    <details id=\"section7\">\n      <summary>Discours direct \/ indirect<\/summary>\n      <div class=\"section-content\">\n        <button class=\"btn-rule\" onclick=\"toggleRule(this)\">Voir la r\u00e8gle<\/button>\n        <!-- Tableau pour discours indirect au pr\u00e9sent -->\n        <div class=\"rule-detail\">\n          <p><strong>Tableau explicatif \u2013 Discours indirect (au pr\u00e9sent)<\/strong><\/p>\n          <table style=\"background-color:#f7f7f7;\">\n            <tr>\n              <th>Types de phrases<\/th>\n              <th>Discours direct<\/th>\n              <th>Discours indirect<\/th>\n            <\/tr>\n            <tr>\n              <td>Phrase affirmative<\/td>\n              <td>\u00ab\u00a0J\u2019aime le chocolat.\u00a0\u00bb<\/td>\n              <td>Il dit qu&rsquo;il aime le chocolat.<\/td>\n            <\/tr>\n            <tr>\n              <td>Question avec \u00ab\u00a0est-ce que\u00a0\u00bb<\/td>\n              <td>\u00ab\u00a0Est-ce que tu viens ?\u00a0\u00bb<\/td>\n              <td>Il demande si je viens.<\/td>\n            <\/tr>\n            <tr>\n              <td>Question avec \u00ab\u00a0qu&rsquo;est-ce que\u00a0\u00bb<\/td>\n              <td>\u00ab\u00a0Qu&rsquo;est-ce que tu fais ?\u00a0\u00bb<\/td>\n              <td>Il demande ce que je fais.<\/td>\n            <\/tr>\n            <tr>\n              <td>Question ouverte<\/td>\n              <td>\u00ab\u00a0O\u00f9 vas-tu ?\u00a0\u00bb<\/td>\n              <td>Il demande o\u00f9 je vais.<\/td>\n            <\/tr>\n            <tr>\n              <td>Exclamation<\/td>\n              <td>\u00ab\u00a0Oh non, c\u2019est horrible!\u00a0\u00bb<\/td>\n              <td>Elle s\u2019exclame que c\u2019est horrible.<\/td>\n            <\/tr>\n            <tr>\n              <td>Imp\u00e9ratif<\/td>\n              <td>\u00ab\u00a0Ouvre la fen\u00eatre!\u00a0\u00bb<\/td>\n              <td>Il demande d\u2019ouvrir la fen\u00eatre.<\/td>\n            <\/tr>\n          <\/table>\n          <!-- Tableau pour discours indirect au pass\u00e9 -->\n          <p style=\"margin-top:20px;\"><strong>Tableau explicatif \u2013 Discours indirect (au pass\u00e9)<\/strong><\/p>\n          <table style=\"background-color:#f7f7f7;\">\n            <tr>\n              <th>Type de phrase<\/th>\n              <th>Discours direct<\/th>\n              <th>Discours indirect (au pass\u00e9)<\/th>\n            <\/tr>\n            <tr>\n              <td>Pr\u00e9sent \u2192 Imparfait<\/td>\n              <td>\u00ab\u00a0Je suis fatigu\u00e9.\u00a0\u00bb<\/td>\n              <td>Il a dit qu&rsquo;il \u00e9tait fatigu\u00e9.<\/td>\n            <\/tr>\n            <tr>\n              <td>Pass\u00e9 compos\u00e9 \u2192 Plus-que-parfait<\/td>\n              <td>\u00ab\u00a0J\u2019ai fini mon travail.\u00a0\u00bb<\/td>\n              <td>Elle a dit qu\u2019elle avait fini son travail.<\/td>\n            <\/tr>\n            <tr>\n              <td>Futur simple \u2192 Conditionnel pr\u00e9sent<\/td>\n              <td>\u00ab\u00a0Je partirai demain.\u00a0\u00bb<\/td>\n              <td>Il a dit qu&rsquo;il partirait le lendemain.<\/td>\n            <\/tr>\n            <tr>\n              <td>Futur proche \u2192 Aller \u00e0 l\u2019imparfait + infinitif<\/td>\n              <td>\u00ab\u00a0Je vais partir.\u00a0\u00bb<\/td>\n              <td>Elle a dit qu\u2019elle allait partir.<\/td>\n            <\/tr>\n            <tr>\n              <td>Imparfait \u2192 Imparfait<\/td>\n              <td>\u00ab\u00a0Je dormais.\u00a0\u00bb<\/td>\n              <td>Il a dit qu&rsquo;il dormait.<\/td>\n            <\/tr>\n            <tr>\n              <td>Plus-que-parfait \u2192 Plus-que-parfait<\/td>\n              <td>\u00ab\u00a0J\u2019avais mang\u00e9.\u00a0\u00bb<\/td>\n              <td>Elle a dit qu\u2019elle avait mang\u00e9.<\/td>\n            <\/tr>\n            <tr>\n              <td>Conditionnel pr\u00e9sent \u2192 Conditionnel pr\u00e9sent<\/td>\n              <td>\u00ab\u00a0Je voudrais venir.\u00a0\u00bb<\/td>\n              <td>Il a dit qu&rsquo;il voudrait venir.<\/td>\n            <\/tr>\n            <tr>\n              <td>Conditionnel pass\u00e9 \u2192 Conditionnel pass\u00e9<\/td>\n              <td>\u00ab\u00a0J\u2019aurais aim\u00e9 venir.\u00a0\u00bb<\/td>\n              <td>Elle a dit qu\u2019elle aurait aim\u00e9 venir.<\/td>\n            <\/tr>\n          <\/table>\n        <\/div>\n        \n        <!-- Exercices \u2013 Discours direct au pr\u00e9sent (5 questions) -->\n        <h3>Exercices \u2013 Discours direct au pr\u00e9sent (5 questions)<\/h3>\n        <div class=\"question\">\n          1. Direct : \u00ab\u00a0J\u2019aime le chocolat.\u00a0\u00bb  \n             *(Verbe introducteur : \u00ab\u00a0Il dit que\u00a0\u00bb)*  \n             \u2192 <input type=\"text\" id=\"q61\" size=\"30\">  \n             <button onclick=\"checkAnswer('q61', 'Il dit qu\\'il aime le chocolat.')\">V\u00e9rifier<\/button>\n             <span id=\"fb_q61\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          2. Direct : \u00ab\u00a0Est-ce que tu viens ?\u00a0\u00bb  \n             *(Verbe introducteur : \u00ab\u00a0Il demande si\u00a0\u00bb)*  \n             \u2192 <input type=\"text\" id=\"q62\" size=\"30\">  \n             <button onclick=\"checkAnswer('q62', 'Il demande si je viens.')\">V\u00e9rifier<\/button>\n             <span id=\"fb_q62\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          3. Direct : \u00ab\u00a0Qu&rsquo;est-ce que tu fais ?\u00a0\u00bb  \n             *(Verbe introducteur : \u00ab\u00a0Il demande ce que\u00a0\u00bb)*  \n             \u2192 <input type=\"text\" id=\"q63\" size=\"30\">  \n             <button onclick=\"checkAnswer('q63', 'Il demande ce que je fais.')\">V\u00e9rifier<\/button>\n             <span id=\"fb_q63\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          4. Direct : \u00ab\u00a0O\u00f9 vas-tu ?\u00a0\u00bb  \n             *(Verbe introducteur : \u00ab\u00a0Il demande o\u00f9\u00a0\u00bb)*  \n             \u2192 <input type=\"text\" id=\"q64\" size=\"30\">  \n             <button onclick=\"checkAnswer('q64', 'Il demande o\u00f9 je vais.')\">V\u00e9rifier<\/button>\n             <span id=\"fb_q64\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          5. Direct : \u00ab\u00a0Oh non, c\u2019est horrible!\u00a0\u00bb  \n             *(Verbe introducteur : \u00ab\u00a0Elle s\u2019exclame que\u00a0\u00bb)*  \n             \u2192 <input type=\"text\" id=\"q65\" size=\"30\">  \n             <button onclick=\"checkAnswer('q65', 'Elle s\u2019exclame que c\u2019est horrible.')\">V\u00e9rifier<\/button>\n             <span id=\"fb_q65\" class=\"feedback\"><\/span>\n        <\/div>\n        \n        <!-- Exercices \u2013 Discours direct au pass\u00e9 (5 questions) -->\n        <h3>Exercices \u2013 Discours direct au pass\u00e9 (5 questions)<\/h3>\n        <div class=\"question\">\n          6. Direct : \u00ab\u00a0Paul a dit : \u00ab J\u2019ai fini mon travail hier. \u00bb\u00a0\u00bb  \n             *(Verbe introducteur : \u00ab\u00a0dire\u00a0\u00bb)*  \n             \u2192 <input type=\"text\" id=\"q66\" size=\"30\">  \n             <button onclick=\"checkAnswer('q66', 'Paul a dit qu\u2019il avait fini son travail la veille.')\">V\u00e9rifier<\/button>\n             <span id=\"fb_q66\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          7. Direct : \u00ab\u00a0Marie a demand\u00e9 : \u00ab Est-ce que tu viendras demain ? \u00bb\u00a0\u00bb  \n             *(Verbe introducteur : \u00ab\u00a0demander\u00a0\u00bb)*  \n             \u2192 <input type=\"text\" id=\"q67\" size=\"30\">  \n             <button onclick=\"checkAnswer('q67', 'Marie a demand\u00e9 si je viendrais le lendemain.')\">V\u00e9rifier<\/button>\n             <span id=\"fb_q67\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          8. Direct : \u00ab\u00a0Il a expliqu\u00e9 : \u00ab Nous avons vu ce film la semaine derni\u00e8re. \u00bb\u00a0\u00bb  \n             *(Verbe introducteur : \u00ab\u00a0expliquer\u00a0\u00bb)*  \n             \u2192 <input type=\"text\" id=\"q68\" size=\"30\">  \n             <button onclick=\"checkAnswer('q68', 'Il a expliqu\u00e9 qu\u2019ils avaient vu ce film la semaine pr\u00e9c\u00e9dente.')\">V\u00e9rifier<\/button>\n             <span id=\"fb_q68\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          9. Direct : \u00ab\u00a0Julie a affirm\u00e9 : \u00ab Je ne comprenais rien \u00e0 ce moment-l\u00e0. \u00bb\u00a0\u00bb  \n             *(Verbe introducteur : \u00ab\u00a0affirmer\u00a0\u00bb)*  \n             \u2192 <input type=\"text\" id=\"q69\" size=\"30\">  \n             <button onclick=\"checkAnswer('q69', 'Julie a affirm\u00e9 qu\u2019elle ne comprenait rien \u00e0 ce moment-l\u00e0.')\">V\u00e9rifier<\/button>\n             <span id=\"fb_q69\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          10. Direct : \u00ab\u00a0Le professeur a dit : \u00ab Vous devez rendre vos devoirs aujourd\u2019hui. \u00bb\u00a0\u00bb  \n              *(Verbe introducteur : \u00ab\u00a0dire\u00a0\u00bb)*  \n              \u2192 <input type=\"text\" id=\"q70\" size=\"30\">  \n              <button onclick=\"checkAnswer('q70', 'Le professeur a dit qu\u2019ils devaient rendre leurs devoirs ce jour-l\u00e0.')\">V\u00e9rifier<\/button>\n              <span id=\"fb_q70\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"section-summary\"><\/div>\n      <\/div>\n    <\/details>\n    \n    <!-- SECTION 8 : La voix passive -->\n    <details id=\"section8\">\n      <summary>La voix passive<\/summary>\n      <div class=\"section-content voice-passive\">\n        <button class=\"btn-rule\" onclick=\"toggleRule(this)\">Voir la r\u00e8gle<\/button>\n        <div class=\"rule-detail\">\n          <p><strong>R\u00e8gle :<\/strong><\/p>\n          <p>La voix passive se forme avec <em>\u00eatre + participe pass\u00e9 + par<\/em>. Le sujet actif devient compl\u00e9ment.<\/p>\n          <p>Exemples :<\/p>\n          <ul>\n            <li>Direct : \u00ab Le professeur corrige la copie. \u00bb<br>\n                Passif : \u00ab La copie est corrig\u00e9e par le professeur. \u00bb<\/li>\n            <li>Direct : \u00ab Il a construit une maison. \u00bb<br>\n                Passif : \u00ab Une maison a \u00e9t\u00e9 construite par lui. \u00bb<\/li>\n            <li>Direct : \u00ab Le chat mange la souris. \u00bb<br>\n                Passif : \u00ab La souris est mang\u00e9e par le chat. \u00bb<\/li>\n          <\/ul>\n          <table>\n            <tr>\n              <th>Exemple Actif<\/th>\n              <th>Exemple Passif<\/th>\n            <\/tr>\n            <tr>\n              <td>Le professeur corrige la copie.<\/td>\n              <td>La copie est corrig\u00e9e par le professeur.<\/td>\n            <\/tr>\n            <tr>\n              <td>Il a construit une maison.<\/td>\n              <td>Une maison a \u00e9t\u00e9 construite par lui.<\/td>\n            <\/tr>\n            <tr>\n              <td>Le chat mange la souris.<\/td>\n              <td>La souris est mang\u00e9e par le chat.<\/td>\n            <\/tr>\n          <\/table>\n        <\/div>\n        <h3>Exercices :<\/h3>\n        <div class=\"question\">\n          1. Le m\u00e9decin soigne le patient. \u2192 <input type=\"text\" id=\"q81\" size=\"80\">  \n          <button onclick=\"checkAnswer('q81', 'Le patient est soign\u00e9 par le m\u00e9decin.')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q81\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          2. Le chef pr\u00e9pare le repas. \u2192 <input type=\"text\" id=\"q82\" size=\"80\">  \n          <button onclick=\"checkAnswer('q82', 'Le repas est pr\u00e9par\u00e9 par le chef.')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q82\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          3. La police arr\u00eate le voleur. \u2192 <input type=\"text\" id=\"q83\" size=\"80\">  \n          <button onclick=\"checkAnswer('q83', 'Le voleur est arr\u00eat\u00e9 par la police.')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q83\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          4. Le facteur apporte une lettre. \u2192 <input type=\"text\" id=\"q84\" size=\"80\">  \n          <button onclick=\"checkAnswer('q84', 'Une lettre est apport\u00e9e par le facteur.')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q84\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          5. L\u2019artiste a peint ce tableau. \u2192 <input type=\"text\" id=\"q85\" size=\"80\">  \n          <button onclick=\"checkAnswer('q85', 'Ce tableau a \u00e9t\u00e9 peint par l\\'artiste.')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q85\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          6. Elle a \u00e9crit un livre. \u2192 <input type=\"text\" id=\"q86\" size=\"80\">  \n          <button onclick=\"checkAnswer('q86', 'Un livre a \u00e9t\u00e9 \u00e9crit par elle.')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q86\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          7. Il construira une maison. \u2192 <input type=\"text\" id=\"q87\" size=\"80\">  \n          <button onclick=\"checkAnswer('q87', 'Une maison sera construite par lui.')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q87\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          8. Ils ont r\u00e9par\u00e9 la voiture. \u2192 <input type=\"text\" id=\"q88\" size=\"80\">  \n          <button onclick=\"checkAnswer('q88', 'La voiture a \u00e9t\u00e9 r\u00e9par\u00e9e par eux.')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q88\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          9. Les enfants rangent la salle. \u2192 <input type=\"text\" id=\"q89\" size=\"80\">  \n          <button onclick=\"checkAnswer('q89', 'La salle est rang\u00e9e par les enfants.')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q89\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"question\">\n          10. Le public applaudit les chanteurs. \u2192 <input type=\"text\" id=\"q90\" size=\"80\">  \n          <button onclick=\"checkAnswer('q90', 'Les chanteurs sont applaudis par le public.')\">V\u00e9rifier<\/button>\n          <span id=\"fb_q90\" class=\"feedback\"><\/span>\n        <\/div>\n        <div class=\"section-summary\"><\/div>\n      <\/div>\n    <\/details>\n    \n    <!-- Bilan g\u00e9n\u00e9ral -->\n    <div id=\"final-summary\"><\/div>\n  <\/div>\n  \n  <script>\n    \/\/ R\u00e9ponses correctes pour chaque question\n    const correctAnswers = {\n      \/\/ Section 1 : Accord du participe pass\u00e9\n      q1: \"pr\u00e9par\u00e9es\", q2: \"arriv\u00e9e\", q3: \"\u00e9crites\", q4: \"lev\u00e9s\", q5: \"lav\u00e9\",\n      q6: \"rang\u00e9\", q7: \"choisies\", q8: \"bless\u00e9\", q9: \"mang\u00e9\", q10: \"achet\u00e9e\",\n      \n      \/\/ Section 2 : Subjonctif \/ Indicatif\n      q11: \"viennes\", q14: \"r\u00e9vises\", q15: \"r\u00e9ussit\", q16: \"comprenne\", q17: \"dit\", q18: \"ait\", q19: \"participes\", q20: \"sait\",\n      \n      \/\/ Section 3 : Le g\u00e9rondif\n      q21: \"en courant\", q22: \"en \u00e9coutant\", q23: \"en travaillant\", q24: \"en lisant\",\n      q25: \"en marchant\", q26: \"en regardant\", q27: \"en r\u00e9p\u00e9tant\", q28: \"en regardant\",\n      q29: \"en \u00e9tudiant\", q30: \"en \u00e9coutant\",\n      \n      \/\/ Section 4 : Cause \/ Cons\u00e9quence (QCM)\n      q31: \"donc\", q32: \"gr\u00e2ce \u00e0\", q33: \"car\", q34: \"parce que\", q35: \"donc\",\n      q36: \"Comme\", q37: \"\u00e0 cause de\", q38: \"donc\", q39: \"de sorte que\", q40: \"Parce que\",\n      \n      \/\/ Section 5 : Pronoms relatifs\n      q41: \"qui\", q42: \"que\", q43: \"o\u00f9\", q44: \"dont\", q45: \"qui\", q46: \"que\", q47: \"qui\", q48: \"o\u00f9\", q49: \"dont\", q50: \"que\",\n      \n      \/\/ Section 6 : Temps verbaux\n      q51: \"\u00e9tais\", q52: \"suis all\u00e9\", q53: \"avait\", q54: \"regardait\", q55: \"ai visit\u00e9\",\n      q56: \"travaillait\", q57a: \"nous \u00e9tions partis\", q57b: \"ils sont arriv\u00e9s\",\n      q58: \"\u00e9tait\", q59: \"avait termin\u00e9\", q60: \"jouaient\",\n      \n      \/\/ Section 7 : Discours direct \/ indirect \u2013 Au pr\u00e9sent\n      q61: \"Il dit qu'il aime le chocolat.\",\n      q62: \"Il demande si je viens.\",\n      q63: \"Il demande ce que je fais.\",\n      q64: \"Il demande o\u00f9 je vais.\",\n      q65: \"Elle s\u2019exclame que c\u2019est horrible.\",\n      \n      \/\/ Section 7 : Discours direct \/ indirect \u2013 Au pass\u00e9\n      q66: \"Paul a dit qu\u2019il avait fini son travail la veille.\",\n      q67: \"Marie a demand\u00e9 si je viendrais le lendemain.\",\n      q68: \"Il a expliqu\u00e9 qu\u2019ils avaient vu ce film la semaine pr\u00e9c\u00e9dente.\",\n      q69: \"Julie a affirm\u00e9 qu\u2019elle ne comprenait rien \u00e0 ce moment-l\u00e0.\",\n      q70: \"Le professeur a dit qu\u2019ils devaient rendre leurs devoirs ce jour-l\u00e0.\",\n      \n      \/\/ Section 8 : La voix passive\n      q81: \"Le patient est soign\u00e9 par le m\u00e9decin.\",\n      q82: \"Le repas est pr\u00e9par\u00e9 par le chef.\",\n      q83: \"Le voleur est arr\u00eat\u00e9 par la police.\",\n      q84: \"Une lettre est apport\u00e9e par le facteur.\",\n      q85: \"Ce tableau a \u00e9t\u00e9 peint par l'artiste.\",\n      q86: \"Un livre a \u00e9t\u00e9 \u00e9crit par elle.\",\n      q87: \"Une maison sera construite par lui.\",\n      q88: \"La voiture a \u00e9t\u00e9 r\u00e9par\u00e9e par eux.\",\n      q89: \"La salle est rang\u00e9e par les enfants.\",\n      q90: \"Les chanteurs sont applaudis par le public.\"\n    };\n\n    let completed = {};\n    let attempts = {};\n    let sectionStats = {};\n    const totalGlobalQuestions = 80;\n\n    function initSectionStats() {\n      sectionStats = {};\n      const inputs = document.querySelectorAll(\"input\");\n      inputs.forEach(input => {\n        if (input.id) {\n          const match = input.id.match(\/^(q\\d+)\/);\n          if (match) {\n            const qKey = match[0];\n            const sectionElem = input.closest(\"details\");\n            if (sectionElem) {\n              const secId = sectionElem.id;\n              if (!sectionStats[secId]) { \n                sectionStats[secId] = { total: {}, correct: 0 }; \n              }\n              sectionStats[secId].total[qKey] = true;\n            }\n          }\n        }\n      });\n      for (const sec in sectionStats) {\n        sectionStats[sec].totalCount = Object.keys(sectionStats[sec].total).length;\n      }\n    }\n\n    function updateProgressBar() {\n      let count = 0;\n      for (let key in completed) { \n        if (completed[key]) count++; \n      }\n      const percent = (count \/ totalGlobalQuestions) * 100;\n      document.getElementById(\"progress-bar\").style.width = percent + \"%\";\n      document.getElementById(\"progress-text\").textContent = count + \" \/ \" + totalGlobalQuestions;\n      updateFinalSummary();\n    }\n\n    function updateSectionSummary(sectionId) {\n      const summaryDiv = document.querySelector(\"#\" + sectionId + \" .section-summary\");\n      if (!summaryDiv || !sectionStats[sectionId]) return;\n      const totalCount = sectionStats[sectionId].totalCount;\n      const correctCount = sectionStats[sectionId].correct;\n      const percentage = Math.round((correctCount \/ totalCount) * 100);\n      let opinion = \"\";\n      if (percentage >= 90) opinion = \"Excellent, continuez ainsi\u202f!\";\n      else if (percentage >= 75) opinion = \"Tr\u00e8s bien, vous \u00eates sur la bonne voie\u202f!\";\n      else if (percentage >= 50) opinion = \"Satisfaisant, mais continuez \u00e0 pratiquer\u202f!\";\n      else opinion = \"\u00c0 am\u00e9liorer, r\u00e9visez la le\u00e7on et r\u00e9essayez\u202f!\";\n      summaryDiv.textContent = \"Score : \" + correctCount + \" \/ \" + totalCount + \" (\" + percentage + \"%) - \" + opinion;\n    }\n\n    function updateFinalSummary() {\n      let count = 0;\n      for (let key in completed) { \n        if (completed[key]) count++; \n      }\n      const percentage = Math.round((count \/ totalGlobalQuestions) * 100);\n      let message = \"\";\n      if (percentage >= 90) message = \"Excellent, vous avez brillamment r\u00e9ussi l'ensemble des exercices\u202f!\";\n      else if (percentage >= 75) message = \"Tr\u00e8s bien, continuez sur cette voie\u202f!\";\n      else if (percentage >= 50) message = \"Satisfaisant, mais il reste encore du travail. Ne vous d\u00e9couragez pas\u202f!\";\n      else message = \"\u00c0 am\u00e9liorer, r\u00e9visez les le\u00e7ons et r\u00e9essayez\u202f!\";\n      document.getElementById(\"final-summary\").textContent = \"Bilan g\u00e9n\u00e9ral : \" + percentage + \"% - \" + message;\n    }\n\n    function extractQuestionKey(id) {\n      const m = id.match(\/^(q\\d+)\/);\n      return m ? m[0] : id;\n    }\n\n    function checkAnswer(id, correct) {\n      const qKey = extractQuestionKey(id);\n      const inputElem = document.getElementById(id);\n      const userAnswer = inputElem.value;\n      const fbElem = document.getElementById(\"fb_\" + id);\n      const sectionElem = inputElem.closest(\"details\");\n      const secId = sectionElem ? sectionElem.id : \"global\";\n      if (normalize(userAnswer) === normalize(correct)) {\n        fbElem.textContent = \"Correct!\";\n        fbElem.style.color = \"green\";\n        if (!completed[qKey]) {\n          completed[qKey] = true;\n          sectionStats[secId].correct++;\n          updateSectionSummary(secId);\n          updateProgressBar();\n        }\n      } else {\n        let message = \"R\u00e9essayer\";\n        if ((attempts[id] || 0) >= 2) { \n          message += \" - \" + getHint(id); \n        }\n        fbElem.textContent = message;\n        fbElem.style.color = \"red\";\n      }\n      attempts[id] = (attempts[id] || 0) + 1;\n    }\n\n    function checkMCQ(qid, correct) {\n      if (!attempts[qid]) attempts[qid] = 0;\n      attempts[qid]++;\n      let radios = document.getElementsByName(qid);\n      let selected = \"\";\n      for (let radio of radios) { \n        if (radio.checked) { \n          selected = radio.value; \n          break; \n        }\n      }\n      const fbElem = document.getElementById(\"fb_\" + qid);\n      if (normalize(selected) === normalize(correct)) {\n        fbElem.textContent = \"Correct!\";\n        fbElem.style.color = \"green\";\n        if (!completed[qid]) {\n          completed[qid] = true;\n          const sectionElem = radios[0].closest(\"details\");\n          const secId = sectionElem ? sectionElem.id : \"global\";\n          sectionStats[secId].correct++;\n          updateSectionSummary(secId);\n          updateProgressBar();\n        }\n      } else {\n        let message = \"R\u00e9essayer\";\n        if (attempts[qid] >= 2) { \n          message += \" - \" + getHint(qid); \n        }\n        fbElem.textContent = message;\n        fbElem.style.color = \"red\";\n      }\n    }\n\n    function checkDoubleAnswer(id1, id2, correct1, correct2) {\n      const key = extractQuestionKey(id1);\n      if (!attempts[key]) attempts[key] = 0;\n      attempts[key]++;\n      const ans1 = document.getElementById(id1).value;\n      const ans2 = document.getElementById(id2).value;\n      const fbElem = document.getElementById(\"fb_q57\");\n      const sectionElem = document.getElementById(id1).closest(\"details\");\n      const secId = sectionElem ? sectionElem.id : \"global\";\n      if (normalize(ans1) === normalize(correct1) && normalize(ans2) === normalize(correct2)) {\n        fbElem.textContent = \"Correct!\";\n        fbElem.style.color = \"green\";\n        if (!completed[key]) {\n          completed[key] = true;\n          sectionStats[secId].correct++;\n          updateSectionSummary(secId);\n          updateProgressBar();\n        }\n      } else {\n        let message = \"R\u00e9essayer\";\n        if (attempts[key] >= 2) { \n          message += \" - \" + getHint(key); \n        }\n        fbElem.textContent = message;\n        fbElem.style.color = \"red\";\n      }\n    }\n\n    function normalize(str) {\n      return str.trim().toLowerCase()\n                .replace(\/[^\\w\\s]|_\/g, \"\")\n                .replace(\/\\s+\/g, \" \");\n    }\n\n    function getHint(qid) {\n      let num = parseInt(qid.replace(\/\\D\/g, ''));\n      if (num >= 1 && num <= 10) return \"Conseil : V\u00e9rifiez l'auxiliaire et la position du COD.\";\n      else if (num >= 11 && num <= 20) return \"Conseil : Relisez l'expression introductive pour choisir subjonctif ou indicatif.\";\n      else if (num >= 21 && num <= 30) return \"Conseil : Rappelez-vous que le g\u00e9rondif se forme avec 'en' + participe pr\u00e9sent.\";\n      else if (num >= 31 && num <= 40) return \"Conseil : Choisissez le connecteur indiqu\u00e9 pour cette question.\";\n      else if (num >= 41 && num <= 50) return \"Conseil : V\u00e9rifiez le pronom relatif et son usage (qui, que, o\u00f9 ou dont).\";\n      else if (num >= 51 && num <= 60) return \"Conseil : Choisissez le temps en fonction du contexte.\";\n      else if (num >= 61 && num <= 70) return \"Conseil : Adaptez le discours en modifiant temps et pronoms.\";\n      else if (num >= 81 && num <= 90) return \"Conseil : V\u00e9rifiez le sujet et le compl\u00e9ment pour former la voix passive.\";\n      return \"\";\n    }\n\n    function resetAll() {\n      completed = {};\n      attempts = {};\n      initSectionStats();\n      updateProgressBar();\n      const inputs = document.getElementsByTagName(\"input\");\n      for (let input of inputs) {\n        if (input.type === \"text\") { \n          input.value = \"\"; \n        } else if (input.type === \"radio\") { \n          input.checked = false; \n        }\n      }\n      const feedbacks = document.getElementsByClassName(\"feedback\");\n      for (let fb of feedbacks) { \n        fb.textContent = \"\"; \n      }\n      const summaries = document.getElementsByClassName(\"section-summary\");\n      for (let sum of summaries) { \n        sum.textContent = \"\"; \n      }\n    }\n\n    function toggleRule(button) {\n      const ruleDiv = button.nextElementSibling;\n      if (ruleDiv.style.display === \"none\" || ruleDiv.style.display === \"\") {\n        ruleDiv.style.display = \"block\";\n        button.textContent = \"Masquer la r\u00e8gle\";\n      } else {\n        ruleDiv.style.display = \"none\";\n        button.textContent = \"Voir la r\u00e8gle\";\n      }\n    }\n\n    document.addEventListener(\"DOMContentLoaded\", function() { \n      initSectionStats();\n    });\n  <\/script>\n<\/body>\n<\/html>\n\n\n\n<div class=\"wp-block-file\"><a id=\"wp-block-file--media-b2d84547-cb45-470c-8953-322db8265562\" href=\"https:\/\/www.estudiodefrances.com\/wp-content\/uploads\/Fiche_revision-8-sans-points_grammaire_B1-1.pdf\">Fiche r\u00e9vision-8 points grammaire niveau B1<\/a><a href=\"https:\/\/www.estudiodefrances.com\/wp-content\/uploads\/Fiche_revision-8-sans-points_grammaire_B1-1.pdf\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-b2d84547-cb45-470c-8953-322db8265562\">T\u00e9l\u00e9charger<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>R\u00e9vision de grammaire niveau B1 sur les points suivants : accords du participe pass\u00e9, subjonctif et indicatif, le g\u00e9rondif, cause et cons\u00e9quence, les pronoms relatifs (qui, que, dont), les temps du pass\u00e9, le discours direct et indirect, la voix passive.<\/p>\n","protected":false},"author":1,"featured_media":5331,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"cybocfi_hide_featured_image":"yes","footnotes":""},"categories":[14,33],"tags":[6,98],"class_list":["post-5321","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gram","category-niveau-b1","tag-grammaire","tag-niveau-b1"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>R\u00e9vision de 8 points de grammaire niveau B1, r\u00e8gles avec exercices. - MOddou FLE<\/title>\n<meta name=\"description\" content=\"R\u00e9vision de grammaire niveau B1 sur les points suivants : accords du participe pass\u00e9, subjonctif et indicatif, le g\u00e9rondif, cause et cons\u00e9quence, les pronoms relatifs (qui, que, dont), les temps du pass\u00e9, le discours direct et indirect, la voix passive.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.estudiodefrances.com\/?p=5321\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"R\u00e9vision de 8 points de grammaire niveau B1, r\u00e8gles avec exercices. - MOddou FLE\" \/>\n<meta property=\"og:description\" content=\"R\u00e9vision de grammaire niveau B1 sur les points suivants : accords du participe pass\u00e9, subjonctif et indicatif, le g\u00e9rondif, cause et cons\u00e9quence, les pronoms relatifs (qui, que, dont), les temps du pass\u00e9, le discours direct et indirect, la voix passive.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.estudiodefrances.com\/?p=5321\" \/>\n<meta property=\"og:site_name\" content=\"MOddou FLE\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/moddouFLE\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-03-16T04:13:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-17T07:56:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.estudiodefrances.com\/wp-content\/uploads\/revision.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1866\" \/>\n\t<meta property=\"og:image:height\" content=\"1038\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"moddou\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@moddou\" \/>\n<meta name=\"twitter:site\" content=\"@moddou\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"moddou\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/?p=5321#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/?p=5321\"},\"author\":{\"name\":\"moddou\",\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/#\\\/schema\\\/person\\\/88f4b73addd8170d9837c20fc1127e7c\"},\"headline\":\"R\u00e9vision de 8 points de grammaire niveau B1, r\u00e8gles avec exercices.\",\"datePublished\":\"2025-03-16T04:13:24+00:00\",\"dateModified\":\"2025-03-17T07:56:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/?p=5321\"},\"wordCount\":1866,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/?p=5321#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.estudiodefrances.com\\\/wp-content\\\/uploads\\\/revision.jpg\",\"keywords\":[\"grammaire\",\"Niveau B1\"],\"articleSection\":[\"grammaire\",\"Niveau B1\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.estudiodefrances.com\\\/?p=5321#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/?p=5321\",\"url\":\"https:\\\/\\\/www.estudiodefrances.com\\\/?p=5321\",\"name\":\"R\u00e9vision de 8 points de grammaire niveau B1, r\u00e8gles avec exercices. - MOddou FLE\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/?p=5321#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/?p=5321#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.estudiodefrances.com\\\/wp-content\\\/uploads\\\/revision.jpg\",\"datePublished\":\"2025-03-16T04:13:24+00:00\",\"dateModified\":\"2025-03-17T07:56:47+00:00\",\"description\":\"R\u00e9vision de grammaire niveau B1 sur les points suivants : accords du participe pass\u00e9, subjonctif et indicatif, le g\u00e9rondif, cause et cons\u00e9quence, les pronoms relatifs (qui, que, dont), les temps du pass\u00e9, le discours direct et indirect, la voix passive.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/?p=5321#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.estudiodefrances.com\\\/?p=5321\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/?p=5321#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.estudiodefrances.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"R\u00e9vision de 8 points de grammaire niveau B1, r\u00e8gles avec exercices.\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/#website\",\"url\":\"https:\\\/\\\/www.estudiodefrances.com\\\/\",\"name\":\"MOddou FLE\",\"description\":\"Exercices et jeux pour apprendre le fran\u00e7ais\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.estudiodefrances.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/#organization\",\"name\":\"MOddou FLE\",\"url\":\"https:\\\/\\\/www.estudiodefrances.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.estudiodefrances.com\\\/wp-content\\\/uploads\\\/cropped-Capture-de\u0301cran-2013-09-04-a\u0300-00.08.43-1.png\",\"contentUrl\":\"https:\\\/\\\/www.estudiodefrances.com\\\/wp-content\\\/uploads\\\/cropped-Capture-de\u0301cran-2013-09-04-a\u0300-00.08.43-1.png\",\"width\":68,\"height\":79,\"caption\":\"MOddou FLE\"},\"image\":{\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/moddouFLE\\\/\",\"https:\\\/\\\/x.com\\\/moddou\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.estudiodefrances.com\\\/#\\\/schema\\\/person\\\/88f4b73addd8170d9837c20fc1127e7c\",\"name\":\"moddou\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4a3fcfa351701fcac2c15731162f30826ff6dc6290b4ca18e8e3f3b419e885c4?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4a3fcfa351701fcac2c15731162f30826ff6dc6290b4ca18e8e3f3b419e885c4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4a3fcfa351701fcac2c15731162f30826ff6dc6290b4ca18e8e3f3b419e885c4?s=96&d=mm&r=g\",\"caption\":\"moddou\"},\"sameAs\":[\"http:\\\/\\\/www.estudiodefrances.com\"],\"url\":\"https:\\\/\\\/www.estudiodefrances.com\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"R\u00e9vision de 8 points de grammaire niveau B1, r\u00e8gles avec exercices. - MOddou FLE","description":"R\u00e9vision de grammaire niveau B1 sur les points suivants : accords du participe pass\u00e9, subjonctif et indicatif, le g\u00e9rondif, cause et cons\u00e9quence, les pronoms relatifs (qui, que, dont), les temps du pass\u00e9, le discours direct et indirect, la voix passive.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.estudiodefrances.com\/?p=5321","og_locale":"fr_FR","og_type":"article","og_title":"R\u00e9vision de 8 points de grammaire niveau B1, r\u00e8gles avec exercices. - MOddou FLE","og_description":"R\u00e9vision de grammaire niveau B1 sur les points suivants : accords du participe pass\u00e9, subjonctif et indicatif, le g\u00e9rondif, cause et cons\u00e9quence, les pronoms relatifs (qui, que, dont), les temps du pass\u00e9, le discours direct et indirect, la voix passive.","og_url":"https:\/\/www.estudiodefrances.com\/?p=5321","og_site_name":"MOddou FLE","article_publisher":"https:\/\/www.facebook.com\/moddouFLE\/","article_published_time":"2025-03-16T04:13:24+00:00","article_modified_time":"2025-03-17T07:56:47+00:00","og_image":[{"width":1866,"height":1038,"url":"https:\/\/www.estudiodefrances.com\/wp-content\/uploads\/revision.jpg","type":"image\/jpeg"}],"author":"moddou","twitter_card":"summary_large_image","twitter_creator":"@moddou","twitter_site":"@moddou","twitter_misc":{"\u00c9crit par":"moddou","Dur\u00e9e de lecture estim\u00e9e":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.estudiodefrances.com\/?p=5321#article","isPartOf":{"@id":"https:\/\/www.estudiodefrances.com\/?p=5321"},"author":{"name":"moddou","@id":"https:\/\/www.estudiodefrances.com\/#\/schema\/person\/88f4b73addd8170d9837c20fc1127e7c"},"headline":"R\u00e9vision de 8 points de grammaire niveau B1, r\u00e8gles avec exercices.","datePublished":"2025-03-16T04:13:24+00:00","dateModified":"2025-03-17T07:56:47+00:00","mainEntityOfPage":{"@id":"https:\/\/www.estudiodefrances.com\/?p=5321"},"wordCount":1866,"commentCount":0,"publisher":{"@id":"https:\/\/www.estudiodefrances.com\/#organization"},"image":{"@id":"https:\/\/www.estudiodefrances.com\/?p=5321#primaryimage"},"thumbnailUrl":"https:\/\/www.estudiodefrances.com\/wp-content\/uploads\/revision.jpg","keywords":["grammaire","Niveau B1"],"articleSection":["grammaire","Niveau B1"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.estudiodefrances.com\/?p=5321#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.estudiodefrances.com\/?p=5321","url":"https:\/\/www.estudiodefrances.com\/?p=5321","name":"R\u00e9vision de 8 points de grammaire niveau B1, r\u00e8gles avec exercices. - MOddou FLE","isPartOf":{"@id":"https:\/\/www.estudiodefrances.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.estudiodefrances.com\/?p=5321#primaryimage"},"image":{"@id":"https:\/\/www.estudiodefrances.com\/?p=5321#primaryimage"},"thumbnailUrl":"https:\/\/www.estudiodefrances.com\/wp-content\/uploads\/revision.jpg","datePublished":"2025-03-16T04:13:24+00:00","dateModified":"2025-03-17T07:56:47+00:00","description":"R\u00e9vision de grammaire niveau B1 sur les points suivants : accords du participe pass\u00e9, subjonctif et indicatif, le g\u00e9rondif, cause et cons\u00e9quence, les pronoms relatifs (qui, que, dont), les temps du pass\u00e9, le discours direct et indirect, la voix passive.","breadcrumb":{"@id":"https:\/\/www.estudiodefrances.com\/?p=5321#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.estudiodefrances.com\/?p=5321"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.estudiodefrances.com\/?p=5321#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.estudiodefrances.com\/"},{"@type":"ListItem","position":2,"name":"R\u00e9vision de 8 points de grammaire niveau B1, r\u00e8gles avec exercices."}]},{"@type":"WebSite","@id":"https:\/\/www.estudiodefrances.com\/#website","url":"https:\/\/www.estudiodefrances.com\/","name":"MOddou FLE","description":"Exercices et jeux pour apprendre le fran\u00e7ais","publisher":{"@id":"https:\/\/www.estudiodefrances.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.estudiodefrances.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/www.estudiodefrances.com\/#organization","name":"MOddou FLE","url":"https:\/\/www.estudiodefrances.com\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.estudiodefrances.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.estudiodefrances.com\/wp-content\/uploads\/cropped-Capture-de\u0301cran-2013-09-04-a\u0300-00.08.43-1.png","contentUrl":"https:\/\/www.estudiodefrances.com\/wp-content\/uploads\/cropped-Capture-de\u0301cran-2013-09-04-a\u0300-00.08.43-1.png","width":68,"height":79,"caption":"MOddou FLE"},"image":{"@id":"https:\/\/www.estudiodefrances.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/moddouFLE\/","https:\/\/x.com\/moddou"]},{"@type":"Person","@id":"https:\/\/www.estudiodefrances.com\/#\/schema\/person\/88f4b73addd8170d9837c20fc1127e7c","name":"moddou","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/secure.gravatar.com\/avatar\/4a3fcfa351701fcac2c15731162f30826ff6dc6290b4ca18e8e3f3b419e885c4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/4a3fcfa351701fcac2c15731162f30826ff6dc6290b4ca18e8e3f3b419e885c4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4a3fcfa351701fcac2c15731162f30826ff6dc6290b4ca18e8e3f3b419e885c4?s=96&d=mm&r=g","caption":"moddou"},"sameAs":["http:\/\/www.estudiodefrances.com"],"url":"https:\/\/www.estudiodefrances.com\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/www.estudiodefrances.com\/index.php?rest_route=\/wp\/v2\/posts\/5321","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.estudiodefrances.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.estudiodefrances.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.estudiodefrances.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.estudiodefrances.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5321"}],"version-history":[{"count":18,"href":"https:\/\/www.estudiodefrances.com\/index.php?rest_route=\/wp\/v2\/posts\/5321\/revisions"}],"predecessor-version":[{"id":5355,"href":"https:\/\/www.estudiodefrances.com\/index.php?rest_route=\/wp\/v2\/posts\/5321\/revisions\/5355"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.estudiodefrances.com\/index.php?rest_route=\/wp\/v2\/media\/5331"}],"wp:attachment":[{"href":"https:\/\/www.estudiodefrances.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5321"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.estudiodefrances.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5321"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.estudiodefrances.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5321"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}