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; +--- + +
+ {entries.map((entry) => ( + + {entry.data.term} + {entry.data.definitionShort} + + ))} +
+ + \ 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; +--- + +
+ {items.map((item) => ( + + {item.title} + {item.description} + {item.meta} + + ))} +
+ + \ 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. -

-
-
- -
- {fondamentaux.map((entry) => ( - - {entry.data.term} - {entry.data.definitionShort} - - ))} -
-
+ + + )} -
-
-
-

- 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é. -

-
-
- -
- {scenes.map((entry) => ( - - {entry.data.term} - {entry.data.definitionShort} - - ))} -
-
+ + + )} {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. -

-
-
- -
- {dynamiques.map((entry) => ( - - {entry.data.term} - {entry.data.definitionShort} - - ))} -
-
+ + + )} -
-
-
-

- Méta-régimes archicratiques -

-

- Les méta-régimes décrivent les grandes formes historiques et - topologiques par lesquelles une société organise durablement ses - tensions et sa co-viabilité. -

-
- - - Explorer la cartographie complète - -
- + {metaRegimesPreview.length > 0 && ( -
- {metaRegimesPreview.map((entry) => ( - - {entry.data.term} - {entry.data.definitionShort} - - ))} -
+ )} -
+ -
-
-
-

- 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. -

-
-
- - -
-
+ + +