diff --git a/src/components/GlossaryCardGrid.astro b/src/components/GlossaryCardGrid.astro
new file mode 100644
index 0000000..1d406e8
--- /dev/null
+++ b/src/components/GlossaryCardGrid.astro
@@ -0,0 +1,83 @@
+---
+import { hrefOfGlossaryEntry, type GlossaryEntry } from "../lib/glossary";
+
+export interface Props {
+ entries?: GlossaryEntry[];
+ wide?: boolean;
+}
+
+const {
+ entries = [],
+ wide = false,
+} = Astro.props;
+---
+
+
+
+
\ No newline at end of file
diff --git a/src/components/GlossaryHomeHero.astro b/src/components/GlossaryHomeHero.astro
new file mode 100644
index 0000000..7f570b5
--- /dev/null
+++ b/src/components/GlossaryHomeHero.astro
@@ -0,0 +1,103 @@
+---
+export interface Props {
+ kicker?: string;
+ title?: string;
+ intro?: string;
+}
+
+const {
+ kicker = "Référentiel terminologique",
+ title = "Glossaire archicratique",
+ intro = "Ce glossaire n’est pas seulement un index de définitions. Il constitue une porte d’entrée dans la pensée archicratique : une cartographie raisonnée des concepts fondamentaux, des scènes, des dynamiques et des méta-régimes à partir desquels une société peut être décrite comme organisation de tensions et recherche de co-viabilité.",
+} = Astro.props;
+---
+
+
+ {kicker}
+ {title}
+ {intro}
+
+
+
+
\ No newline at end of file
diff --git a/src/components/GlossaryHomeSection.astro b/src/components/GlossaryHomeSection.astro
new file mode 100644
index 0000000..e48c296
--- /dev/null
+++ b/src/components/GlossaryHomeSection.astro
@@ -0,0 +1,109 @@
+---
+export interface Props {
+ id?: string;
+ title: string;
+ intro?: string;
+ followSection?: string;
+ ctaHref?: string;
+ ctaLabel?: string;
+}
+
+const {
+ id,
+ title,
+ intro,
+ followSection,
+ ctaHref,
+ ctaLabel,
+} = Astro.props;
+
+const resolvedFollowSection = (followSection || title || "").trim();
+const showCta = Boolean(ctaHref && ctaLabel);
+---
+
+
+
+
+
{title}
+
+ {intro && (
+
{intro}
+ )}
+
+
+ {showCta && (
+
+ {ctaLabel}
+
+ )}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/GlossaryPortalGrid.astro b/src/components/GlossaryPortalGrid.astro
new file mode 100644
index 0000000..b78422a
--- /dev/null
+++ b/src/components/GlossaryPortalGrid.astro
@@ -0,0 +1,91 @@
+---
+export type GlossaryPortalGridItem = {
+ href: string;
+ title: string;
+ description: string;
+ meta: string;
+};
+
+export interface Props {
+ items?: GlossaryPortalGridItem[];
+ secondary?: boolean;
+}
+
+const {
+ items = [],
+ secondary = false,
+} = Astro.props;
+---
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/glossaire/index.astro b/src/pages/glossaire/index.astro
index 2337b9f..1411665 100644
--- a/src/pages/glossaire/index.astro
+++ b/src/pages/glossaire/index.astro
@@ -1,31 +1,43 @@
---
import GlossaryLayout from "../../layouts/GlossaryLayout.astro";
import GlossaryHomeAside from "../../components/GlossaryHomeAside.astro";
+import GlossaryHomeHero from "../../components/GlossaryHomeHero.astro";
+import GlossaryHomeSection from "../../components/GlossaryHomeSection.astro";
+import GlossaryCardGrid from "../../components/GlossaryCardGrid.astro";
+import GlossaryPortalGrid from "../../components/GlossaryPortalGrid.astro";
import { getCollection } from "astro:content";
import {
- getGlossaryHomeData,
- getGlossaryHomeStats,
+ buildGlossaryBySlug,
+ countGlossaryEntriesByKind,
+ familyOf,
+ getGlossaryEntriesByFamily,
hrefOfGlossaryEntry,
+ sortGlossaryEntries,
} from "../../lib/glossary";
const entries = await getCollection("glossaire");
-const {
- fondamentaux,
- scenes,
- dynamiques,
- metaRegimesPreview,
- arcalite,
- cratialite,
- tension,
- sceneDepreuve,
- archicration,
-} = getGlossaryHomeData(entries);
+const bySlug = buildGlossaryBySlug(entries);
-const {
- paradigmesCount,
- doctrinesCount,
-} = getGlossaryHomeStats(entries);
+const fondamentaux = getGlossaryEntriesByFamily(entries, "concept-fondamental");
+const scenes = getGlossaryEntriesByFamily(entries, "scene");
+const dynamiques = sortGlossaryEntries(
+ entries.filter((entry) =>
+ ["dynamique", "pathologie"].includes(familyOf(entry)),
+ ),
+);
+const metaRegimes = getGlossaryEntriesByFamily(entries, "meta-regime");
+
+const paradigmesCount = countGlossaryEntriesByKind(entries, "paradigme");
+const doctrinesCount = countGlossaryEntriesByKind(entries, "doctrine");
+
+const metaRegimesPreview = metaRegimes.slice(0, 6);
+
+const arcalite = bySlug.get("arcalite");
+const cratialite = bySlug.get("cratialite");
+const tension = bySlug.get("tension");
+const sceneDepreuve = bySlug.get("scene-depreuve");
+const archicration = bySlug.get("archicration");
const paradigmeArchicratiquePageHref = "/glossaire/paradigme-archicratique/";
const metaRegimesPageHref = "/glossaire/archicrations/";
@@ -33,6 +45,47 @@ const tensionsPageHref = "/glossaire/tensions-irreductibles/";
const verbesPageHref = "/glossaire/verbes-de-la-scene/";
const paradigmesPageHref = "/glossaire/paradigmes/";
const indexCompletPageHref = "/glossaire/index-complet/";
+
+const paradigmePortalItems = [
+ {
+ href: paradigmeArchicratiquePageHref,
+ title: "Paradigme archicratique",
+ description:
+ "Saisir la logique d’ensemble du système archicratique : de l’arcalité et de la cratialité jusqu’aux scènes, aux tensions, aux formes de co-viabilité et aux traditions de comparaison mobilisées.",
+ meta: "Portail de synthèse générale",
+ },
+];
+
+const approfondirPortalItems = [
+ {
+ href: tensionsPageHref,
+ title: "Tensions irréductibles",
+ description:
+ "Parcourir les dix tensions ontologiquement irréductibles et politiquement fondatrices à partir desquelles la co-viabilité doit être pensée.",
+ meta: "10 tensions structurantes",
+ },
+ {
+ href: verbesPageHref,
+ title: "Verbes de la scène",
+ description:
+ "Disposer d’un mini-glossaire opératoire pour décrire l’ouverture, l’entrave, la capture, la fermeture ou la remise en scène des architectures régulatrices.",
+ meta: "19 verbes d’analyse",
+ },
+ {
+ href: paradigmesPageHref,
+ title: "Cartographie théorique",
+ description:
+ "Situer l’archicratie dans son paysage de doctrines fondatrices et de paradigmes régulateurs.",
+ meta: `${doctrinesCount} doctrine${doctrinesCount > 1 ? "s" : ""} · ${paradigmesCount} paradigme${paradigmesCount > 1 ? "s" : ""}`,
+ },
+ {
+ href: indexCompletPageHref,
+ title: "Index complet",
+ description:
+ "Retrouver l’ensemble des entrées du glossaire dans une navigation alphabétique intégrale.",
+ meta: `${entries.length} entrée${entries.length > 1 ? "s" : ""}`,
+ },
+];
---
-
- Référentiel terminologique
- Glossaire archicratique
-
- Ce glossaire n’est pas seulement un index de définitions. Il constitue
- une porte d’entrée dans la pensée archicratique : une cartographie
- raisonnée des concepts fondamentaux, des scènes, des dynamiques et des
- méta-régimes à partir desquels une société peut être décrite comme
- organisation de tensions et recherche de co-viabilité.
-
-
-
+
{fondamentaux.length > 0 && (
-
-
-
-
- Concepts fondamentaux
-
-
- Ces notions forment la grammaire minimale de l’archicratie.
- Elles donnent accès à la structure générale du système.
-
-
-
-
-
-
+
+
+
)}
-
-
-
-
- Paradigme archicratique
-
-
- Cette page de synthèse offre une vue d’ensemble du système
- archicratique. Elle articule le noyau conceptuel, les scènes de
- comparution, les dynamiques, les tensions irréductibles, les
- méta-régimes de co-viabilité et le paysage théorique dans lequel
- l’archicratie se situe et se distingue.
-
-
-
-
- Ouvrir la synthèse
-
-
-
-
-
+
+
+
{scenes.length > 0 && (
-
-
-
-
- Scènes archicratiques
-
-
- Les scènes archicratiques rendent possible la comparution des
- architectures de régulation. Elles sont le lieu où l’ordre peut
- être exposé, discuté et révisé.
-
-
-
-
-
-
+
+
+
)}
{dynamiques.length > 0 && (
-
-
-
-
- Dynamiques archicratiques
-
-
- Cette famille rassemble les processus de déplacement, les dérives
- et les formes de pathologisation de la régulation archicratique.
-
-
-
-
-
-
+
+
+
)}
-
+
-
-
-
-
- Prolonger la lecture
-
-
- Quatre parcours complémentaires permettent d’élargir la lecture :
- l’un vers les tensions irréductibles, l’un vers les verbes de la scène
- archicratique, l’un vers le paysage théorique dans lequel l’archicratie
- se situe et se distingue, l’autre vers l’ensemble alphabétique complet
- des entrées du glossaire.
-
-
-
-
-
-
-
+
+
+