--- import GlossaryLayout from "../../layouts/GlossaryLayout.astro"; import GlossaryPortalAside from "../../components/GlossaryPortalAside.astro"; import GlossaryPortalHero from "../../components/GlossaryPortalHero.astro"; import GlossaryPortalSection from "../../components/GlossaryPortalSection.astro"; import GlossaryPortalStickySync from "../../components/GlossaryPortalStickySync.astro"; import { getCollection } from "astro:content"; import { hrefOfGlossaryEntry } from "../../lib/glossary"; const entries = await getCollection("glossaire"); const collator = new Intl.Collator("fr", { sensitivity: "base", numeric: true }); const kindLabels = { concept: "Concept", diagnostic: "Diagnostic", topologie: "Topologie", verbe: "Verbe", paradigme: "Paradigme", doctrine: "Doctrine", dispositif: "Dispositif", figure: "Figure", qualification: "Qualification", epistemologie: "Épistémologie", }; const domainLabels = { transversal: "Transversal", theorie: "Théorie", "cas-ia": "Cas IA", }; const levelLabels = { fondamental: "Fondamental", intermediaire: "Intermédiaire", avance: "Avancé", }; const sorted = [...entries].sort((a, b) => collator.compare(a.data.term, b.data.term)); function groupByInitial(list) { const map = new Map(); for (const entry of list) { const letter = (entry.data.term || "").trim().charAt(0).toUpperCase() || "#"; if (!map.has(letter)) map.set(letter, []); map.get(letter).push(entry); } return [...map.entries()].sort((a, b) => collator.compare(a[0], b[0])); } const groupedAlpha = groupByInitial(sorted); const totalEntries = sorted.length; const totalLetters = groupedAlpha.length; const paradigmesCount = entries.filter((entry) => entry.data.kind === "paradigme").length; const doctrinesCount = entries.filter((entry) => entry.data.kind === "doctrine").length; const verbesCount = entries.filter((entry) => entry.data.kind === "verbe").length; const casIaCount = entries.filter((entry) => entry.data.domain === "cas-ia").length; const pageItems = [ { href: "#index-alphabetique", label: "Index alphabétique" }, { href: "#prolonger-la-lecture", label: "Prolonger la lecture" }, ]; const usefulLinks = [ { href: "/glossaire/", label: "Accueil du glossaire" }, { href: "/glossaire/concepts-fondamentaux/", label: "Concepts fondamentaux" }, { href: "/glossaire/paradigme-archicratique/", label: "Paradigme archicratique" }, { href: "/glossaire/scenes-archicratiques/", label: "Scènes archicratiques" }, { href: "/glossaire/dynamiques-archicratiques/", label: "Dynamiques archicratiques" }, { href: "/glossaire/tensions-irreductibles/", label: "Tensions irréductibles" }, { href: "/glossaire/paradigmes/", label: "Paradigmes et doctrines" }, { href: "/glossaire/archicrations/", label: "Méta-régimes archicratiques" }, ]; const prolongerLinks = [ { href: "/glossaire/", title: "Accueil du glossaire", text: "Revenir à la cartographie générale du système archicratique.", }, { href: "/glossaire/concepts-fondamentaux/", title: "Concepts fondamentaux", text: "Repartir du noyau minimal : arcalité, cratialité, tension, archicration, co-viabilité, archicratie.", }, { href: "/glossaire/paradigmes/", title: "Paradigmes et doctrines", text: "Retrouver le paysage théorique au sein duquel l’archicratie se situe et se distingue.", }, { href: "/glossaire/archicrations/", title: "Méta-régimes archicratiques", text: "Parcourir les grandes formes de co-viabilité et leurs modulations historiques.", }, ]; ---
1 ? "s" : ""} · ${totalLetters} lettre${totalLetters > 1 ? "s" : ""}`} pageItems={pageItems} usefulLinks={usefulLinks} />

Repères de lecture

{paradigmesCount} paradigme{paradigmesCount > 1 ? "s" : ""} {doctrinesCount} doctrine{doctrinesCount > 1 ? "s" : ""} {verbesCount} verbe{verbesCount > 1 ? "s" : ""} {casIaCount} entrée{casIaCount > 1 ? "s" : ""} cas IA

Cet index complète les portails thématiques : il permet de retrouver rapidement une fiche, puis de repartir vers les grandes cartographies du glossaire.

1 ? "s" : ""}`} intro="Naviguer par lettre permet de retrouver rapidement chaque fiche du glossaire, tout en conservant ses principaux marqueurs de lecture." >
{groupedAlpha.map(([letter, items]) => (

{letter}

{items.length} entrée{items.length > 1 ? "s" : ""}
{items.map((entry) => (
{entry.data.term}

{entry.data.definitionShort}

{kindLabels[entry.data.kind] ?? entry.data.kind} {domainLabels[entry.data.domain] ?? entry.data.domain} {levelLabels[entry.data.level] ?? entry.data.level}

))}
))}
{prolongerLinks.map((item) => ( {item.title} {item.text} ))}