[{"data":1,"prerenderedAt":25},["ShallowReactive",2],{"zoom:p5ch18z11:en":3},{"period":4,"chapter":15,"zoom":18},{"id":5,"title":6,"titleEn":6,"titleEs":7,"coverArtworkId":8,"range":9,"rangeEn":9,"rangeEs":9,"cover":10},"p5","High Middle Ages","Plena Edad Media","hannibal-alpes","987 → 1453",{"fileName":11,"filePageUrl":12,"imageUrl":13,"sourceLabel":14},"Facade-notre-dame-paris-ciel-bleu.JPG","https://commons.wikimedia.org/wiki/File:Facade-notre-dame-paris-ciel-bleu.JPG","/assets/p5-moyen-age-classique-cover.png","Wikimedia Commons",{"id":16,"title":17},"p5ch18","Charles VI: Minority, Madness, and Civil War (1380–1422)",{"id":19,"title":20,"chapterId":16,"html":21,"hasEn":22,"isFallback":23,"seoDescription":24},"p5ch18z11","1387–1388: The Brittany Affair, Guelders, and Personal Rule","\u003Cp>After the revolts and the restoration of authority, the late 1380s challenged the government on two fronts: holding the peripheries (Brittany) and asserting policy in the north-east (Low Countries/Empire). These episodes prepared the reassertion of royal control in 1388.\u003C/p>\n\u003Chr>\n\u003Ch2>⚓ 1387: The Brittany Affair and Olivier de Clisson\u003C/h2>\n\u003Cp>Constable \u003Cstrong>Olivier de Clisson\u003C/strong> was a servant of the state as much as a great Breton lord. His power and his loyalty to the king alarmed the Duke of Brittany, who saw it as interference. In \u003Cstrong>1387\u003C/strong>, Clisson was arrested at \u003Cstrong>Vannes\u003C/strong> and forced to pay a costly ransom for his release. The affair revealed tensions:\u003C/p>\n\u003Cul>\n\u003Cli>between state service and princely interests;\u003C/li>\n\u003Cli>between central government and the duchy’s autonomies;\u003C/li>\n\u003Cli>between domestic peace and court rivalries.\u003C/li>\n\u003C/ul>\n\u003Chr>\n\u003Ch2>🏞️ 1388: Expedition against the Duke of Guelders\u003C/h2>\n\u003Cp>To the east, the Duke of \u003Cstrong>Guelders\u003C/strong> opposed Burgundian ambitions and sought English support. An expedition was decided: in late August \u003Cstrong>1388\u003C/strong>, the royal host set out. The campaign was hampered by geography and the season, and ended with a negotiated submission (October 1388): the objective was above all political — to show that the king could mount a major operation.\u003C/p>\n\u003Chr>\n\u003Ch2>👑 All Saints’ Day 1388: The Signal of Personal Rule\u003C/h2>\n\u003Cp>On his return, the scene was highly symbolic: Charles VI held a great assembly at \u003Cstrong>Reims\u003C/strong>, the city of his coronation. He was approaching the age at which he could govern without tutelage. A few weeks later, he set aside part of the princely influence and recalled advisers from the administration of Charles V.\u003C/p>\n\u003Chr>\n\u003Ch2>🧠 Key Takeaways\u003C/h2>\n\u003Cul>\n\u003Cli>Brittany and Guelders show that the state had to arbitrate between princes, peripheries, and diplomacy.\u003C/li>\n\u003Cli>1388 marks a shift: the monarchy tried to reassert a government of the state, less princely in character.\nbrowser.mjs?v=31225b66:48 ssr:error [request error] [unhandled] [GET] \u003Ca href=\"http://localhost/api/periods/p5/chapters?lang=fr\">http://localhost/api/periods/p5/chapters?lang=fr\u003C/a>\u003C/li>\n\u003C/ul>\n\u003Cp>\u001b[31mℹ Error: [GET] “/content/content.json”: 404 Page not found: /content/content.json\u001b[39m\u003C/p>\n\u003Cp>⁃ at async $fetch2 \u001b[33m(node_modules/ofetch/dist/shared/ofetch.CWycOUEr.mjs:332:15)\u001b[39m\n⁃ at async Object.handler \u001b[33m(server/api/periods/[pid]/chapters.get.ts:32:31)\u001b[39m\u003C/p>\n\u003Cp>\u001b[2m27\u001b[22m \u001b[2m┃\u001b[22m \u001b[32m&quot;public, max-age=300, s-maxage=3600, stale-while-revalidate=86400&quot;\u001b[0m\u001b[34m,\u001b[0m\n\u001b[2m28\u001b[22m \u001b[2m┃\u001b[22m );\n\u001b[2m29\u001b[22m \u001b[2m┃\u001b[22m \u001b[31mconst\u001b[0m pid \u001b[34m=\u001b[0m \u001b[35mgetRouterParam\u001b[0m(event\u001b[34m,\u001b[0m \u001b[32m&quot;pid&quot;\u001b[0m) \u001b[34m||\u001b[0m \u001b[32m&quot;&quot;\u001b[0m;\n\u001b[2m30\u001b[22m \u001b[2m┃\u001b[22m \u001b[31mconst\u001b[0m q \u001b[34m=\u001b[0m \u001b[35mgetQuery\u001b[0m(event);\n\u001b[2m31\u001b[22m \u001b[2m┃\u001b[22m \u001b[31mconst\u001b[0m lang \u001b[34m=\u001b[0m \u001b[35mnormalizeLang\u001b[0m((q \u001b[31mas\u001b[0m any)\u001b[34m?.\u001b[0mlang);\n\u001b[41m❯ 32 ┃ const { PERIOD_CAROUSELS } = await getContentData(event);\u001b[49m\n\u001b[2m33\u001b[22m \u001b[2m┃\u001b[22m \u001b[31mconst\u001b[0m options \u001b[34m=\u001b[0m \u001b[33mPERIOD_CAROUSELS\u001b[0m[pid] \u001b[34m||\u001b[0m [];\n\u001b[2m34\u001b[22m \u001b[2m┃\u001b[22m \u001b[31mconst\u001b[0m ready \u001b[34m=\u001b[0m options\u001b[34m.\u001b[0mlength \u001b[34m&gt;\u001b[0m \u001b[33m0\u001b[0m \u001b[34m||\u001b[0m \u001b[33mPERIOD_FULL_UNLOCK\u001b[0m\u001b[34m.\u001b[0m\u001b[35mhas\u001b[0m(pid);\n\u001b[2m35\u001b[22m \u001b[2m┃\u001b[22m \u001b[31mif\u001b[0m (\u001b[34m!\u001b[0mready)\n\u001b[2m36\u001b[22m \u001b[2m┃\u001b[22m \u001b[31mthrow\u001b[0m \u001b[35mcreateError\u001b[0m({ statusCode\u001b[34m:\u001b[0m \u001b[33m404\u001b[0m\u001b[34m,\u001b[0m statusMessage\u001b[34m:\u001b[0m \u001b[32m&quot;Coming soon&quot;\u001b[0m });\n\u001b[2m37\u001b[22m \u001b[2m┃\u001b[22m \u001b[31mconst\u001b[0m base \u001b[34m=\u001b[0m \u001b[35mlocalizePeriodMeta\u001b[0m(\u001b[35mgetPeriodMeta\u001b[0m(pid)\u001b[34m,\u001b[0m lang);\u003C/p>\n\u003Cp>⁃ \u001b[33m(async file://node_modules/h3/dist/index.mjs:2011:19)\u001b[39m\n⁃ at async Object.callAsync \u001b[33m(node_modules/unctx/dist/index.mjs:72:16)\u001b[39m\n⁃ at async toNodeHandle \u001b[33m(node_modules/h3/dist/index.mjs:2303:7)\u001b[39m\n⁃ at async b \u001b[33m(node_modules/node-mock-http/dist/index.mjs:1:6876)\u001b[39m\n⁃ at async C \u001b[33m(node_modules/node-mock-http/dist/index.mjs:1:7159)\u001b[39m\n⁃ at async $fetchRaw2 \u001b[33m(node_modules/ofetch/dist/shared/ofetch.CWycOUEr.mjs:274:26)\u001b[39m\n⁃ at async $fetch2 \u001b[33m(node_modules/ofetch/dist/shared/ofetch.CWycOUEr.mjs:332:15)\u001b[39m\n⁃ at async setup \u001b[33m(pages/p/[pid]/index.vue:49:18)\u001b[39m\u003C/p>\n\u003Cp>\u001b[31m[CAUSE]\u001b[39m\n\u001b[36mFetchError\u001b[39m \u001b[33m{\u001b[39m\n\u001b[34mstack\u001b[39m: \u001b[32m’[GET] “/content/content.json”: 404 Page not found: /content/content.json\\n’ +\n‘at async $fetch2 (./node_modules/ofetch/dist/shared/ofetch.CWycOUEr.mjs:332:15)\\n’ +\n‘at async Object.handler (./server/api/periods/[pid]/chapters.get.ts:32:31)\\n’ +\n‘at async file://./node_modules/h3/dist/index.mjs:2011:19)\\n’ +\n‘at async Object.callAsync (./node_modules/unctx/dist/index.mjs:72:16)\\n’ +\n‘at async toNodeHandle (./node_modules/h3/dist/index.mjs:2303:7)\\n’ +\n‘at async b (./node_modules/node-mock-http/dist/index.mjs:1:6876)\\n’ +\n‘at async C (./node_modules/node-mock-http/dist/index.mjs:1:7159)\\n’ +\n‘at async $fetchRaw2 (./node_modules/ofetch/dist/shared/ofetch.CWycOUEr.mjs:274:26)\\n’ +\n‘at async $fetch2 (/Users/long2x/projects/france’… 161 more characters\u001b[39m,\n\u001b[34mmessage\u001b[39m: \u001b[32m’[GET] “/content/content.json”: 404 Page not found:\n/content/content.json’\u001b[39m,\n\u001b[34mname\u001b[39m: \u001b[32m’FetchError’\u001b[39m,\n\u001b[34mrequest\u001b[39m: \u001b[36m[Getter]\u001b[39m\n\u001b[34moptions\u001b[39m: \u001b[36m[Getter]\u001b[39m\n\u001b[34mresponse\u001b[39m: \u001b[36m[Getter]\u001b[39m\n\u001b[34mdata\u001b[39m: \u001b[36m[Getter]\u001b[39m\n\u001b[34mstatus\u001b[39m: \u001b[36m[Getter]\u001b[39m\n\u001b[34mstatusCode\u001b[39m: \u001b[36m[Getter]\u001b[39m\n\u001b[34mstatusText\u001b[39m: \u001b[36m[Getter]\u001b[39m\n\u001b[34mstatusMessage\u001b[39m: \u001b[36m[Getter]\u001b[39m\n\u001b[33m}\u001b[39m\u003C/p>\n\u003Cp>runtime-core.esm-bun….js?v=31225b66:7189 &lt;Suspense&gt; is an experimental feature and its API will likely change.\ndevtools.client.js?v=31225b66:52 ✨ Nuxt DevTools Press Shift + Option + D to open DevTools\np5-le-moyen-age-classique:1 Access to XMLHttpRequest at ‘\u003Ca href=\"https://cloudflareinsights.com/cdn-cgi/rum\">https://cloudflareinsights.com/cdn-cgi/rum\u003C/a>’ from origin ‘\u003Ca href=\"http://localhost:3003\">http://localhost:3003\u003C/a>’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: The ‘Access-Control-Allow-Origin’ header has a value ‘\u003Ca href=\"http://localhost\">http://localhost\u003C/a>’ that is not equal to the supplied origin.\nbeacon.min.js:1\nPOST \u003Ca href=\"https://cloudflareinsights.com/cdn-cgi/rum\">https://cloudflareinsights.com/cdn-cgi/rum\u003C/a> net::ERR_FAILED\nruntime-core.esm-bun…er.js?v=31225b66:50 [Vue warn]: Hydration node mismatch:\u003C/p>\n\u003Cul>\n\u003Cli>rendered on server:\u003C/li>\n\u003Cli>expected on client: Symbol(v-fgt)\nat &lt;Breadcrumb model=\n(2) [{…}, {…}]\n\u003Cblockquote>\n\u003Cp>at &lt;Default ref=Ref&lt; undefined &gt; &gt;\nat &lt;AsyncComponentWrapper ref=Ref&lt; undefined &gt; &gt;\nat &lt;LayoutLoader key=“default” layoutProps=\n{ref: RefImpl}\nname=“default” &gt;\nat &lt;NuxtLayoutProvider layoutProps=\n{ref: RefImpl}\nkey=“default” name=“default” … &gt;\nat &lt;NuxtLayout &gt;\nat &lt;App key=4 &gt;\nat &lt;NuxtRoot&gt;\nruntime-core.esm-bun….js?v=31225b66:1873 Hydration completed but contains mismatches.\np5-le-moyen-age-classique:1 Access to resource at ‘\u003Ca href=\"https://cloudflareinsights.com/cdn-cgi/rum\">https://cloudflareinsights.com/cdn-cgi/rum\u003C/a>’ from origin ‘\u003Ca href=\"http://localhost:3003\">http://localhost:3003\u003C/a>’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: The ‘Access-Control-Allow-Origin’ header has a value ‘\u003Ca href=\"http://localhost\">http://localhost\u003C/a>’ that is not equal to the supplied origin.\nbeacon.min.js:1\nPOST \u003Ca href=\"https://cloudflareinsights.com/cdn-cgi/rum\">https://cloudflareinsights.com/cdn-cgi/rum\u003C/a> net::ERR_FAILED\u003C/p>\n\u003C/blockquote>\n\u003C/li>\n\u003C/ul>\n\u003Cp>\u003C/p>\n",true,false,"After the revolts and the restoration of authority, the late 1380s challenged the government on two fronts: holding the peripheries (Brittany) and asserting",1777502646266]