Merge pull request 'fix(content): declare commencer collection and remove implicit ia collection' (#211) from fix/content-collections-stability into main
Reviewed-on: #211
This commit was merged in pull request #211.
This commit is contained in:
@@ -1,42 +0,0 @@
|
|||||||
---
|
|
||||||
title: "Démarrage — Essai-thèse"
|
|
||||||
edition: "archicratie"
|
|
||||||
status: "modele_sociopolitique"
|
|
||||||
level: 1
|
|
||||||
version: "0.0.1"
|
|
||||||
concepts: ["archicratie"]
|
|
||||||
links:
|
|
||||||
- type: "definition"
|
|
||||||
target: "/glossaire/archicratie/"
|
|
||||||
note: "Terme canonique."
|
|
||||||
order: 0
|
|
||||||
summary: "Page de test (structure)."
|
|
||||||
---
|
|
||||||
|
|
||||||
import Callout from "../../components/Callout.astro";
|
|
||||||
import Term from "../../components/Term.astro";
|
|
||||||
|
|
||||||
Ceci est une page de test pour valider la structure de l’**Essai-thèse**.
|
|
||||||
|
|
||||||
<Callout kind="definition" title="Entrée minimale">
|
|
||||||
<p>
|
|
||||||
<Term term="Archicratie" slug="archicratie" /> : régime où l’instance régulatrice est tenue d’exposer ses prises,
|
|
||||||
ses critères et ses scènes d’épreuve.
|
|
||||||
</p>
|
|
||||||
</Callout>
|
|
||||||
|
|
||||||
<Callout kind="these" title="Ce que l’édition web doit rendre possible">
|
|
||||||
<p>Une lecture à plusieurs niveaux, sans confusion entre les productions, et une citabilité stable.</p>
|
|
||||||
</Callout>
|
|
||||||
|
|
||||||
<div class="level-2">
|
|
||||||
<Callout kind="objection" title="Objection (niveau 2)">
|
|
||||||
<p>Que gagne-t-on par rapport à une simple doctrine ? Réponse : la scène, la contrainte d’exposition, la pluralisation des prises.</p>
|
|
||||||
</Callout>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="level-3">
|
|
||||||
<Callout kind="limite" title="Limite (niveau 3)">
|
|
||||||
<p>Tout schéma d’articulation doit préciser ses non-déductions (transpositions), sinon confusion Traité ↔ Archicratie.</p>
|
|
||||||
</Callout>
|
|
||||||
</div>
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
---
|
|
||||||
title: "Démarrage — Atlas"
|
|
||||||
edition: "atlas"
|
|
||||||
status: "cartographie"
|
|
||||||
level: 1
|
|
||||||
version: "0.0.1"
|
|
||||||
concepts: ["archicrates"]
|
|
||||||
links: []
|
|
||||||
order: 0
|
|
||||||
summary: "Page de test (structure)."
|
|
||||||
---
|
|
||||||
|
|
||||||
Ceci est une page de test pour valider la structure de l’**Atlas**.
|
|
||||||
@@ -17,21 +17,6 @@ const baseTextSchema = z.object({
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Éditions (séparation stricte : edition + status verrouillés par collection)
|
// Éditions (séparation stricte : edition + status verrouillés par collection)
|
||||||
const traite = defineCollection({
|
|
||||||
type: "content",
|
|
||||||
schema: baseTextSchema.extend({
|
|
||||||
edition: z.literal("traite"),
|
|
||||||
status: z.literal("theorie_fondamentale")
|
|
||||||
})
|
|
||||||
});
|
|
||||||
|
|
||||||
const archicratie = defineCollection({
|
|
||||||
type: "content",
|
|
||||||
schema: baseTextSchema.extend({
|
|
||||||
edition: z.literal("archicratie"),
|
|
||||||
status: z.literal("modele_sociopolitique")
|
|
||||||
})
|
|
||||||
});
|
|
||||||
|
|
||||||
const casIa = defineCollection({
|
const casIa = defineCollection({
|
||||||
type: "content",
|
type: "content",
|
||||||
@@ -41,11 +26,11 @@ const casIa = defineCollection({
|
|||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
const atlas = defineCollection({
|
const commencer = defineCollection({
|
||||||
type: "content",
|
type: "content",
|
||||||
schema: baseTextSchema.extend({
|
schema: baseTextSchema.extend({
|
||||||
edition: z.literal("atlas"),
|
edition: z.literal("commencer"),
|
||||||
status: z.literal("cartographie")
|
status: z.union([z.literal("presentation"), z.literal("draft")])
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -79,12 +64,8 @@ const glossaire = defineCollection({
|
|||||||
});
|
});
|
||||||
|
|
||||||
export const collections = {
|
export const collections = {
|
||||||
traite,
|
commencer,
|
||||||
archicratie,
|
"archicrat-ia": archicratIa,
|
||||||
"cas-ia": casIa,
|
"cas-ia": casIa,
|
||||||
glossaire,
|
glossaire,
|
||||||
atlas,
|
|
||||||
|
|
||||||
// ⚠️ clé avec tiret => doit être quotée
|
|
||||||
"archicrat-ia": archicratIa
|
|
||||||
};
|
};
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
---
|
|
||||||
title: "Démarrage — Cas pratique IA"
|
|
||||||
edition: "ia"
|
|
||||||
status: "application"
|
|
||||||
level: 1
|
|
||||||
version: "0.0.1"
|
|
||||||
concepts: ["gouvernance-ia"]
|
|
||||||
links: []
|
|
||||||
order: 0
|
|
||||||
summary: "Page de test (structure)."
|
|
||||||
---
|
|
||||||
|
|
||||||
Ceci est une page de test pour valider la structure du **Cas pratique IA**.
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
---
|
|
||||||
title: "Démarrage — Traité"
|
|
||||||
edition: "traite"
|
|
||||||
status: "theorie_fondamentale"
|
|
||||||
level: 1
|
|
||||||
version: "0.0.1"
|
|
||||||
concepts: ["ontodynamique-generative"]
|
|
||||||
links: []
|
|
||||||
order: 0
|
|
||||||
summary: "Page de test (structure)."
|
|
||||||
---
|
|
||||||
|
|
||||||
Ceci est une page de test pour valider la structure du **Traité**.
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
---
|
|
||||||
import EditionLayout from "../../layouts/EditionLayout.astro";
|
|
||||||
import { getCollection } from "astro:content";
|
|
||||||
import EditionToc from "../../components/EditionToc.astro";
|
|
||||||
import LocalToc from "../../components/LocalToc.astro";
|
|
||||||
|
|
||||||
export async function getStaticPaths() {
|
|
||||||
const entries = (await getCollection("archicratie"))
|
|
||||||
.filter((e) => !e.slug.startsWith("archicrat-ia/"));
|
|
||||||
return entries.map((entry) => ({
|
|
||||||
params: { slug: entry.slug },
|
|
||||||
props: { entry },
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
|
|
||||||
const { entry } = Astro.props;
|
|
||||||
const { Content, headings } = await entry.render();
|
|
||||||
---
|
|
||||||
|
|
||||||
<EditionLayout
|
|
||||||
title={entry.data.title}
|
|
||||||
editionLabel="Archicratie"
|
|
||||||
editionKey="archicratie"
|
|
||||||
statusLabel="modèle sociopolitique"
|
|
||||||
statusKey="modele_sociopolitique"
|
|
||||||
level={entry.data.level}
|
|
||||||
version={entry.data.version}
|
|
||||||
>
|
|
||||||
<Fragment slot="aside">
|
|
||||||
<EditionToc currentSlug={entry.slug} />
|
|
||||||
<LocalToc headings={headings} />
|
|
||||||
</Fragment>
|
|
||||||
|
|
||||||
<h1>{entry.data.title}</h1>
|
|
||||||
<Content />
|
|
||||||
</EditionLayout>
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
---
|
|
||||||
import SiteLayout from "../../layouts/SiteLayout.astro";
|
|
||||||
import { getCollection } from "astro:content";
|
|
||||||
|
|
||||||
const entries = (await getCollection('archicratie'))
|
|
||||||
.filter((e) => e.slug !== "prologue");
|
|
||||||
entries.sort((a, b) => (a.data.order ?? 9999) - (b.data.order ?? 9999));
|
|
||||||
---
|
|
||||||
<SiteLayout title="Essai-thèse — Archicratie">
|
|
||||||
<h1>Essai-thèse — Archicratie</h1>
|
|
||||||
<ul>
|
|
||||||
{entries.map((e) => (
|
|
||||||
<li><a href={`/archicratie/${e.slug}/`}>{e.data.title}</a></li>
|
|
||||||
))}
|
|
||||||
</ul>
|
|
||||||
</SiteLayout>
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
---
|
|
||||||
import EditionLayout from "../../layouts/EditionLayout.astro";
|
|
||||||
import { getCollection } from "astro:content";
|
|
||||||
|
|
||||||
export async function getStaticPaths() {
|
|
||||||
const entries = await getCollection("atlas");
|
|
||||||
return entries.map((entry) => ({
|
|
||||||
params: { slug: entry.slug },
|
|
||||||
props: { entry },
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
|
|
||||||
const { entry } = Astro.props;
|
|
||||||
const { Content } = await entry.render();
|
|
||||||
---
|
|
||||||
|
|
||||||
<EditionLayout
|
|
||||||
title={entry.data.title}
|
|
||||||
editionLabel="Atlas"
|
|
||||||
editionKey="atlas"
|
|
||||||
statusLabel="cartographie"
|
|
||||||
statusKey="cartographie"
|
|
||||||
level={entry.data.level}
|
|
||||||
version={entry.data.version}
|
|
||||||
>
|
|
||||||
<h1>{entry.data.title}</h1>
|
|
||||||
<Content />
|
|
||||||
</EditionLayout>
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
---
|
|
||||||
import SiteLayout from "../../layouts/SiteLayout.astro";
|
|
||||||
import { getCollection } from "astro:content";
|
|
||||||
|
|
||||||
const entries = await getCollection("atlas");
|
|
||||||
entries.sort((a, b) => (a.data.order ?? 9999) - (b.data.order ?? 9999));
|
|
||||||
---
|
|
||||||
<SiteLayout title="Atlas archicratique">
|
|
||||||
<h1>Atlas archicratique</h1>
|
|
||||||
<ul>
|
|
||||||
{entries.map((e) => (
|
|
||||||
<li><a href={`/atlas/${e.slug}/`}>{e.data.title}</a></li>
|
|
||||||
))}
|
|
||||||
</ul>
|
|
||||||
</SiteLayout>
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
---
|
|
||||||
import SiteLayout from "../../layouts/SiteLayout.astro";
|
|
||||||
---
|
|
||||||
<SiteLayout title="Carte des œuvres">
|
|
||||||
<h1>Carte des œuvres</h1>
|
|
||||||
<p>Cette page explicite la séparation stricte et l’articulation entre les éditions.</p>
|
|
||||||
</SiteLayout>
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
---
|
|
||||||
import EditionLayout from "../../layouts/EditionLayout.astro";
|
|
||||||
import { getCollection } from "astro:content";
|
|
||||||
|
|
||||||
export async function getStaticPaths() {
|
|
||||||
const entries = await getCollection("ia");
|
|
||||||
return entries.map((entry) => ({
|
|
||||||
params: { slug: entry.slug },
|
|
||||||
props: { entry },
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
|
|
||||||
const { entry } = Astro.props;
|
|
||||||
const { Content } = await entry.render();
|
|
||||||
---
|
|
||||||
|
|
||||||
<EditionLayout
|
|
||||||
title={entry.data.title}
|
|
||||||
editionLabel="Cas IA"
|
|
||||||
editionKey="ia"
|
|
||||||
statusLabel="application"
|
|
||||||
statusKey="application"
|
|
||||||
level={entry.data.level}
|
|
||||||
version={entry.data.version}
|
|
||||||
>
|
|
||||||
<h1>{entry.data.title}</h1>
|
|
||||||
<Content />
|
|
||||||
</EditionLayout>
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
---
|
|
||||||
import SiteLayout from "../../layouts/SiteLayout.astro";
|
|
||||||
import { getCollection } from "astro:content";
|
|
||||||
|
|
||||||
const entries = await getCollection("ia");
|
|
||||||
entries.sort((a, b) => (a.data.order ?? 9999) - (b.data.order ?? 9999));
|
|
||||||
---
|
|
||||||
<SiteLayout title="Cas pratique — Gouvernance des systèmes IA">
|
|
||||||
<h1>Cas pratique — Gouvernance des systèmes IA</h1>
|
|
||||||
<ul>
|
|
||||||
{entries.map((e) => (
|
|
||||||
<li><a href={`/ia/${e.slug}/`}>{e.data.title}</a></li>
|
|
||||||
))}
|
|
||||||
</ul>
|
|
||||||
</SiteLayout>
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
---
|
|
||||||
import SiteLayout from "../../layouts/SiteLayout.astro";
|
|
||||||
---
|
|
||||||
<SiteLayout title="Méthode & statut des textes">
|
|
||||||
<h1>Méthode & statut des textes</h1>
|
|
||||||
|
|
||||||
<h2>1) Séparation stricte des productions</h2>
|
|
||||||
<ul>
|
|
||||||
<li><strong>Traité</strong> : ontodynamique générative (théorie fondamentale).</li>
|
|
||||||
<li><strong>Essai-thèse</strong> : archicratie (modèle sociopolitique).</li>
|
|
||||||
<li><strong>Cas pratique</strong> : gouvernance des systèmes IA (application).</li>
|
|
||||||
<li><strong>Glossaire</strong> : référentiel terminologique (définitions et renvois).</li>
|
|
||||||
<li><strong>Atlas</strong> : cartographie des archicrates (à venir).</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h2>2) Règle d’or : liens typés</h2>
|
|
||||||
<p>Tout lien important est explicitement typé :</p>
|
|
||||||
<ul>
|
|
||||||
<li><strong>definition</strong> : renvoi vers le glossaire (sens canonique).</li>
|
|
||||||
<li><strong>appui</strong> : renvoi argumentatif (support).</li>
|
|
||||||
<li><strong>transposition</strong> : analogie / déplacement non-déductif (anti-confusion Traité ↔ Archicratie).</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h2>3) Niveaux de lecture</h2>
|
|
||||||
<p>Le même texte peut contenir trois niveaux :</p>
|
|
||||||
<ul>
|
|
||||||
<li><strong>Niveau 1</strong> : lecture citoyenne (accès principal).</li>
|
|
||||||
<li><strong>Niveau 2</strong> : approfondissement.</li>
|
|
||||||
<li><strong>Niveau 3</strong> : niveau recherche.</li>
|
|
||||||
</ul>
|
|
||||||
<p>Techniquement : les blocs <code>.level-2</code> et <code>.level-3</code> sont masqués/affichés par le toggle, sans casser la lisibilité si JS est absent.</p>
|
|
||||||
|
|
||||||
<h2>4) Citabilité</h2>
|
|
||||||
<p>Chaque paragraphe reçoit un identifiant stable et peut être cité par ancre (bouton “Citer”).</p>
|
|
||||||
|
|
||||||
<h2>5) Statut éditorial</h2>
|
|
||||||
<p>Chaque page indique : Édition / Statut / Niveau / Version. Les versions servent à garantir la citabilité et l’historique.</p>
|
|
||||||
</SiteLayout>
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
---
|
|
||||||
import EditionLayout from "../../layouts/EditionLayout.astro";
|
|
||||||
import { getCollection } from "astro:content";
|
|
||||||
|
|
||||||
export async function getStaticPaths() {
|
|
||||||
const entries = await getCollection("traite");
|
|
||||||
return entries.map((entry) => ({
|
|
||||||
params: { slug: entry.slug },
|
|
||||||
props: { entry },
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
|
|
||||||
const { entry } = Astro.props;
|
|
||||||
const { Content } = await entry.render();
|
|
||||||
---
|
|
||||||
|
|
||||||
<EditionLayout
|
|
||||||
title={entry.data.title}
|
|
||||||
editionLabel="Traité"
|
|
||||||
editionKey="traite"
|
|
||||||
statusLabel="théorie fondamentale"
|
|
||||||
statusKey="theorie_fondamentale"
|
|
||||||
level={entry.data.level}
|
|
||||||
version={entry.data.version}
|
|
||||||
>
|
|
||||||
<h1>{entry.data.title}</h1>
|
|
||||||
<Content />
|
|
||||||
</EditionLayout>
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
---
|
|
||||||
import SiteLayout from "../../layouts/SiteLayout.astro";
|
|
||||||
import { getCollection } from "astro:content";
|
|
||||||
|
|
||||||
const entries = await getCollection("traite");
|
|
||||||
entries.sort((a, b) => (a.data.order ?? 9999) - (b.data.order ?? 9999));
|
|
||||||
---
|
|
||||||
<SiteLayout title="Traité — Ontodynamique générative">
|
|
||||||
<h1>Traité — Ontodynamique générative</h1>
|
|
||||||
<ul>
|
|
||||||
{entries.map((e) => (
|
|
||||||
<li><a href={`/traite/${e.slug}/`}>{e.data.title}</a></li>
|
|
||||||
))}
|
|
||||||
</ul>
|
|
||||||
</SiteLayout>
|
|
||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user