Files
archicratie-edition/docs/diagrams/archicratie-web-edition-machine-editoriale-verbatim-v2.svg
Archicratia 78eb9cbb58
All checks were successful
CI / build-and-anchors (push) Successful in 1m46s
SMOKE / smoke (push) Successful in 14s
chore: add diagrams + scripts + archicrat-ia route
2026-02-20 18:27:25 +01:00

511 lines
14 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="1600"
height="900"
viewBox="0 0 1600 900"
version="1.1"
id="svg53"
sodipodi:docname="archicratie-web-edition-machine-editoriale-verbatim-v2.svg"
inkscape:version="1.3-alpha (95f74fb, 2023-03-31)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview53"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="0.82625"
inkscape:cx="655.97579"
inkscape:cy="478.66868"
inkscape:window-width="1472"
inkscape:window-height="1022"
inkscape:window-x="234"
inkscape:window-y="30"
inkscape:window-maximized="0"
inkscape:current-layer="svg53" />
<defs
id="defs4">
<!-- Fond clair lisible partout -->
<linearGradient
id="bg"
x1="0"
y1="0"
x2="1"
y2="1">
<stop
offset="0"
stop-color="#ffffff"
id="stop1" />
<stop
offset="1"
stop-color="#f1f5f9"
id="stop2" />
</linearGradient>
<!-- Flèches -->
<marker
id="arrow"
markerWidth="10"
markerHeight="10"
refX="9"
refY="3"
orient="auto">
<path
d="M0,0 L9,3 L0,6 Z"
fill="#334155"
id="path2" />
</marker>
<marker
id="arrowA"
markerWidth="10"
markerHeight="10"
refX="9"
refY="3"
orient="auto">
<path
d="M0,0 L9,3 L0,6 Z"
fill="#2563eb"
id="path3" />
</marker>
<marker
id="arrowG"
markerWidth="10"
markerHeight="10"
refX="9"
refY="3"
orient="auto">
<path
d="M0,0 L9,3 L0,6 Z"
fill="#059669"
id="path4" />
</marker>
<!-- Styles SANS variables CSS (compat max) -->
<style
id="style4"><![CDATA[
.title{font:800 28px/1.2 system-ui,-apple-system,Segoe UI,Roboto,Arial;fill:#0f172a}
.subtitle{font:500 14px/1.3 system-ui,-apple-system,Segoe UI,Roboto,Arial;fill:#475569}
.h{font:800 16px/1.2 system-ui,-apple-system,Segoe UI,Roboto,Arial;fill:#0f172a}
.t{font:500 13px/1.35 system-ui,-apple-system,Segoe UI,Roboto,Arial;fill:#111827}
.s{font:500 12px/1.35 system-ui,-apple-system,Segoe UI,Roboto,Arial;fill:#475569}
.mono{font:600 12px/1.35 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;fill:#0f172a}
/* Cadres lisibles */
.box{fill:#ffffff;stroke:#0ea5e9;stroke-width:1.4}
.box2{fill:#f8fafc;stroke:#94a3b8;stroke-width:1.2}
/* Pills */
.chip{fill:#dbeafe;stroke:#2563eb;stroke-width:1}
.chip2{fill:#d1fae5;stroke:#059669;stroke-width:1}
.chipW{fill:#fef3c7;stroke:#d97706;stroke-width:1}
.chipD{fill:#fee2e2;stroke:#dc2626;stroke-width:1}
/* Traits / flèches */
.line{stroke:#334155;stroke-width:1.4;fill:none}
.dash{stroke-dasharray:6 6}
.arrow{stroke:#334155;stroke-width:1.8;fill:none;marker-end:url(#arrow)}
.arrowA{stroke:#2563eb;stroke-width:2.0;fill:none;marker-end:url(#arrowA)}
.arrowG{stroke:#059669;stroke-width:2.0;fill:none;marker-end:url(#arrowG)}
]]></style>
</defs>
<rect
x="0"
y="0"
width="1600"
height="900"
fill="url(#bg)"
id="rect4" />
<text
x="40"
y="56"
class="title"
id="text4">Archicratie — Machine éditoriale (v2, verbatim)</text>
<text
x="40"
y="84"
class="subtitle"
id="text5">Détails scripts/fichiers — 2026-02-20</text>
<rect
x="40"
y="140"
width="460"
height="236.05144"
class="box"
id="rect5" />
<text
x="58"
y="170"
class="h"
id="text6">Sources (repo)</text>
<text
x="58"
y="194"
class="t"
id="text7">Contenu : src/content/** (MD/MDX)</text>
<text
x="58"
y="212"
class="t"
id="text8">Annotations : src/annotations/** (YAML)</text>
<text
x="58"
y="230"
class="t"
id="text9">UI : src/layouts + src/components + global.css</text>
<text
x="58"
y="248"
class="s"
id="text10">Plugin paragraph-ids ajoute des ids stables sur paragraphes</text>
<rect
x="166"
y="296"
width="190"
height="28"
class="chip"
id="rect10" />
<text
x="180"
y="315"
class="mono"
id="text11"
style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:12px;line-height:1.35;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace">rehype-paragraph-ids.js</text>
<rect
x="560"
y="140"
width="500"
height="239.42511"
class="box"
id="rect11" />
<text
x="578"
y="170"
class="h"
id="text12">Build (Astro static)</text>
<text
x="578"
y="194"
class="t"
id="text13">astro build → dist/**/index.html</text>
<text
x="578"
y="212"
class="t"
id="text14">meta Pagefind: edition/level/status/version</text>
<text
x="578"
y="230"
class="t"
id="text15">Layout : EditionLayout + SiteLayout</text>
<text
x="578"
y="248"
class="s"
id="text16">data-pagefind-body = zone indexée</text>
<rect
x="750"
y="300"
width="128"
height="28"
class="chip2"
id="rect16" />
<text
x="764"
y="319"
class="mono"
id="text17"
style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:12px;line-height:1.35;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace">npm run build</text>
<rect
x="560"
y="430"
width="500"
height="280"
class="box2"
id="rect17" />
<text
x="578"
y="460"
class="h"
id="text18">Postbuild (qualité + recherche + indexes)</text>
<text
x="578"
y="484"
class="t"
id="text19">Aliases d'ancres (backward compat)</text>
<text
x="578"
y="502"
class="t"
id="text20">Dédoublonnage d'IDs (anti-régression)</text>
<text
x="578"
y="520"
class="t"
id="text21">Index des paragraphes (para-index)</text>
<text
x="578"
y="538"
class="t"
id="text22">Index des annotations (annotations-index)</text>
<text
x="578"
y="556"
class="t"
id="text23">Pagefind (recherche full-text)</text>
<rect
x="690.71106"
y="578.59302"
width="246"
height="28"
class="chip"
id="rect23" />
<text
x="704.71106"
y="597.59302"
class="mono"
id="text24"
style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:12px;line-height:1.35;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace">inject-anchor-aliases.mjs</text>
<rect
x="705"
y="622"
width="214"
height="28"
class="chip"
id="rect24" />
<text
x="719"
y="641"
class="mono"
id="text25"
style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:12px;line-height:1.35;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace">dedupe-ids-dist.mjs</text>
<rect
x="710.3858"
y="664.52344"
width="206"
height="28"
class="chip2"
id="rect25" />
<text
x="724.3858"
y="683.52344"
class="mono"
id="text26"
style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:12px;line-height:1.35;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace">build-para-index.mjs</text>
<rect
x="1265"
y="660"
width="254"
height="28"
class="chip2"
id="rect26" />
<text
x="1279"
y="679"
class="mono"
id="text27">build-annotations-index.mjs</text>
<rect
x="1120"
y="140"
width="440"
height="240"
class="box"
id="rect27" />
<text
x="1138"
y="170"
class="h"
id="text28">Artefacts (dist/)</text>
<text
x="1138"
y="194"
class="mono"
id="text29">HTML statique + assets</text>
<text
x="1138"
y="212"
class="mono"
id="text30">dist/pagefind/**</text>
<text
x="1138"
y="230"
class="mono"
id="text31">dist/para-index.json</text>
<text
x="1138"
y="248"
class="mono"
id="text32">dist/annotations-index.json</text>
<text
x="1138"
y="266"
class="s"
id="text33">(en dev) recopiés dans public/*-index.json</text>
<rect
x="1120"
y="430"
width="441.2103"
height="280.95309"
class="box2"
id="rect33" />
<text
x="1138"
y="460"
class="h"
id="text34">Runtime navigateur (lecture)</text>
<text
x="1138"
y="484"
class="t"
id="text35">LocalToc sync (H2/H3)</text>
<text
x="1138"
y="502"
class="t"
id="text36">banner-follow + reading-follow__inner</text>
<text
x="1138"
y="520"
class="t"
id="text37">SidePanel: niveaux + annotations + propose</text>
<text
x="1138"
y="538"
class="s"
id="text38">Comportement lecture: H2/H3 unifiés (plus daccordéon gênant)</text>
<rect
x="1263.4493"
y="588.65356"
width="150"
height="28"
class="chip2"
id="rect38" />
<text
x="1277.4493"
y="607.65356"
class="mono"
id="text39"
style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:12px;line-height:1.35;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace">SidePanel.astro</text>
<rect
x="1260.8547"
y="633.4342"
width="160"
height="28"
class="chip"
id="rect39" />
<text
x="1274.8547"
y="652.4342"
class="mono"
id="text40"
style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:12px;line-height:1.35;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace">LevelToggle.astro</text>
<rect
x="41.210289"
y="431.52798"
width="462.42056"
height="275.41605"
class="box2"
id="rect40" />
<text
x="58"
y="470"
class="h"
id="text41"
style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:16px;line-height:1.2;font-family:system-ui, '-apple-system', 'Segoe UI', Roboto, Arial">Flux “Proposer” (tickets)</text>
<text
x="58"
y="494"
class="t"
id="text42"
style="font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;font-size:13px;line-height:1.35;font-family:system-ui, '-apple-system', 'Segoe UI', Roboto, Arial">UI collecte: page + paragraphe + type + message</text>
<text
x="58"
y="512"
class="t"
id="text43"
style="font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;font-size:13px;line-height:1.35;font-family:system-ui, '-apple-system', 'Segoe UI', Roboto, Arial">Création d'issue Gitea (labels)</text>
<text
x="58"
y="530"
class="t"
id="text44"
style="font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;font-size:13px;line-height:1.35;font-family:system-ui, '-apple-system', 'Segoe UI', Roboto, Arial">Lien retour: issue → page + id</text>
<text
x="58"
y="548"
class="s"
id="text45"
style="font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;font-size:12px;line-height:1.35;font-family:system-ui, '-apple-system', 'Segoe UI', Roboto, Arial">Option: bridge same-origin pour éviter CORS/auth</text>
<rect
x="60"
y="610"
width="150"
height="28"
class="chip"
id="rect45" />
<text
x="74"
y="629"
class="mono"
id="text46"
style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:12px;line-height:1.35;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace">PUBLIC_GITEA_*</text>
<rect
x="230"
y="610"
width="262"
height="28"
class="chip2"
id="rect46" />
<text
x="244"
y="629"
class="mono"
id="text47"
style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:12px;line-height:1.35;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace">PUBLIC_ISSUE_BRIDGE_PATH</text>
<path
d="M500 250 C530 250 530 250 560 250"
class="arrowA"
id="path47" />
<path
d="M810 400 C810 420 810 420 810 430"
class="arrowA"
id="path48" />
<path
d="M1060 250 C1090 250 1090 250 1120 250"
class="arrowA"
id="path49" />
<path
d="M1340 380 C1340 410 1340 410 1340 430"
class="arrow"
id="path50" />
<path
d="M500 540 C620 540 620 520 560 520"
class="arrow"
id="path51" />
<text
x="520"
y="525"
class="s"
id="text51">issues</text>
<rect
x="40"
y="820"
width="1520"
height="60"
class="box2"
id="rect51" />
<text
x="58"
y="850"
class="h"
id="text52">Conseil de maintenance</text>
<text
x="58"
y="874"
class="s"
id="text53">Toute évolution UI/indices doit rester déterministe : build identique sur Mac, CI, et NAS. En cas de hotfix, re-sync via PR.</text>
</svg>