From 672e6d03d0856ccd39ddb70d702ccf28bd5f450a Mon Sep 17 00:00:00 2001 From: Archicratia Date: Fri, 20 Feb 2026 21:14:45 +0100 Subject: [PATCH] =?UTF-8?q?fix(url):=20migrate=20Essai-th=C3=A8se=20to=20/?= =?UTF-8?q?archicrat-ia=20(routes=20+=20index=20+=20annotations)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../archicrat-ia/prologue.yml | 8 +++---- src/pages/archicrat-ia/[...slug].astro | 15 ++++++++----- src/pages/archicrat-ia/index.astro | 22 +++++++++++++++++++ src/pages/archicratie/[...slug].astro | 3 ++- 4 files changed, 37 insertions(+), 11 deletions(-) rename src/annotations/{archicratie => }/archicrat-ia/prologue.yml (85%) create mode 100644 src/pages/archicrat-ia/index.astro diff --git a/src/annotations/archicratie/archicrat-ia/prologue.yml b/src/annotations/archicrat-ia/prologue.yml similarity index 85% rename from src/annotations/archicratie/archicrat-ia/prologue.yml rename to src/annotations/archicrat-ia/prologue.yml index ec3c301..14cc2c9 100644 --- a/src/annotations/archicratie/archicrat-ia/prologue.yml +++ b/src/annotations/archicrat-ia/prologue.yml @@ -1,7 +1,7 @@ schema: 1 # optionnel (si présent, doit matcher le chemin du fichier) -page: archicratie/archicrat-ia/prologue +page: archicrat-ia/prologue paras: p-0-d7974f88: @@ -25,11 +25,11 @@ paras: media: - type: "image" - src: "/public/media/archicratie/archicrat-ia/prologue/p-0-d7974f88/schema-1.svg" + src: "/public/media/archicrat-ia/prologue/p-0-d7974f88/schema-1.svg" caption: "Tableau explicatif" credit: "ChatGPT" - type: "image" - src: "/public/media/archicratie/archicrat-ia/prologue/p-0-d7974f88/schema-2.svg" + src: "/public/media/archicrat-ia/prologue/p-0-d7974f88/schema-2.svg" caption: "Diagramme d’évolution" credit: "Yanis Varoufakis" @@ -52,7 +52,7 @@ paras: media: - type: "video" - src: "/media/prologue/p-1-2ef25f29/bien_commun.mp4" + src: "/public/media/archicrat-ia/prologue/p-1-2ef25f29/bien_commun.mp4" caption: "Entretien avec Bernard Lahire" credit: "Cairn.info" diff --git a/src/pages/archicrat-ia/[...slug].astro b/src/pages/archicrat-ia/[...slug].astro index e6bd039..6b9e72c 100644 --- a/src/pages/archicrat-ia/[...slug].astro +++ b/src/pages/archicrat-ia/[...slug].astro @@ -5,9 +5,12 @@ import EditionToc from "../../components/EditionToc.astro"; import LocalToc from "../../components/LocalToc.astro"; export async function getStaticPaths() { - const entries = await getCollection("archicratie"); + const entries = (await getCollection("archicratie")) + .filter((e) => e.slug.startsWith("archicrat-ia/")); + return entries.map((entry) => ({ - params: { slug: entry.slug }, + // ✅ inline : jamais de helper externe (évite "stripPrefix is not defined") + params: { slug: entry.slug.replace(/^archicrat-ia\//, "") }, props: { entry }, })); } @@ -18,10 +21,10 @@ const { Content, headings } = await entry.render(); diff --git a/src/pages/archicrat-ia/index.astro b/src/pages/archicrat-ia/index.astro new file mode 100644 index 0000000..cf08778 --- /dev/null +++ b/src/pages/archicrat-ia/index.astro @@ -0,0 +1,22 @@ +--- +import SiteLayout from "../../layouts/SiteLayout.astro"; +import { getCollection } from "astro:content"; + +const entries = (await getCollection("archicratie")) + .filter((e) => e.slug.startsWith("archicrat-ia/")); + +entries.sort((a, b) => (a.data.order ?? 9999) - (b.data.order ?? 9999)); + +const strip = (slug) => slug.replace(/^archicrat-ia\//, ""); +const href = (slug) => `/archicrat-ia/${strip(slug)}/`; +--- + + +

Essai-thèse — ArchiCraT-IA

+ + +
diff --git a/src/pages/archicratie/[...slug].astro b/src/pages/archicratie/[...slug].astro index e6bd039..afc1dc4 100644 --- a/src/pages/archicratie/[...slug].astro +++ b/src/pages/archicratie/[...slug].astro @@ -5,7 +5,8 @@ import EditionToc from "../../components/EditionToc.astro"; import LocalToc from "../../components/LocalToc.astro"; export async function getStaticPaths() { - const entries = await getCollection("archicratie"); + const entries = (await getCollection("archicratie")) + .filter((e) => !e.slug.startsWith("archicrat-ia/")); return entries.map((entry) => ({ params: { slug: entry.slug }, props: { entry },