chore/url-migration-archicrat-ia-20260220 #102

Merged
Archicratia merged 3 commits from chore/url-migration-archicrat-ia-20260220 into main 2026-02-20 20:15:57 +00:00
6 changed files with 42 additions and 15 deletions

View File

@@ -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"

View File

@@ -7,7 +7,10 @@ const entries = (await getCollection("archicratie"))
.filter((e) => e.slug.startsWith("archicrat-ia/"))
.sort((a, b) => (a.data.order ?? 0) - (b.data.order ?? 0));
const href = (slug) => `/archicratie/${slug}/`;
// ✅ On route lEssai-thèse sur /archicrat-ia/<slug-sans-prefix>/
// (Astro trailingSlash = always → on garde le "/" final)
const strip = (s) => String(s || "").replace(/^archicrat-ia\//, "");
const href = (slug) => `/archicrat-ia/${strip(slug)}/`;
---
<nav class="toc-global" aria-label="Table des matières — ArchiCraT-IA">
@@ -66,7 +69,6 @@ const href = (slug) => `/archicratie/${slug}/`;
opacity: .88;
}
/* On garde <ol> mais on neutralise tout marker/numéro */
.toc-global__list{
list-style: none;
margin: 0;
@@ -148,7 +150,6 @@ const href = (slug) => `/archicratie/${slug}/`;
scrollbar-gutter: stable;
}
@media (prefers-color-scheme: dark){
.toc-global{ background: rgba(255,255,255,0.04); }
.toc-link:hover{ background: rgba(255,255,255,0.06); }

View File

@@ -3,7 +3,7 @@
<a href="/editions/">Carte des œuvres</a><span aria-hidden="true"> · </span>
<a href="/methode/">Méthode</a><span aria-hidden="true"> · </span>
<a href="/recherche/">Recherche</a><span aria-hidden="true"> · </span>
<a href="/archicratie/">Essai-thèse</a><span aria-hidden="true"> · </span>
<a href="/archicrat-ia/">Essai-thèse</a><span aria-hidden="true"> · </span>
<a href="/traite/">Traité</a><span aria-hidden="true"> · </span>
<a href="/ia/">Cas IA</a><span aria-hidden="true"> · </span>
<a href="/glossaire/">Glossaire</a><span aria-hidden="true"> · </span>

View File

@@ -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();
<EditionLayout
title={entry.data.title}
editionLabel="Archicratie"
editionKey="archicratie"
statusLabel="modèle sociopolitique"
statusKey="modele_sociopolitique"
editionLabel="Essai-thèse"
editionKey="archicrat-ia"
statusLabel="essai-thèse"
statusKey="essai_these"
level={entry.data.level}
version={entry.data.version}
>

View File

@@ -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)}/`;
---
<SiteLayout title="Essai-thèse — ArchiCraT-IA">
<h1>Essai-thèse — ArchiCraT-IA</h1>
<ul>
{entries.map((e) => (
<li><a href={href(e.slug)}>{e.data.title}</a></li>
))}
</ul>
</SiteLayout>

View File

@@ -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 },