Compare commits

...

8 Commits

Author SHA1 Message Date
ee42e391e3 refactor(glossaire): centralize aside and home data
All checks were successful
SMOKE / smoke (push) Successful in 5s
CI / build-and-anchors (push) Successful in 48s
CI / build-and-anchors (pull_request) Successful in 43s
2026-03-25 16:48:43 +01:00
f7756be59e Merge pull request 'feat/glossaire-entry-relations-rendering' (#293) from feat/glossaire-entry-relations-rendering into main
All checks were successful
Proposer Apply (Queue) / apply-proposer (push) Successful in 27s
CI / build-and-anchors (push) Successful in 42s
SMOKE / smoke (push) Successful in 6s
Deploy staging+live (annotations) / deploy (push) Successful in 9m40s
Reviewed-on: #293
2026-03-25 15:39:41 +01:00
4abe70e10e refactor(glossaire): extract entry relations rendering
All checks were successful
SMOKE / smoke (push) Successful in 4s
CI / build-and-anchors (push) Successful in 42s
CI / build-and-anchors (pull_request) Successful in 41s
2026-03-25 15:30:51 +01:00
b2b4ec35c0 refactor(glossaire): preserve editorial order for entry relations 2026-03-25 15:20:39 +01:00
b255436958 Merge pull request 'refactor(glossaire): centralize glossary relation helpers' (#292) from feat/glossaire-ui-relations-foundation into main
All checks were successful
Proposer Apply (Queue) / apply-proposer (push) Successful in 24s
Deploy staging+live (annotations) / deploy (push) Successful in 9m2s
SMOKE / smoke (push) Successful in 5s
CI / build-and-anchors (push) Successful in 43s
Reviewed-on: #292
2026-03-25 14:17:11 +01:00
ad06b34a85 refactor(glossaire): centralize glossary relation helpers
All checks were successful
CI / build-and-anchors (pull_request) Successful in 42s
SMOKE / smoke (push) Successful in 3s
CI / build-and-anchors (push) Successful in 41s
2026-03-25 14:15:39 +01:00
a38f585f3d Merge pull request 'feat(glossaire): strengthen paradigms and support theories cross-links' (#291) from chore/glossaire-paradigmes-and-support-theories-mesh into main
All checks were successful
Proposer Apply (Queue) / apply-proposer (push) Successful in 14s
Deploy staging+live (annotations) / deploy (push) Successful in 9m54s
SMOKE / smoke (push) Successful in 6s
CI / build-and-anchors (push) Successful in 47s
CI / build-and-anchors (pull_request) Successful in 48s
Reviewed-on: #291
2026-03-25 10:30:37 +01:00
bf0dc125d1 feat(glossaire): strengthen paradigms and support theories cross-links
All checks were successful
SMOKE / smoke (push) Successful in 3s
CI / build-and-anchors (push) Successful in 44s
CI / build-and-anchors (pull_request) Successful in 1m19s
2026-03-25 10:28:42 +01:00
26 changed files with 1042 additions and 860 deletions

View File

@@ -1,258 +1,32 @@
---
import {
getGlossaryEntryAsideData,
getGlossaryPortalLinks,
hrefOfGlossaryEntry,
slugOfGlossaryEntry,
} from "../lib/glossary";
const {
currentEntry,
allEntries = [],
} = Astro.props;
const slugOf = (entry) => String(entry.id).replace(/\.(md|mdx)$/i, "");
const hrefOf = (entry) => `/glossaire/${slugOf(entry)}/`;
const currentSlug = slugOfGlossaryEntry(currentEntry);
const collator = new Intl.Collator("fr", { sensitivity: "base", numeric: true });
const bySlug = new Map(allEntries.map((entry) => [slugOf(entry), entry]));
const currentSlug = slugOf(currentEntry);
const {
displayFamily,
displayDomain,
displayLevel,
showNoyau,
showSameFamily,
fondamentaux,
sameFamilyTitle,
sameFamilyEntries,
relationSections,
contextualTheory,
} = getGlossaryEntryAsideData(currentEntry, allEntries);
const fondamentauxWanted = [
"archicratie",
"tension",
"arcalite",
"cratialite",
"archicration",
"co-viabilite",
];
const fondamentaux = fondamentauxWanted
.map((slug) => bySlug.get(slug))
.filter(Boolean);
function resolveList(slugs = []) {
return slugs
.map((slug) => bySlug.get(String(slug || "").trim()))
.filter(Boolean);
}
function uniqueBySlug(entries) {
const seen = new Set();
const out = [];
for (const entry of entries) {
const slug = slugOf(entry);
if (seen.has(slug)) continue;
seen.add(slug);
out.push(entry);
}
return out;
}
function sortByTerm(entries = []) {
return [...entries].sort((a, b) => collator.compare(a.data.term, b.data.term));
}
function familyOf(entry) {
return entry?.data?.family ?? "";
}
function kindOf(entry) {
return entry?.data?.kind ?? "";
}
const relatedEntries = sortByTerm(
uniqueBySlug(resolveList(currentEntry.data.related ?? []))
);
const opposedEntries = sortByTerm(
uniqueBySlug(resolveList(currentEntry.data.opposedTo ?? []))
);
const seeAlsoEntries = sortByTerm(
uniqueBySlug(resolveList(currentEntry.data.seeAlso ?? []))
);
const familyLabels = {
"concept-fondamental": "Concept fondamental",
scene: "Scène",
dynamique: "Dynamique",
pathologie: "Pathologie",
topologie: "Topologie",
"meta-regime": "Méta-régime",
paradigme: "Paradigme",
doctrine: "Doctrine",
verbe: "Verbe",
"dispositif-ia": "Dispositif IA",
"tension-irreductible": "Tension irréductible",
figure: "Figure",
qualification: "Qualification",
epistemologie: "Épistémologie",
};
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 currentFamily = familyOf(currentEntry);
const displayFamily =
familyLabels[currentFamily] ??
kindLabels[currentEntry.data.kind] ??
"Fiche";
const displayDomain =
domainLabels[currentEntry.data.domain] ??
currentEntry.data.domain;
const displayLevel =
levelLabels[currentEntry.data.level] ??
currentEntry.data.level;
function entriesOfSameFamily(entry) {
const family = familyOf(entry);
if (!family) return [];
if (family === "concept-fondamental") {
return fondamentaux;
}
return sortByTerm(
allEntries.filter((item) => familyOf(item) === family)
);
}
const sameFamilyEntries = entriesOfSameFamily(currentEntry);
const familySectionTitles = {
"concept-fondamental": "Noyau archicratique",
scene: "Scènes archicratiques",
dynamique: "Dynamiques archicratiques",
pathologie: "Pathologies archicratiques",
topologie: "Topologies voisines",
"meta-regime": "Méta-régimes archicratiques",
paradigme: "Paradigmes voisins",
doctrine: "Doctrines fondatrices",
verbe: "Verbes de la scène",
"dispositif-ia": "Dispositifs IA",
"tension-irreductible": "Tensions irréductibles",
figure: "Figures archicratiques",
qualification: "Qualifications archicratiques",
epistemologie: "Outillage épistémologique",
};
const sameFamilyTitle =
familySectionTitles[currentFamily] ?? "Même famille";
function isTheoryEntry(entry) {
const family = familyOf(entry);
const kind = kindOf(entry);
return (
family === "paradigme" ||
family === "doctrine" ||
kind === "paradigme" ||
kind === "doctrine"
);
}
function contextualTheoryFor(entry) {
const fromRelations = uniqueBySlug([
...resolveList(entry.data.related ?? []),
...resolveList(entry.data.seeAlso ?? []),
...resolveList(entry.data.opposedTo ?? []),
])
.filter((item) => slugOf(item) !== currentSlug)
.filter((item) => isTheoryEntry(item));
if (fromRelations.length > 0) {
return sortByTerm(fromRelations).slice(0, 6);
}
if (familyOf(entry) === "paradigme") {
const preferred = [
"gouvernementalite",
"gouvernementalite-algorithmique",
"cybernetique",
"biopolitique",
"domination-legale-rationnelle",
"democratie-deliberative",
"gouvernance-des-communs",
"agencement-machinique",
"pharmacologie-technique",
"preemption-algorithmique",
"dissensus-politique",
"lieu-vide-du-pouvoir",
"habitus-et-violence-symbolique",
"theorie-de-la-resonance",
"conatus-et-multitude",
"configuration-et-interdependance",
"technodiversite-et-cosmotechnie",
"grammatisation-et-proletarisation-cognitive",
];
return uniqueBySlug(
preferred
.filter((slug) => slug !== currentSlug)
.map((slug) => bySlug.get(slug))
.filter(Boolean)
).slice(0, 8);
}
if (familyOf(entry) === "doctrine") {
const preferred = [
"contractualisme-hobbesien",
"droit-naturel-et-propriete",
"volonte-generale",
"decisionnisme-souverain",
];
return uniqueBySlug(
preferred
.filter((slug) => slug !== currentSlug)
.map((slug) => bySlug.get(slug))
.filter(Boolean)
).slice(0, 6);
}
return [];
}
const contextualTheory = contextualTheoryFor(currentEntry);
const showNoyau = currentFamily !== "concept-fondamental" && fondamentaux.length > 0;
const showSameFamily =
sameFamilyEntries.length > 0 && currentFamily !== "concept-fondamental";
const relationSections = [
{
title: "Concepts liés",
items: relatedEntries,
},
{
title: "En tension avec",
items: opposedEntries,
},
{
title: "Voir aussi",
items: seeAlsoEntries,
},
].filter((section) => section.items.length > 0);
const portalLinks = getGlossaryPortalLinks();
---
<nav class="glossary-aside" aria-label="Navigation du glossaire">
@@ -264,20 +38,23 @@ const relationSections = [
<span class="glossary-aside__pill glossary-aside__pill--family">
{displayFamily}
</span>
<span class="glossary-aside__pill">{displayDomain}</span>
<span class="glossary-aside__pill">{displayLevel}</span>
{displayDomain && (
<span class="glossary-aside__pill">{displayDomain}</span>
)}
{displayLevel && (
<span class="glossary-aside__pill">{displayLevel}</span>
)}
</div>
</div>
<section class="glossary-aside__block">
<h2 class="glossary-aside__heading">Portails</h2>
<ul class="glossary-aside__list">
<li><a href="/glossaire/">Accueil du glossaire</a></li>
<li><a href="/glossaire/index-complet/">Index complet</a></li>
<li><a href="/glossaire/paradigme-archicratique/">Paradigme archicratique</a></li>
<li><a href="/glossaire/archicrations/">Archicrations</a></li>
<li><a href="/glossaire/paradigmes/">Paradigmes et doctrines</a></li>
<li><a href="/glossaire/tensions-irreductibles/">Tensions irréductibles</a></li>
{portalLinks.map((item) => (
<li><a href={item.href}>{item.label}</a></li>
))}
</ul>
</section>
@@ -286,11 +63,11 @@ const relationSections = [
<h2 class="glossary-aside__heading">Noyau archicratique</h2>
<ul class="glossary-aside__list">
{fondamentaux.map((entry) => {
const active = slugOf(entry) === currentSlug;
const active = slugOfGlossaryEntry(entry) === currentSlug;
return (
<li>
<a
href={hrefOf(entry)}
href={hrefOfGlossaryEntry(entry)}
aria-current={active ? "page" : undefined}
class={active ? "is-active" : undefined}
>
@@ -308,11 +85,11 @@ const relationSections = [
<h2 class="glossary-aside__heading">{sameFamilyTitle}</h2>
<ul class="glossary-aside__list">
{sameFamilyEntries.map((entry) => {
const active = slugOf(entry) === currentSlug;
const active = slugOfGlossaryEntry(entry) === currentSlug;
return (
<li>
<a
href={hrefOf(entry)}
href={hrefOfGlossaryEntry(entry)}
aria-current={active ? "page" : undefined}
class={active ? "is-active" : undefined}
>
@@ -334,7 +111,7 @@ const relationSections = [
<h3 class="glossary-aside__subheading">{section.title}</h3>
<ul class="glossary-aside__list">
{section.items.map((entry) => (
<li><a href={hrefOf(entry)}>{entry.data.term}</a></li>
<li><a href={hrefOfGlossaryEntry(entry)}>{entry.data.term}</a></li>
))}
</ul>
</>
@@ -347,7 +124,7 @@ const relationSections = [
<h2 class="glossary-aside__heading">Paysage théorique</h2>
<ul class="glossary-aside__list">
{contextualTheory.map((entry) => (
<li><a href={hrefOf(entry)}>{entry.data.term}</a></li>
<li><a href={hrefOfGlossaryEntry(entry)}>{entry.data.term}</a></li>
))}
</ul>
</section>

View File

@@ -1,88 +1,24 @@
---
import {
getFondamentaux,
getGlossaryHomeStats,
getGlossaryPortalLinks,
hrefOfGlossaryEntry,
} from "../lib/glossary";
const {
allEntries = [],
} = Astro.props;
const slugOf = (entry) => String(entry.id).replace(/\.(md|mdx)$/i, "");
const hrefOf = (entry) => `/glossaire/${slugOf(entry)}/`;
const fondamentaux = getFondamentaux(allEntries);
const portalLinks = getGlossaryPortalLinks();
const collator = new Intl.Collator("fr", { sensitivity: "base", numeric: true });
const bySlug = new Map(allEntries.map((entry) => [slugOf(entry), entry]));
function sortByTerm(list = []) {
return [...list].sort((a, b) => collator.compare(a.data.term, b.data.term));
}
function familyOf(entry) {
const explicit = entry?.data?.family;
if (explicit) return explicit;
const slug = slugOf(entry);
const kind = entry?.data?.kind;
if (kind === "paradigme") return "paradigme";
if (kind === "doctrine") return "doctrine";
if (kind === "verbe") return "verbe";
if (slug === "scene-depreuve") return "scene";
if (slug === "autarchicratie") return "pathologie";
if (slug === "obliteration-archicratique") return "dynamique";
if (
[
"archicratie",
"arcalite",
"cratialite",
"archicration",
"co-viabilite",
"tension",
].includes(slug)
) {
return "concept-fondamental";
}
if (slug === "archicrations-differentielles-et-formes-hybrides") {
return "topologie";
}
if (kind === "topologie" && slug.startsWith("archicrations-")) {
return "meta-regime";
}
return "";
}
const fondamentauxWanted = [
"archicratie",
"arcalite",
"cratialite",
"archicration",
"co-viabilite",
"tension",
];
const fondamentaux = sortByTerm(
fondamentauxWanted
.map((slug) => bySlug.get(slug))
.filter(Boolean)
);
const totalEntries = allEntries.length;
const paradigmesCount = allEntries.filter((entry) => entry.data.kind === "paradigme").length;
const doctrinesCount = allEntries.filter((entry) => entry.data.kind === "doctrine").length;
const metaRegimesCount = allEntries.filter((entry) => familyOf(entry) === "meta-regime").length;
const portalLinks = [
{ href: "/glossaire/concepts-fondamentaux/", label: "Concepts fondamentaux" },
{ href: "/glossaire/index-complet/", label: "Index complet" },
{ 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/archicrations/", label: "Méta-régimes archicratiques" },
{ href: "/glossaire/paradigmes/", label: "Paradigmes et doctrines" },
{ href: "/glossaire/verbes-de-la-scene/", label: "Verbes de la scène" },
];
const {
totalEntries,
paradigmesCount,
doctrinesCount,
metaRegimesCount,
} = getGlossaryHomeStats(allEntries);
---
<nav class="glossary-home-aside" aria-label="Navigation du portail du glossaire">
@@ -115,7 +51,7 @@ const portalLinks = [
<h2 class="glossary-home-aside__heading">Noyau archicratique</h2>
<ul class="glossary-home-aside__list">
{fondamentaux.map((entry) => (
<li><a href={hrefOf(entry)}>{entry.data.term}</a></li>
<li><a href={hrefOfGlossaryEntry(entry)}>{entry.data.term}</a></li>
))}
</ul>
</section>

View File

@@ -0,0 +1,32 @@
---
import type { GlossaryRelationBlock } from "../lib/glossary";
import { hrefOfGlossaryEntry } from "../lib/glossary";
interface Props {
relationBlocks: GlossaryRelationBlock[];
}
const { relationBlocks = [] } = Astro.props;
---
{relationBlocks.length > 0 && (
<section class="glossary-relations" aria-label="Relations conceptuelles">
<h2>Relations conceptuelles</h2>
<div class="glossary-relations-grid">
{relationBlocks.map((block) => (
<section class={`glossary-relations-card ${block.className}`}>
<h3>{block.title}</h3>
<ul>
{block.items.map((item) => (
<li>
<a href={hrefOfGlossaryEntry(item)}>{item.data.term}</a>
<span> — {item.data.definitionShort}</span>
</li>
))}
</ul>
</section>
))}
</div>
</section>
)}

View File

@@ -15,9 +15,9 @@ kind: "paradigme"
family: "paradigme"
domain: "theorie"
level: "avance"
related: ["archicratie", "cratialite", "archicration", "tension", "co-viabilite", "theorie-de-lacteur-reseau", "transduction-et-individuation"]
related: ["archicratie", "cratialite", "archicration", "tension", "co-viabilite", "theorie-de-lacteur-reseau", "transduction-et-individuation", "configuration-et-interdependance"]
opposedTo: ["decisionnisme-souverain", "domination-legale-rationnelle"]
seeAlso: ["pharmacologie-technique", "preemption-algorithmique", "technodiversite-et-cosmotechnie", "configuration-et-interdependance"]
seeAlso: ["pharmacologie-technique", "preemption-algorithmique", "technodiversite-et-cosmotechnie"]
---
Lagencement machinique désigne un paradigme de régulation fondé sur des agencements hétérogènes de flux, de machines, de signes, de corps et de dispositifs, sans centre souverain unique ni forme close préalable.

View File

@@ -12,9 +12,9 @@ kind: "concept"
family: "concept-fondamental"
domain: "transversal"
level: "fondamental"
related: ["archicratie", "cratialite", "archicration", "co-viabilite", "tension"]
related: ["archicratie", "cratialite", "archicration", "co-viabilite", "tension", "domination-legale-rationnelle", "fait-social-total"]
opposedTo: ["autarchicratie"]
seeAlso: ["obliteration-archicratique"]
seeAlso: ["obliteration-archicratique", "hyperarcalite", "archicrations-scripturo-normatives"]
---
Larcalité désigne le vecteur fondationnel et structurant de toute régulation.

View File

@@ -12,9 +12,9 @@ kind: "epistemologie"
family: "epistemologie"
domain: "theorie"
level: "avance"
related: ["archicratie", "archidiagnostic", "archicratique", "meta-regime-archicratique", "figures-archicratiques", "tension"]
related: ["archicratie", "archidiagnostic", "archicratique", "meta-regime-archicratique", "figures-archicratiques", "tension", "institution-invisible", "pensee-complexe"]
opposedTo: []
seeAlso: ["archeogenese", "co-viabilite", "scene-depreuve", "institution-invisible", "pensee-complexe"]
seeAlso: ["archeogenese", "co-viabilite", "scene-depreuve"]
---
Larchicratistique désigne le champ danalyse consacré à la description, à la comparaison et au diagnostic des architectures de régulation et de leurs formes de co-viabilité.

View File

@@ -12,9 +12,9 @@ kind: "concept"
family: "dynamique"
domain: "transversal"
level: "intermediaire"
related: ["co-viabilite", "tension", "archicration", "archicratie", "scene-depreuve", "archicratisation", "monde-instituable"]
related: ["co-viabilite", "tension", "archicration", "archicratie", "scene-depreuve", "archicratisation", "monde-instituable", "regime-de-co-viabilite", "regulation-morphogenetique-des-interdependances"]
opposedTo: ["desarchicratisation"]
seeAlso: ["archicration-obliteree", "autarchicratie", "regime-de-co-viabilite", "regulation-morphogenetique-des-interdependances"]
seeAlso: ["archicration-obliteree", "autarchicratie"]
---
La co-viabilisation désigne le processus par lequel des tensions, des formes de vie, des temporalités et des intérêts hétérogènes deviennent mutuellement tenables dans un cadre régulatoire donné.

View File

@@ -15,9 +15,9 @@ kind: "paradigme"
family: "paradigme"
domain: "theorie"
level: "avance"
related: ["archicratie", "co-viabilite", "tension", "conatus-et-multitude", "transduction-et-individuation", "gouvernance-des-communs"]
related: ["archicratie", "co-viabilite", "tension", "conatus-et-multitude", "transduction-et-individuation", "gouvernance-des-communs", "pensee-complexe", "fait-social-total"]
opposedTo: ["decisionnisme-souverain"]
seeAlso: ["fait-social-total", "domination-legale-rationnelle", "theorie-de-la-justification", "pensee-complexe"]
seeAlso: ["domination-legale-rationnelle", "theorie-de-la-justification"]
---
La configuration et linterdépendance désignent un paradigme de régulation dans lequel les formes sociales émergent de chaînes dinterdépendance, de contraintes réciproques et de configurations évolutives qui transforment les acteurs autant quelles les lient.

View File

@@ -15,9 +15,9 @@ kind: "doctrine"
family: "doctrine"
domain: "theorie"
level: "fondamental"
related: ["decisionnisme-souverain", "exception-souveraine", "archicratie", "tension", "co-viabilite", "domination-legale-rationnelle"]
related: ["decisionnisme-souverain", "exception-souveraine", "archicratie", "archicration", "tension", "co-viabilite", "domination-legale-rationnelle", "droit-naturel-et-propriete"]
opposedTo: ["volonte-generale", "democratie-deliberative", "gouvernance-des-communs"]
seeAlso: ["droit-naturel-et-propriete", "gouvernementalite", "archicration", "exception-souveraine"]
seeAlso: ["gouvernementalite", "volonte-generale"]
---
Le contractualisme hobbesien désigne la doctrine selon laquelle lordre politique tire sa légitimité première de sa capacité à conjurer la conflictualité destructrice et à garantir la sécurité commune.

View File

@@ -12,9 +12,9 @@ kind: "concept"
family: "concept-fondamental"
domain: "transversal"
level: "fondamental"
related: ["archicratie", "arcalite", "archicration", "tension", "co-viabilite"]
related: ["archicratie", "arcalite", "archicration", "tension", "co-viabilite", "agencement-machinique", "cybernetique", "gouvernementalite-algorithmique"]
opposedTo: ["autarchicratie"]
seeAlso: ["obliteration-archicratique"]
seeAlso: ["obliteration-archicratique", "hypercratialite"]
---
La cratialité désigne le vecteur opératoire et transformateur de toute régulation.

View File

@@ -15,9 +15,9 @@ kind: "paradigme"
family: "paradigme"
domain: "theorie"
level: "fondamental"
related: ["archicratie", "tension", "cratialite", "gouvernementalite-algorithmique", "preemption-algorithmique", "regulation-technique-et-legitimation-democratique"]
related: ["archicratie", "tension", "cratialite", "gouvernementalite", "gouvernementalite-algorithmique", "preemption-algorithmique", "regulation-technique-et-legitimation-democratique", "pharmacologie-technique"]
opposedTo: []
seeAlso: ["gouvernementalite", "biopolitique", "pharmacologie-technique", "technodiversite-et-cosmotechnie", "pensee-complexe"]
seeAlso: ["biopolitique", "technodiversite-et-cosmotechnie", "pensee-complexe"]
---
La cybernétique désigne le paradigme selon lequel un système peut être compris et gouverné à partir de ses flux dinformation, de ses boucles de rétroaction, de ses écarts et de ses mécanismes de correction.

View File

@@ -15,9 +15,9 @@ kind: "paradigme"
family: "paradigme"
domain: "theorie"
level: "fondamental"
related: ["volonte-generale", "archicration", "scene-depreuve", "archicratie", "gouvernance-des-communs", "theorie-de-la-justification"]
related: ["volonte-generale", "archicration", "scene-depreuve", "archicratie", "gouvernance-des-communs", "theorie-de-la-justification", "dissensus-politique", "lieu-vide-du-pouvoir"]
opposedTo: ["decisionnisme-souverain", "exception-souveraine", "preemption-algorithmique"]
seeAlso: ["dissensus-politique", "lieu-vide-du-pouvoir", "domination-legale-rationnelle", "gouvernementalite"]
seeAlso: ["domination-legale-rationnelle", "gouvernementalite"]
---
La démocratie délibérative désigne le paradigme politique selon lequel la légitimité dun ordre collectif doit se fonder sur la discussion publique, léchange argumenté et la formation procédurale dun accord révisable.

View File

@@ -15,9 +15,9 @@ kind: "paradigme"
family: "paradigme"
domain: "theorie"
level: "fondamental"
related: ["archicration", "scene-depreuve", "tension", "archicratie", "pluralite-natalite-action", "lieu-vide-du-pouvoir"]
related: ["archicration", "scene-depreuve", "tension", "archicratie", "pluralite-natalite-action", "lieu-vide-du-pouvoir", "democratie-deliberative", "visibilite-mediatique-et-reconnaissance-symbolique"]
opposedTo: ["decisionnisme-souverain", "preemption-algorithmique", "autarchicratie"]
seeAlso: ["democratie-deliberative", "volonte-generale", "co-viabilite", "visibilite-mediatique-et-reconnaissance-symbolique"]
seeAlso: ["volonte-generale", "co-viabilite"]
---
Le dissensus politique désigne le paradigme dans lequel le litige, le désaccord et lapparition conflictuelle des voix exclues constituent une dimension constitutive de la scène commune.

View File

@@ -15,9 +15,9 @@ kind: "doctrine"
family: "doctrine"
domain: "theorie"
level: "fondamental"
related: ["contractualisme-hobbesien", "volonte-generale", "archicratie", "co-viabilite", "domination-legale-rationnelle"]
related: ["contractualisme-hobbesien", "volonte-generale", "archicratie", "archicration", "co-viabilite", "domination-legale-rationnelle", "democratie-deliberative"]
opposedTo: ["decisionnisme-souverain"]
seeAlso: ["democratie-deliberative", "gouvernementalite", "archicration"]
seeAlso: ["gouvernementalite"]
---
Le droit naturel et la propriété désignent la doctrine fondatrice qui fait de la loi naturelle, de la propriété et du consentement des gouvernés les principes supérieurs dun ordre politique chargé avant tout de protéger des droits préexistants.

View File

@@ -15,9 +15,9 @@ kind: "paradigme"
family: "paradigme"
domain: "theorie"
level: "intermediaire"
related: ["archicratie", "arcalite", "co-viabilite", "tension", "archicrations-proto-symboliques", "archicrations-sacrales-non-etatiques"]
related: ["archicratie", "arcalite", "co-viabilite", "tension", "archicrations-proto-symboliques", "archicrations-sacrales-non-etatiques", "configuration-et-interdependance", "habitus-et-violence-symbolique"]
opposedTo: ["preemption-algorithmique"]
seeAlso: ["configuration-et-interdependance", "theorie-de-la-resonance", "gouvernance-des-communs", "habitus-et-violence-symbolique"]
seeAlso: ["theorie-de-la-resonance", "gouvernance-des-communs"]
---
Le fait social total désigne un paradigme de régulation dans lequel les échanges, obligations et symbolisations engagent simultanément les dimensions économiques, juridiques, rituelles, politiques et affectives de la vie collective.

View File

@@ -15,9 +15,9 @@ kind: "paradigme"
family: "paradigme"
domain: "theorie"
level: "intermediaire"
related: ["co-viabilite", "archicratie", "democratie-deliberative", "tension", "domination-legale-rationnelle", "gouvernementalite"]
related: ["co-viabilite", "archicratie", "democratie-deliberative", "tension", "domination-legale-rationnelle", "gouvernementalite", "configuration-et-interdependance"]
opposedTo: ["decisionnisme-souverain", "exception-souveraine"]
seeAlso: ["configuration-et-interdependance", "theorie-de-la-justification", "meta-regime-archicratique"]
seeAlso: ["theorie-de-la-justification", "meta-regime-archicratique", "cosmopolitique"]
---
La gouvernance des communs désigne le paradigme de régulation fondé sur la coordination collective, située et polycentrique de ressources ou dusages partagés par des communautés dacteurs.

View File

@@ -15,9 +15,9 @@ kind: "paradigme"
family: "paradigme"
domain: "cas-ia"
level: "intermediaire"
related: ["gouvernementalite", "cybernetique", "autarchicratie", "obliteration-archicratique", "cratialite", "preemption-algorithmique", "regulation-technique-et-legitimation-democratique"]
related: ["gouvernementalite", "cybernetique", "autarchicratie", "obliteration-archicratique", "cratialite", "preemption-algorithmique", "regulation-technique-et-legitimation-democratique", "archicration", "audit-archicratique"]
opposedTo: []
seeAlso: ["archicratie", "archicration", "co-viabilite", "tension", "audit-archicratique", "tribunal-de-lalgorithme", "biopolitique"]
seeAlso: ["archicratie", "co-viabilite", "tension", "tribunal-de-lalgorithme", "biopolitique"]
---
La gouvernementalité algorithmique désigne le paradigme contemporain dans lequel la régulation tend à sappuyer sur des traitements automatisés de données, des calculs prédictifs, des classements, des seuils de risque et des ajustements opérés à distance par des systèmes techniques.

View File

@@ -15,9 +15,9 @@ kind: "paradigme"
family: "paradigme"
domain: "theorie"
level: "fondamental"
related: ["archicratie", "biopolitique", "gouvernementalite-algorithmique", "scene-depreuve", "preemption-algorithmique", "domination-legale-rationnelle"]
related: ["archicratie", "biopolitique", "gouvernementalite-algorithmique", "scene-depreuve", "preemption-algorithmique", "domination-legale-rationnelle", "cybernetique", "pharmacologie-technique"]
opposedTo: []
seeAlso: ["cybernetique", "volonte-generale", "lieu-vide-du-pouvoir", "pharmacologie-technique"]
seeAlso: ["volonte-generale", "lieu-vide-du-pouvoir"]
---
La gouvernementalité désigne le paradigme danalyse dans lequel le pouvoir est pensé comme conduite des conduites, à travers des savoirs, des dispositifs, des calculs et des techniques orientés vers la gestion des comportements collectifs.

View File

@@ -15,9 +15,9 @@ kind: "paradigme"
family: "paradigme"
domain: "theorie"
level: "avance"
related: ["archicratie", "co-viabilite", "tension", "preemption-algorithmique", "grammatisation-et-proletarisation-cognitive", "technodiversite-et-cosmotechnie", "memoire-symbolique-et-instantaneite-computationnelle"]
related: ["archicratie", "co-viabilite", "tension", "preemption-algorithmique", "grammatisation-et-proletarisation-cognitive", "technodiversite-et-cosmotechnie", "memoire-symbolique-et-instantaneite-computationnelle", "gouvernementalite-algorithmique", "scene-depreuve"]
opposedTo: ["preemption-algorithmique"]
seeAlso: ["agencement-machinique", "gouvernementalite-algorithmique", "scene-depreuve", "theorie-de-la-resonance"]
seeAlso: ["agencement-machinique", "theorie-de-la-resonance"]
---
La pharmacologie technique désigne un paradigme de régulation fondé sur lidée que toute technique est à la fois remède et poison : elle peut soutenir des formes de mémoire, de soin, de transmission et de délibération, ou au contraire accentuer lautomatisation, la désynchronisation, lentropie attentionnelle et la dépossession cognitive.

View File

@@ -15,9 +15,9 @@ kind: "paradigme"
family: "paradigme"
domain: "theorie"
level: "avance"
related: ["archicration", "scene-depreuve", "dissensus-politique", "archicratie", "lieu-vide-du-pouvoir", "theorie-de-la-resonance"]
related: ["archicration", "scene-depreuve", "dissensus-politique", "archicratie", "lieu-vide-du-pouvoir", "theorie-de-la-resonance", "visibilite-mediatique-et-reconnaissance-symbolique", "conatus-et-multitude"]
opposedTo: ["preemption-algorithmique", "exception-souveraine"]
seeAlso: ["democratie-deliberative", "transduction-et-individuation", "visibilite-mediatique-et-reconnaissance-symbolique", "conatus-et-multitude"]
seeAlso: ["democratie-deliberative", "transduction-et-individuation"]
---
La pluralité, la natalité et laction désignent un paradigme politique dans lequel la régulation doit ménager lapparition de sujets pluriels capables dinitiative, daction concertée et dinauguration imprévisible dans un monde commun.

View File

@@ -15,7 +15,7 @@ kind: "paradigme"
family: "paradigme"
domain: "theorie"
level: "avance"
related: ["dissensus-politique", "scene-depreuve", "democratie-deliberative", "archicration", "gouvernance-des-communs"]
related: ["dissensus-politique", "scene-depreuve", "democratie-deliberative", "archicration", "gouvernance-des-communs", "archicratie"]
opposedTo: ["decisionnisme-souverain"]
seeAlso: ["configuration-et-interdependance", "habitus-et-violence-symbolique", "tribunal-de-lalgorithme", "journal-de-justification"]
---

View File

@@ -15,9 +15,9 @@ kind: "paradigme"
family: "paradigme"
domain: "theorie"
level: "intermediaire"
related: ["archicratie", "co-viabilite", "tension", "scene-depreuve", "pluralite-natalite-action", "pharmacologie-technique"]
related: ["archicratie", "co-viabilite", "tension", "scene-depreuve", "pluralite-natalite-action", "pharmacologie-technique", "resonance-sociale", "visibilite-mediatique-et-reconnaissance-symbolique"]
opposedTo: ["preemption-algorithmique", "domination-legale-rationnelle"]
seeAlso: ["habitus-et-violence-symbolique", "dissensus-politique", "memoire-symbolique-et-instantaneite-computationnelle", "visibilite-mediatique-et-reconnaissance-symbolique"]
seeAlso: ["habitus-et-violence-symbolique", "dissensus-politique", "memoire-symbolique-et-instantaneite-computationnelle"]
---
La théorie de la résonance désigne un paradigme relationnel dans lequel la qualité dun ordre dépend de la possibilité pour les sujets et les mondes quils habitent dentrer dans des rapports de réponse, découte et de transformation mutuelle.

View File

@@ -15,9 +15,9 @@ kind: "doctrine"
family: "doctrine"
domain: "theorie"
level: "fondamental"
related: ["archicratie", "archicration", "scene-depreuve", "co-viabilite", "democratie-deliberative"]
related: ["archicratie", "archicration", "scene-depreuve", "co-viabilite", "democratie-deliberative", "dissensus-politique", "lieu-vide-du-pouvoir"]
opposedTo: ["contractualisme-hobbesien", "droit-naturel-et-propriete", "decisionnisme-souverain"]
seeAlso: ["dissensus-politique", "pluralite-natalite-action", "gouvernementalite", "lieu-vide-du-pouvoir"]
seeAlso: ["pluralite-natalite-action", "gouvernementalite"]
---
La volonté générale désigne la doctrine selon laquelle un ordre politique légitime doit pouvoir être rapporté à une orientation commune irréductible à la simple agrégation des intérêts particuliers.

561
src/lib/glossary.ts Normal file
View File

@@ -0,0 +1,561 @@
import type { CollectionEntry } from "astro:content";
export type GlossaryEntry = CollectionEntry<"glossaire">;
export type GlossaryPortalLink = {
href: string;
label: string;
};
export type GlossaryRelationSection = {
title: string;
items: GlossaryEntry[];
};
export type GlossaryRelationBlock = GlossaryRelationSection & {
className: string;
};
export type GlossaryHomeStats = {
totalEntries: number;
paradigmesCount: number;
doctrinesCount: number;
metaRegimesCount: number;
};
export type GlossaryEntryAsideData = {
displayFamily: string;
displayDomain: string;
displayLevel: string;
showNoyau: boolean;
showSameFamily: boolean;
fondamentaux: GlossaryEntry[];
sameFamilyTitle: string;
sameFamilyEntries: GlossaryEntry[];
relationSections: GlossaryRelationSection[];
contextualTheory: GlossaryEntry[];
};
export type GlossaryHomeData = {
fondamentaux: GlossaryEntry[];
scenes: GlossaryEntry[];
dynamiques: GlossaryEntry[];
metaRegimes: GlossaryEntry[];
metaRegimesPreview: GlossaryEntry[];
arcalite?: GlossaryEntry;
cratialite?: GlossaryEntry;
tension?: GlossaryEntry;
sceneDepreuve?: GlossaryEntry;
archicration?: GlossaryEntry;
};
export const GLOSSARY_COLLATOR = new Intl.Collator("fr", {
sensitivity: "base",
numeric: true,
});
export const FAMILY_LABELS: Record<string, string> = {
"concept-fondamental": "Concept fondamental",
scene: "Scène",
dynamique: "Dynamique",
pathologie: "Pathologie",
topologie: "Topologie",
"meta-regime": "Méta-régime",
paradigme: "Paradigme",
doctrine: "Doctrine",
verbe: "Verbe",
"dispositif-ia": "Dispositif IA",
"tension-irreductible": "Tension irréductible",
figure: "Figure",
qualification: "Qualification",
epistemologie: "Épistémologie",
};
export const KIND_LABELS: Record<string, string> = {
concept: "Concept",
diagnostic: "Diagnostic",
topologie: "Topologie",
verbe: "Verbe",
paradigme: "Paradigme",
doctrine: "Doctrine",
dispositif: "Dispositif",
figure: "Figure",
qualification: "Qualification",
epistemologie: "Épistémologie",
};
export const DOMAIN_LABELS: Record<string, string> = {
transversal: "Transversal",
theorie: "Théorie",
"cas-ia": "Cas IA",
};
export const LEVEL_LABELS: Record<string, string> = {
fondamental: "Fondamental",
intermediaire: "Intermédiaire",
avance: "Avancé",
};
export const FONDAMENTAUX_WANTED = [
"archicratie",
"arcalite",
"cratialite",
"archicration",
"co-viabilite",
"tension",
] as const;
export const FAMILY_SECTION_TITLES: Record<string, string> = {
"concept-fondamental": "Noyau archicratique",
scene: "Scènes archicratiques",
dynamique: "Dynamiques archicratiques",
pathologie: "Pathologies archicratiques",
topologie: "Topologies voisines",
"meta-regime": "Méta-régimes archicratiques",
paradigme: "Paradigmes voisins",
doctrine: "Doctrines fondatrices",
verbe: "Verbes de la scène",
"dispositif-ia": "Dispositifs IA",
"tension-irreductible": "Tensions irréductibles",
figure: "Figures archicratiques",
qualification: "Qualifications archicratiques",
epistemologie: "Outillage épistémologique",
};
const PREFERRED_PARADIGME_SLUGS = [
"gouvernementalite",
"gouvernementalite-algorithmique",
"cybernetique",
"biopolitique",
"domination-legale-rationnelle",
"democratie-deliberative",
"gouvernance-des-communs",
"agencement-machinique",
"pharmacologie-technique",
"preemption-algorithmique",
"dissensus-politique",
"lieu-vide-du-pouvoir",
"habitus-et-violence-symbolique",
"theorie-de-la-resonance",
"conatus-et-multitude",
"configuration-et-interdependance",
"technodiversite-et-cosmotechnie",
"grammatisation-et-proletarisation-cognitive",
] as const;
const PREFERRED_DOCTRINE_SLUGS = [
"contractualisme-hobbesien",
"droit-naturel-et-propriete",
"volonte-generale",
"decisionnisme-souverain",
] as const;
export function normalizeGlossarySlug(value: unknown): string {
return String(value ?? "")
.trim()
.replace(/^\/+|\/+$/g, "")
.replace(/\.(md|mdx)$/i, "")
.toLowerCase();
}
export function slugOfGlossaryEntry(
entry: Pick<GlossaryEntry, "id"> | null | undefined,
): string {
return normalizeGlossarySlug(entry?.id ?? "");
}
export function hrefOfGlossaryEntry(
entry: Pick<GlossaryEntry, "id"> | null | undefined,
): string {
const slug = slugOfGlossaryEntry(entry);
return slug ? `/glossaire/${slug}/` : "/glossaire/";
}
export function buildGlossaryBySlug(
entries: GlossaryEntry[] = [],
): Map<string, GlossaryEntry> {
return new Map(entries.map((entry) => [slugOfGlossaryEntry(entry), entry]));
}
export function sortGlossaryEntries(
entries: GlossaryEntry[] = [],
): GlossaryEntry[] {
return [...entries].sort((a, b) =>
GLOSSARY_COLLATOR.compare(a.data.term, b.data.term),
);
}
export function uniqueGlossaryEntries(
entries: GlossaryEntry[] = [],
): GlossaryEntry[] {
const seen = new Set<string>();
const out: GlossaryEntry[] = [];
for (const entry of entries) {
const slug = slugOfGlossaryEntry(entry);
if (!slug || seen.has(slug)) continue;
seen.add(slug);
out.push(entry);
}
return out;
}
export function resolveGlossaryEntriesInSourceOrder(
slugs: string[] = [],
allEntries: GlossaryEntry[] = [],
): GlossaryEntry[] {
const bySlug = buildGlossaryBySlug(allEntries);
const seen = new Set<string>();
const resolved: GlossaryEntry[] = [];
for (const rawSlug of slugs) {
const slug = normalizeGlossarySlug(rawSlug);
if (!slug || seen.has(slug)) continue;
const entry = bySlug.get(slug);
if (!entry) continue;
seen.add(slug);
resolved.push(entry);
}
return resolved;
}
export function resolveGlossaryEntries(
slugs: string[] = [],
allEntries: GlossaryEntry[] = [],
): GlossaryEntry[] {
return sortGlossaryEntries(
resolveGlossaryEntriesInSourceOrder(slugs, allEntries),
);
}
export function rawFamilyOf(
entry: GlossaryEntry | null | undefined,
): string {
return String(entry?.data?.family ?? "");
}
export function kindOf(
entry: GlossaryEntry | null | undefined,
): string {
return String(entry?.data?.kind ?? "");
}
export function familyOf(
entry: GlossaryEntry | null | undefined,
): string {
const explicit = rawFamilyOf(entry);
if (explicit) return explicit;
const slug = slugOfGlossaryEntry(entry);
const kind = kindOf(entry);
if (kind === "paradigme") return "paradigme";
if (kind === "doctrine") return "doctrine";
if (kind === "verbe") return "verbe";
if (slug === "scene-depreuve") return "scene";
if (slug === "autarchicratie") return "pathologie";
if (slug === "obliteration-archicratique") return "dynamique";
if (
FONDAMENTAUX_WANTED.includes(
slug as (typeof FONDAMENTAUX_WANTED)[number],
)
) {
return "concept-fondamental";
}
if (slug === "archicrations-differentielles-et-formes-hybrides") {
return "topologie";
}
if (kind === "topologie" && slug.startsWith("archicrations-")) {
return "meta-regime";
}
return "";
}
export function getDisplayFamily(
entry: GlossaryEntry | null | undefined,
): string {
const familyKey = rawFamilyOf(entry) || familyOf(entry);
return FAMILY_LABELS[familyKey] ?? KIND_LABELS[kindOf(entry)] ?? "Fiche";
}
export function getDisplayDomain(
entry: GlossaryEntry | null | undefined,
): string {
const key = String(entry?.data?.domain ?? "");
return key ? (DOMAIN_LABELS[key] ?? key) : "";
}
export function getDisplayLevel(
entry: GlossaryEntry | null | undefined,
): string {
const key = String(entry?.data?.level ?? "");
return key ? (LEVEL_LABELS[key] ?? key) : "";
}
export function getFondamentaux(
entries: GlossaryEntry[] = [],
): GlossaryEntry[] {
const bySlug = buildGlossaryBySlug(entries);
return sortGlossaryEntries(
FONDAMENTAUX_WANTED
.map((slug) => bySlug.get(slug))
.filter(Boolean) as GlossaryEntry[],
);
}
export function getGlossaryEntriesByFamily(
entries: GlossaryEntry[] = [],
familyKey: string,
): GlossaryEntry[] {
return sortGlossaryEntries(
entries.filter((entry) => familyOf(entry) === familyKey),
);
}
export function countGlossaryEntriesByKind(
entries: GlossaryEntry[] = [],
kindKey: string,
): number {
return entries.filter((entry) => kindOf(entry) === kindKey).length;
}
export function countGlossaryEntriesByFamily(
entries: GlossaryEntry[] = [],
familyKey: string,
): number {
return entries.filter((entry) => familyOf(entry) === familyKey).length;
}
export function getGlossaryPortalLinks(): GlossaryPortalLink[] {
return [
{ href: "/glossaire/", label: "Accueil du glossaire" },
{ href: "/glossaire/concepts-fondamentaux/", label: "Concepts fondamentaux" },
{ href: "/glossaire/index-complet/", label: "Index complet" },
{
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/archicrations/",
label: "Méta-régimes archicratiques",
},
{ href: "/glossaire/paradigmes/", label: "Paradigmes et doctrines" },
{ href: "/glossaire/verbes-de-la-scene/", label: "Verbes de la scène" },
];
}
export function getGlossaryHomeStats(
allEntries: GlossaryEntry[] = [],
): GlossaryHomeStats {
return {
totalEntries: allEntries.length,
paradigmesCount: countGlossaryEntriesByKind(allEntries, "paradigme"),
doctrinesCount: countGlossaryEntriesByKind(allEntries, "doctrine"),
metaRegimesCount: countGlossaryEntriesByFamily(allEntries, "meta-regime"),
};
}
export function getEntriesOfSameFamily(
entry: GlossaryEntry,
allEntries: GlossaryEntry[] = [],
): GlossaryEntry[] {
const familyKey = familyOf(entry);
if (!familyKey) return [];
if (familyKey === "concept-fondamental") {
return getFondamentaux(allEntries);
}
return getGlossaryEntriesByFamily(allEntries, familyKey);
}
export function getSameFamilyTitle(
entry: GlossaryEntry,
): string {
return FAMILY_SECTION_TITLES[familyOf(entry)] ?? "Même famille";
}
export function getRelationBlocks(
entry: GlossaryEntry,
allEntries: GlossaryEntry[] = [],
): GlossaryRelationBlock[] {
const currentSlug = slugOfGlossaryEntry(entry);
const relatedEntries = resolveGlossaryEntriesInSourceOrder(
entry.data.related ?? [],
allEntries,
).filter((item) => slugOfGlossaryEntry(item) !== currentSlug);
const opposedEntries = resolveGlossaryEntriesInSourceOrder(
entry.data.opposedTo ?? [],
allEntries,
).filter((item) => slugOfGlossaryEntry(item) !== currentSlug);
const seeAlsoEntries = resolveGlossaryEntriesInSourceOrder(
entry.data.seeAlso ?? [],
allEntries,
).filter((item) => slugOfGlossaryEntry(item) !== currentSlug);
return [
{
title: "Concepts liés",
items: relatedEntries,
className: "is-related",
},
{
title: "En tension avec",
items: opposedEntries,
className: "is-opposed",
},
{
title: "Voir aussi",
items: seeAlsoEntries,
className: "is-see-also",
},
].filter((block) => block.items.length > 0);
}
export function getRelationSections(
entry: GlossaryEntry,
allEntries: GlossaryEntry[] = [],
): GlossaryRelationSection[] {
return getRelationBlocks(entry, allEntries).map(({ title, items }) => ({
title,
items,
}));
}
function isTheoryEntry(entry: GlossaryEntry): boolean {
const familyKey = familyOf(entry);
const kindKey = kindOf(entry);
return (
familyKey === "paradigme" ||
familyKey === "doctrine" ||
kindKey === "paradigme" ||
kindKey === "doctrine"
);
}
export function getContextualTheory(
entry: GlossaryEntry,
allEntries: GlossaryEntry[] = [],
): GlossaryEntry[] {
const currentSlug = slugOfGlossaryEntry(entry);
const bySlug = buildGlossaryBySlug(allEntries);
const fromRelations = uniqueGlossaryEntries([
...resolveGlossaryEntriesInSourceOrder(entry.data.related ?? [], allEntries),
...resolveGlossaryEntriesInSourceOrder(entry.data.seeAlso ?? [], allEntries),
...resolveGlossaryEntriesInSourceOrder(entry.data.opposedTo ?? [], allEntries),
])
.filter((item) => slugOfGlossaryEntry(item) !== currentSlug)
.filter((item) => isTheoryEntry(item));
if (fromRelations.length > 0) {
return fromRelations.slice(0, 6);
}
if (familyOf(entry) === "paradigme") {
return uniqueGlossaryEntries(
PREFERRED_PARADIGME_SLUGS
.filter((slug) => slug !== currentSlug)
.map((slug) => bySlug.get(slug))
.filter(Boolean) as GlossaryEntry[],
).slice(0, 8);
}
if (familyOf(entry) === "doctrine") {
return uniqueGlossaryEntries(
PREFERRED_DOCTRINE_SLUGS
.filter((slug) => slug !== currentSlug)
.map((slug) => bySlug.get(slug))
.filter(Boolean) as GlossaryEntry[],
).slice(0, 6);
}
return [];
}
export function getGlossaryEntryAsideData(
currentEntry: GlossaryEntry,
allEntries: GlossaryEntry[] = [],
): GlossaryEntryAsideData {
const currentFamily = familyOf(currentEntry);
const fondamentaux = getFondamentaux(allEntries);
const sameFamilyEntries = getEntriesOfSameFamily(currentEntry, allEntries);
const sameFamilyTitle = getSameFamilyTitle(currentEntry);
const relationSections = getRelationSections(currentEntry, allEntries);
const contextualTheory = getContextualTheory(currentEntry, allEntries);
const showNoyau =
currentFamily !== "concept-fondamental" &&
fondamentaux.length > 0;
const showSameFamily =
currentFamily !== "concept-fondamental" &&
sameFamilyEntries.length > 0;
return {
displayFamily: getDisplayFamily(currentEntry),
displayDomain: getDisplayDomain(currentEntry),
displayLevel: getDisplayLevel(currentEntry),
showNoyau,
showSameFamily,
fondamentaux,
sameFamilyTitle,
sameFamilyEntries: showSameFamily ? sameFamilyEntries : [],
relationSections,
contextualTheory,
};
}
export function getGlossaryHomeData(
entries: GlossaryEntry[] = [],
): GlossaryHomeData {
const bySlug = buildGlossaryBySlug(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");
return {
fondamentaux,
scenes,
dynamiques,
metaRegimes,
metaRegimesPreview: metaRegimes.slice(0, 6),
arcalite: bySlug.get("arcalite"),
cratialite: bySlug.get("cratialite"),
tension: bySlug.get("tension"),
sceneDepreuve: bySlug.get("scene-depreuve"),
archicration: bySlug.get("archicration"),
};
}

View File

@@ -1,7 +1,15 @@
---
import GlossaryLayout from "../../layouts/GlossaryLayout.astro";
import GlossaryAside from "../../components/GlossaryAside.astro";
import GlossaryRelationCards from "../../components/GlossaryRelationCards.astro";
import { getCollection, render } from "astro:content";
import {
getDisplayDomain,
getDisplayFamily,
getDisplayLevel,
getRelationBlocks,
normalizeGlossarySlug,
} from "../../lib/glossary";
export async function getStaticPaths() {
const entries = await getCollection("glossaire");
@@ -9,20 +17,12 @@ export async function getStaticPaths() {
const seen = new Set();
for (const entry of entries) {
const canonicalSlug = String(entry.id || "")
.trim()
.replace(/^\/+|\/+$/g, "")
.replace(/\.(md|mdx)$/i, "")
.toLowerCase();
const canonicalSlug = normalizeGlossarySlug(entry.id);
if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(canonicalSlug)) continue;
const addPath = (rawSlug) => {
const requestedSlug = String(rawSlug || "")
.trim()
.replace(/^\/+|\/+$/g, "")
.replace(/\.(md|mdx)$/i, "")
.toLowerCase();
const requestedSlug = normalizeGlossarySlug(rawSlug);
if (!requestedSlug) return;
if (!/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(requestedSlug)) return;
@@ -56,108 +56,11 @@ const { Content } = await render(entry);
const isAliasRoute = requestedSlug !== canonicalSlug;
const canonicalHref = `/glossaire/${canonicalSlug}/`;
const slugOf = (item) =>
String(item.id || "")
.trim()
.replace(/^\/+|\/+$/g, "")
.replace(/\.(md|mdx)$/i, "");
const relationBlocks = getRelationBlocks(entry, allEntries);
const hrefOf = (item) => `/glossaire/${slugOf(item)}/`;
const collator = new Intl.Collator("fr", { sensitivity: "base", numeric: true });
const bySlug = new Map(
allEntries.map((item) => [slugOf(item).toLowerCase(), item])
);
function resolveEntries(slugs = []) {
const seen = new Set();
return slugs
.map((slug) => bySlug.get(String(slug || "").trim().toLowerCase()))
.filter(Boolean)
.filter((item) => {
const slug = slugOf(item);
if (seen.has(slug)) return false;
seen.add(slug);
return true;
})
.sort((a, b) => collator.compare(a.data.term, b.data.term));
}
const relatedEntries = resolveEntries(entry.data.related ?? []);
const opposedEntries = resolveEntries(entry.data.opposedTo ?? []);
const seeAlsoEntries = resolveEntries(entry.data.seeAlso ?? []);
const relationBlocks = [
{
title: "Concepts liés",
items: relatedEntries,
className: "is-related",
},
{
title: "En tension avec",
items: opposedEntries,
className: "is-opposed",
},
{
title: "Voir aussi",
items: seeAlsoEntries,
className: "is-see-also",
},
].filter((block) => block.items.length > 0);
const familyLabels = {
"concept-fondamental": "Concept fondamental",
scene: "Scène",
dynamique: "Dynamique",
pathologie: "Pathologie",
topologie: "Topologie",
"meta-regime": "Méta-régime",
paradigme: "Paradigme",
doctrine: "Doctrine",
verbe: "Verbe",
"dispositif-ia": "Dispositif IA",
"tension-irreductible": "Tension irréductible",
};
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 familyKey = entry.data.family ?? "";
const displayFamily =
familyLabels[familyKey] ??
kindLabels[entry.data.kind] ??
"Fiche";
const displayDomain = entry.data.domain
? (domainLabels[entry.data.domain] ?? entry.data.domain)
: "";
const displayLevel = entry.data.level
? (levelLabels[entry.data.level] ?? entry.data.level)
: "";
const displayFamily = getDisplayFamily(entry);
const displayDomain = getDisplayDomain(entry);
const displayLevel = getDisplayLevel(entry);
const hasScholarlyMeta =
(entry.data.mobilizedAuthors?.length ?? 0) > 0 ||
@@ -230,27 +133,7 @@ const hasScholarlyMeta =
<Content />
</div>
{relationBlocks.length > 0 && (
<section class="glossary-relations" aria-label="Relations conceptuelles">
<h2>Relations conceptuelles</h2>
<div class="glossary-relations-grid">
{relationBlocks.map((block) => (
<section class={`glossary-relations-card ${block.className}`}>
<h3>{block.title}</h3>
<ul>
{block.items.map((item) => (
<li>
<a href={hrefOf(item)}>{item.data.term}</a>
<span> — {item.data.definitionShort}</span>
</li>
))}
</ul>
</section>
))}
</div>
</section>
)}
<GlossaryRelationCards relationBlocks={relationBlocks} />
</GlossaryLayout>
<script is:inline>

View File

@@ -2,82 +2,30 @@
import GlossaryLayout from "../../layouts/GlossaryLayout.astro";
import GlossaryHomeAside from "../../components/GlossaryHomeAside.astro";
import { getCollection } from "astro:content";
import {
getGlossaryHomeData,
getGlossaryHomeStats,
hrefOfGlossaryEntry,
} from "../../lib/glossary";
const entries = await getCollection("glossaire");
const slugOf = (entry) => String(entry.id).replace(/\.(md|mdx)$/i, "");
const hrefOf = (entry) => `/glossaire/${slugOf(entry)}/`;
const {
fondamentaux,
scenes,
dynamiques,
metaRegimesPreview,
arcalite,
cratialite,
tension,
sceneDepreuve,
archicration,
} = getGlossaryHomeData(entries);
const collator = new Intl.Collator("fr", { sensitivity: "base", numeric: true });
const bySlug = new Map(entries.map((entry) => [slugOf(entry), entry]));
function sortByTerm(list = []) {
return [...list].sort((a, b) => collator.compare(a.data.term, b.data.term));
}
function familyOf(entry) {
const explicit = entry?.data?.family;
if (explicit) return explicit;
const slug = slugOf(entry);
const kind = entry?.data?.kind;
if (kind === "paradigme") return "paradigme";
if (kind === "doctrine") return "doctrine";
if (kind === "verbe") return "verbe";
if (slug === "scene-depreuve") return "scene";
if (slug === "autarchicratie") return "pathologie";
if (slug === "obliteration-archicratique") return "dynamique";
if ([
"archicratie",
"arcalite",
"cratialite",
"archicration",
"co-viabilite",
"tension",
].includes(slug)) {
return "concept-fondamental";
}
if (slug === "archicrations-differentielles-et-formes-hybrides") {
return "topologie";
}
if (kind === "topologie" && slug.startsWith("archicrations-")) {
return "meta-regime";
}
return "";
}
const fondamentaux = sortByTerm(
entries.filter((entry) => familyOf(entry) === "concept-fondamental")
);
const scenes = sortByTerm(
entries.filter((entry) => familyOf(entry) === "scene")
);
const dynamiques = sortByTerm(
entries.filter((entry) => ["dynamique", "pathologie"].includes(familyOf(entry)))
);
const metaRegimes = sortByTerm(
entries.filter((entry) => familyOf(entry) === "meta-regime")
);
const paradigmesCount = entries.filter((entry) => entry.data.kind === "paradigme").length;
const doctrinesCount = entries.filter((entry) => entry.data.kind === "doctrine").length;
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 {
paradigmesCount,
doctrinesCount,
} = getGlossaryHomeStats(entries);
const paradigmeArchicratiquePageHref = "/glossaire/paradigme-archicratique/";
const metaRegimesPageHref = "/glossaire/archicrations/";
@@ -97,289 +45,334 @@ const indexCompletPageHref = "/glossaire/index-complet/";
</Fragment>
<section class="glossary-home">
<header class="glossary-hero" id="glossary-hero">
<p class="glossary-kicker">Référentiel terminologique</p>
<h1>Glossaire archicratique</h1>
<p class="glossary-intro">
Ce glossaire nest pas seulement un index de définitions. Il constitue
une porte dentré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é.
</p>
<h2
class="glossary-hero-follow"
id="glossary-hero-follow"
aria-hidden="true"
></h2>
</header>
<header class="glossary-hero" id="glossary-hero">
<p class="glossary-kicker">Référentiel terminologique</p>
<h1>Glossaire archicratique</h1>
<p class="glossary-intro">
Ce glossaire nest pas seulement un index de définitions. Il constitue
une porte dentré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é.
</p>
<h2
class="glossary-hero-follow"
id="glossary-hero-follow"
aria-hidden="true"
></h2>
</header>
<section class="glossary-map-block glossary-section" aria-labelledby="glossary-map-title">
<div class="glossary-map-block__head">
<h2 id="glossary-map-title" data-follow-section="Cartographie du système archicratique">
Cartographie du système archicratique
<section
class="glossary-map-block glossary-section"
aria-labelledby="glossary-map-title"
>
<div class="glossary-map-block__head">
<h2
id="glossary-map-title"
data-follow-section="Cartographie du système archicratique"
>
Cartographie du système archicratique
</h2>
<p>
La lecture la plus simple du système part de deux vecteurs premiers,
larcalité et la cratialité, dont la rencontre produit des tensions.
Ces tensions doivent être mises en scène, traitées par larchicration,
puis stabilisées dans des méta-régimes de co-viabilité.
</p>
</div>
<div class="glossary-map" aria-label="Carte conceptuelle du glossaire">
<div class="glossary-map__stage">
<div class="glossary-map__title">Forces en composition</div>
<div class="glossary-map__roots">
{arcalite ? (
<a class="glossary-map__node" href={hrefOfGlossaryEntry(arcalite)}>
ARCALITÉ
</a>
) : (
<span class="glossary-map__node">ARCALITÉ</span>
)}
{cratialite ? (
<a class="glossary-map__node" href={hrefOfGlossaryEntry(cratialite)}>
CRATIALITÉ
</a>
) : (
<span class="glossary-map__node">CRATIALITÉ</span>
)}
</div>
</div>
<div class="glossary-map__arrow" aria-hidden="true">↓</div>
<div class="glossary-map__stage">
<div class="glossary-map__title">Phénomène transversal</div>
{tension ? (
<a
class="glossary-map__node glossary-map__node--wide"
href={hrefOfGlossaryEntry(tension)}
>
TENSION
</a>
) : (
<span class="glossary-map__node glossary-map__node--wide">
TENSION
</span>
)}
</div>
<div class="glossary-map__arrow" aria-hidden="true">↓</div>
<div class="glossary-map__stage">
<div class="glossary-map__title">Comparution</div>
{sceneDepreuve ? (
<a
class="glossary-map__node glossary-map__node--wide"
href={hrefOfGlossaryEntry(sceneDepreuve)}
>
MISE EN SCÈNE
</a>
) : (
<span class="glossary-map__node glossary-map__node--wide">
MISE EN SCÈNE
</span>
)}
</div>
<div class="glossary-map__arrow" aria-hidden="true">↓</div>
<div class="glossary-map__stage">
<div class="glossary-map__title">Opérateur régulateur</div>
{archicration ? (
<a
class="glossary-map__node glossary-map__node--wide"
href={hrefOfGlossaryEntry(archicration)}
>
ARCHICRATION
</a>
) : (
<span class="glossary-map__node glossary-map__node--wide">
ARCHICRATION
</span>
)}
</div>
<div class="glossary-map__arrow" aria-hidden="true">↓</div>
<div class="glossary-map__stage">
<div class="glossary-map__title">Formes de stabilisation</div>
<a
class="glossary-map__node glossary-map__node--wide"
href={metaRegimesPageHref}
>
MÉTA-RÉGIMES
</a>
</div>
</div>
</section>
{fondamentaux.length > 0 && (
<section id="concepts-fondamentaux" class="glossary-section">
<div class="glossary-section__head">
<div>
<h2 data-follow-section="Concepts fondamentaux">
Concepts fondamentaux
</h2>
<p>
La lecture la plus simple du système part de deux vecteurs premiers,
larcalité et la cratialité, dont la rencontre produit des tensions.
Ces tensions doivent être mises en scène, traitées par larchicration,
puis stabilisées dans des méta-régimes de co-viabilité.
<p class="glossary-intro">
Ces notions forment la grammaire minimale de larchicratie.
Elles donnent accès à la structure générale du système.
</p>
</div>
</div>
<div class="glossary-map" aria-label="Carte conceptuelle du glossaire">
<div class="glossary-map__stage">
<div class="glossary-map__title">Forces en composition</div>
<div class="glossary-map__roots">
{arcalite ? (
<a class="glossary-map__node" href={hrefOf(arcalite)}>ARCALITÉ</a>
) : (
<span class="glossary-map__node">ARCALITÉ</span>
)}
{cratialite ? (
<a class="glossary-map__node" href={hrefOf(cratialite)}>CRATIALITÉ</a>
) : (
<span class="glossary-map__node">CRATIALITÉ</span>
)}
</div>
</div>
<div class="glossary-map__arrow" aria-hidden="true">↓</div>
<div class="glossary-map__stage">
<div class="glossary-map__title">Phénomène transversal</div>
{tension ? (
<a class="glossary-map__node glossary-map__node--wide" href={hrefOf(tension)}>
TENSION
</a>
) : (
<span class="glossary-map__node glossary-map__node--wide">TENSION</span>
)}
</div>
<div class="glossary-map__arrow" aria-hidden="true">↓</div>
<div class="glossary-map__stage">
<div class="glossary-map__title">Comparution</div>
{sceneDepreuve ? (
<a class="glossary-map__node glossary-map__node--wide" href={hrefOf(sceneDepreuve)}>
MISE EN SCÈNE
</a>
) : (
<span class="glossary-map__node glossary-map__node--wide">MISE EN SCÈNE</span>
)}
</div>
<div class="glossary-map__arrow" aria-hidden="true">↓</div>
<div class="glossary-map__stage">
<div class="glossary-map__title">Opérateur régulateur</div>
{archicration ? (
<a class="glossary-map__node glossary-map__node--wide" href={hrefOf(archicration)}>
ARCHICRATION
</a>
) : (
<span class="glossary-map__node glossary-map__node--wide">ARCHICRATION</span>
)}
</div>
<div class="glossary-map__arrow" aria-hidden="true">↓</div>
<div class="glossary-map__stage">
<div class="glossary-map__title">Formes de stabilisation</div>
<a class="glossary-map__node glossary-map__node--wide" href={metaRegimesPageHref}>
MÉTA-RÉGIMES
</a>
</div>
</div>
</section>
{fondamentaux.length > 0 && (
<section id="concepts-fondamentaux" class="glossary-section">
<div class="glossary-section__head">
<div>
<h2 data-follow-section="Concepts fondamentaux">Concepts fondamentaux</h2>
<p class="glossary-intro">
Ces notions forment la grammaire minimale de larchicratie.
Elles donnent accès à la structure générale du système.
</p>
</div>
</div>
<div class="glossary-cards">
{fondamentaux.map((entry) => (
<a class="glossary-card" href={hrefOf(entry)}>
<strong>{entry.data.term}</strong>
<span>{entry.data.definitionShort}</span>
</a>
))}
</div>
</section>
)}
<section id="paradigme-archicratique" class="glossary-section">
<div class="glossary-section__head">
<div>
<h2 data-follow-section="Paradigme archicratique">Paradigme archicratique</h2>
<p class="glossary-intro">
Cette page de synthèse offre une vue densemble 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
larchicratie se situe et se distingue.
</p>
</div>
<a class="glossary-cta" href={paradigmeArchicratiquePageHref}>
Ouvrir la synthèse
<div class="glossary-cards">
{fondamentaux.map((entry) => (
<a class="glossary-card" href={hrefOfGlossaryEntry(entry)}>
<strong>{entry.data.term}</strong>
<span>{entry.data.definitionShort}</span>
</a>
</div>
<div class="glossary-portals">
<a class="glossary-portal-card" href={paradigmeArchicratiquePageHref}>
<strong>Paradigme archicratique</strong>
<span>
Saisir la logique densemble du système archicratique : de
larcalité et de la cratialité jusquaux scènes, aux tensions, aux
formes de co-viabilité et aux traditions de comparaison
mobilisées.
</span>
<small>Portail de synthèse générale</small>
</a>
</div>
</section>
{scenes.length > 0 && (
<section id="scenes-archicratiques" class="glossary-section">
<div class="glossary-section__head">
<div>
<h2 data-follow-section="Scènes archicratiques">Scènes archicratiques</h2>
<p class="glossary-intro">
Les scènes archicratiques rendent possible la comparution des
architectures de régulation. Elles sont le lieu où lordre peut
être exposé, discuté et révisé.
</p>
</div>
</div>
<div class="glossary-cards">
{scenes.map((entry) => (
<a class="glossary-card glossary-card--wide" href={hrefOf(entry)}>
<strong>{entry.data.term}</strong>
<span>{entry.data.definitionShort}</span>
</a>
))}
</div>
</section>
)}
{dynamiques.length > 0 && (
<section id="dynamiques-archicratiques" class="glossary-section">
<div class="glossary-section__head">
<div>
<h2 data-follow-section="Dynamiques archicratiques">Dynamiques archicratiques</h2>
<p class="glossary-intro">
Cette famille rassemble les processus de déplacement, les dérives
et les formes de pathologisation de la régulation archicratique.
</p>
</div>
</div>
<div class="glossary-cards">
{dynamiques.map((entry) => (
<a class="glossary-card" href={hrefOf(entry)}>
<strong>{entry.data.term}</strong>
<span>{entry.data.definitionShort}</span>
</a>
))}
</div>
</section>
)}
<section id="meta-regimes-archicratiques" class="glossary-section">
<div class="glossary-section__head">
<div>
<h2 data-follow-section="Méta-régimes archicratiques">Méta-régimes archicratiques</h2>
<p class="glossary-intro">
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é.
</p>
</div>
<a class="glossary-cta" href={metaRegimesPageHref}>
Explorer la cartographie complète
</a>
</div>
{metaRegimesPreview.length > 0 && (
<div class="glossary-cards">
{metaRegimesPreview.map((entry) => (
<a class="glossary-card" href={hrefOf(entry)}>
<strong>{entry.data.term}</strong>
<span>{entry.data.definitionShort}</span>
</a>
))}
</div>
)}
</section>
<section id="approfondir" class="glossary-section">
<div class="glossary-section__head">
<div>
<h2 data-follow-section="Prolonger la lecture">Prolonger la lecture</h2>
<p class="glossary-intro">
Quatre parcours complémentaires permettent délargir la lecture :
lun vers les tensions irréductibles, lun vers les verbes de la scène
archicratique, lun vers le paysage théorique dans lequel larchicratie
se situe et se distingue, lautre vers lensemble alphabétique complet
des entrées du glossaire.
</p>
</div>
</div>
<div class="glossary-portals glossary-portals--secondary">
<a class="glossary-portal-card" href={tensionsPageHref}>
<strong>Tensions irréductibles</strong>
<span>
Parcourir les dix tensions ontologiquement irréductibles et
politiquement fondatrices à partir desquelles la co-viabilité doit
être pensée.
</span>
<small>10 tensions structurantes</small>
</a>
<a class="glossary-portal-card" href={verbesPageHref}>
<strong>Verbes de la scène</strong>
<span>
Disposer dun mini-glossaire opératoire pour décrire louverture,
lentrave, la capture, la fermeture ou la remise en scène des
architectures régulatrices.
</span>
<small>19 verbes danalyse</small>
</a>
<a class="glossary-portal-card" href={paradigmesPageHref}>
<strong>Cartographie théorique</strong>
<span>
Situer larchicratie dans son paysage de doctrines fondatrices et de
paradigmes régulateurs.
</span>
<small>{doctrinesCount} doctrine{doctrinesCount > 1 ? "s" : ""} · {paradigmesCount} paradigme{paradigmesCount > 1 ? "s" : ""}</small>
</a>
<a class="glossary-portal-card" href={indexCompletPageHref}>
<strong>Index complet</strong>
<span>
Retrouver lensemble des entrées du glossaire dans une navigation
alphabétique intégrale.
</span>
<small>{entries.length} entrée{entries.length > 1 ? "s" : ""}</small>
</a>
</div>
</section>
))}
</div>
</section>
)}
<section id="paradigme-archicratique" class="glossary-section">
<div class="glossary-section__head">
<div>
<h2 data-follow-section="Paradigme archicratique">
Paradigme archicratique
</h2>
<p class="glossary-intro">
Cette page de synthèse offre une vue densemble 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
larchicratie se situe et se distingue.
</p>
</div>
<a class="glossary-cta" href={paradigmeArchicratiquePageHref}>
Ouvrir la synthèse
</a>
</div>
<div class="glossary-portals">
<a class="glossary-portal-card" href={paradigmeArchicratiquePageHref}>
<strong>Paradigme archicratique</strong>
<span>
Saisir la logique densemble du système archicratique : de
larcalité et de la cratialité jusquaux scènes, aux tensions, aux
formes de co-viabilité et aux traditions de comparaison
mobilisées.
</span>
<small>Portail de synthèse générale</small>
</a>
</div>
</section>
{scenes.length > 0 && (
<section id="scenes-archicratiques" class="glossary-section">
<div class="glossary-section__head">
<div>
<h2 data-follow-section="Scènes archicratiques">
Scènes archicratiques
</h2>
<p class="glossary-intro">
Les scènes archicratiques rendent possible la comparution des
architectures de régulation. Elles sont le lieu où lordre peut
être exposé, discuté et révisé.
</p>
</div>
</div>
<div class="glossary-cards">
{scenes.map((entry) => (
<a
class="glossary-card glossary-card--wide"
href={hrefOfGlossaryEntry(entry)}
>
<strong>{entry.data.term}</strong>
<span>{entry.data.definitionShort}</span>
</a>
))}
</div>
</section>
)}
{dynamiques.length > 0 && (
<section id="dynamiques-archicratiques" class="glossary-section">
<div class="glossary-section__head">
<div>
<h2 data-follow-section="Dynamiques archicratiques">
Dynamiques archicratiques
</h2>
<p class="glossary-intro">
Cette famille rassemble les processus de déplacement, les dérives
et les formes de pathologisation de la régulation archicratique.
</p>
</div>
</div>
<div class="glossary-cards">
{dynamiques.map((entry) => (
<a class="glossary-card" href={hrefOfGlossaryEntry(entry)}>
<strong>{entry.data.term}</strong>
<span>{entry.data.definitionShort}</span>
</a>
))}
</div>
</section>
)}
<section id="meta-regimes-archicratiques" class="glossary-section">
<div class="glossary-section__head">
<div>
<h2 data-follow-section="Méta-régimes archicratiques">
Méta-régimes archicratiques
</h2>
<p class="glossary-intro">
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é.
</p>
</div>
<a class="glossary-cta" href={metaRegimesPageHref}>
Explorer la cartographie complète
</a>
</div>
{metaRegimesPreview.length > 0 && (
<div class="glossary-cards">
{metaRegimesPreview.map((entry) => (
<a class="glossary-card" href={hrefOfGlossaryEntry(entry)}>
<strong>{entry.data.term}</strong>
<span>{entry.data.definitionShort}</span>
</a>
))}
</div>
)}
</section>
<section id="approfondir" class="glossary-section">
<div class="glossary-section__head">
<div>
<h2 data-follow-section="Prolonger la lecture">
Prolonger la lecture
</h2>
<p class="glossary-intro">
Quatre parcours complémentaires permettent délargir la lecture :
lun vers les tensions irréductibles, lun vers les verbes de la scène
archicratique, lun vers le paysage théorique dans lequel larchicratie
se situe et se distingue, lautre vers lensemble alphabétique complet
des entrées du glossaire.
</p>
</div>
</div>
<div class="glossary-portals glossary-portals--secondary">
<a class="glossary-portal-card" href={tensionsPageHref}>
<strong>Tensions irréductibles</strong>
<span>
Parcourir les dix tensions ontologiquement irréductibles et
politiquement fondatrices à partir desquelles la co-viabilité doit
être pensée.
</span>
<small>10 tensions structurantes</small>
</a>
<a class="glossary-portal-card" href={verbesPageHref}>
<strong>Verbes de la scène</strong>
<span>
Disposer dun mini-glossaire opératoire pour décrire louverture,
lentrave, la capture, la fermeture ou la remise en scène des
architectures régulatrices.
</span>
<small>19 verbes danalyse</small>
</a>
<a class="glossary-portal-card" href={paradigmesPageHref}>
<strong>Cartographie théorique</strong>
<span>
Situer larchicratie dans son paysage de doctrines fondatrices et de
paradigmes régulateurs.
</span>
<small>
{doctrinesCount} doctrine{doctrinesCount > 1 ? "s" : ""} · {paradigmesCount} paradigme{paradigmesCount > 1 ? "s" : ""}
</small>
</a>
<a class="glossary-portal-card" href={indexCompletPageHref}>
<strong>Index complet</strong>
<span>
Retrouver lensemble des entrées du glossaire dans une navigation
alphabétique intégrale.
</span>
<small>{entries.length} entrée{entries.length > 1 ? "s" : ""}</small>
</a>
</div>
</section>
</section>
<script is:inline>
(() => {