Refonte complète en SvelteKit (méthode OKI, AI-Overview ready)
Reconstruit le site statique mono-page (Bulma + htmx + Strapi) en SvelteKit 2 + Svelte 5 (runes) + TypeScript, 100 % statique (adapter-static), auto-hébergé. - Contenu enrichi à partir du dossier documentaire sourcé : 28 pages (histoire, Mé 67, procès 1968, 9 fiches militants, idéologie, héritage, publications, charte, orientation, sources, FAQ, actualités, contact, mentions légales). - Souveraineté : retrait de Bulma/htmx/mustache/ionicons/Plausible/Google Fonts et de l'API Strapi. Polices Archivo/Inter et sprite SVG auto-hébergés (zéro emoji). - Identité GONG (drapeau vert/blanc/rouge), thème sombre par défaut + clair AA, cadences motion gwoka, KineticText, timeline, 404 kréyòl, PWA hors-ligne. - SEO/AI-Overview : HTML sémantique, JSON-LD (Organization, Person, Event, FAQPage, Article...), hreflang, sitemap dynamique, robots/humans.txt. - Sécurité : CSP hachée + en-têtes (.htaccess o2switch + _headers Cloudflare), HSTS. - Actualités éditées via Sveltia CMS (git-based) ; Strapi retiré. npm run build : vert · npm run check : 0 erreur / 0 warning · JS 97 Ko gzip. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
b89c1a80b7
commit
cd9b9b093c
@@ -0,0 +1,5 @@
|
||||
# CSP spécifique à l'administration (Sveltia CMS) : doit joindre la forge Gitea.
|
||||
<IfModule mod_headers.c>
|
||||
Header always set X-Robots-Tag "noindex, nofollow"
|
||||
Header always set Content-Security-Policy "default-src 'self'; script-src 'self' 'wasm-unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https://labola.o-k-i.net; font-src 'self' data:; connect-src 'self' https://labola.o-k-i.net; frame-ancestors 'none'; base-uri 'self'"
|
||||
</IfModule>
|
||||
@@ -0,0 +1,47 @@
|
||||
# Sveltia CMS — administration des actualités du GONG.
|
||||
# Backend git : forge Gitea/Forgejo de l'écosystème OKI (labola.o-k-i.net).
|
||||
# Prérequis (une seule fois) : créer une application OAuth dans Gitea
|
||||
# (Paramètres → Applications → Nouvelle application OAuth2),
|
||||
# URL de redirection : https://gong.gp/admin/ — puis renseigner `app_id` ci-dessous.
|
||||
# Voir DEPLOIEMENT.md.
|
||||
|
||||
backend:
|
||||
name: gitea
|
||||
repo: ORGANISATION-KA-INTERNATIONALE/gong.gp
|
||||
branch: prod # ⚠️ doit correspondre à la branche déployée en production
|
||||
base_url: https://labola.o-k-i.net
|
||||
# app_id: "<client-id-oauth-gitea>"
|
||||
|
||||
# Édition locale sans authentification : `npx @sveltia/cms-cli` ou ?dev côté outillage.
|
||||
# media : images des actualités auto-hébergées dans le dépôt.
|
||||
media_folder: static/images/actualites
|
||||
public_folder: /images/actualites
|
||||
|
||||
# Interface en français.
|
||||
locale: fr
|
||||
|
||||
collections:
|
||||
- name: actualites
|
||||
label: Actualités
|
||||
label_singular: Actualité
|
||||
description: Communiqués, commémorations et annonces du GONG.
|
||||
folder: content/actualites
|
||||
create: true
|
||||
delete: true
|
||||
slug: '{{year}}-{{month}}-{{day}}-{{slug}}'
|
||||
identifier_field: titre
|
||||
summary: '{{titre}} — {{date}}'
|
||||
sortable_fields: [date, titre]
|
||||
fields:
|
||||
- { name: titre, label: Titre, widget: string }
|
||||
- name: date
|
||||
label: Date de publication
|
||||
widget: datetime
|
||||
format: 'YYYY-MM-DD'
|
||||
date_format: 'YYYY-MM-DD'
|
||||
time_format: false
|
||||
- { name: chapeau, label: Chapeau (résumé court), widget: text }
|
||||
- { name: couverture, label: Image de couverture, widget: image, required: false }
|
||||
- { name: couvertureAlt, label: "Texte alternatif de l'image", widget: string, required: false }
|
||||
- { name: top, label: Mettre en avant, widget: boolean, default: false }
|
||||
- { name: body, label: Contenu, widget: markdown }
|
||||
@@ -0,0 +1,14 @@
|
||||
<!doctype html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<title>GONG — Administration</title>
|
||||
<link rel="icon" href="/favicon.ico" sizes="32x32" />
|
||||
</head>
|
||||
<body>
|
||||
<!-- Sveltia CMS — bundle auto-hébergé (souveraineté + CSP script-src 'self'). -->
|
||||
<script src="/admin/sveltia-cms.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user