refactor: rename 'recit' to 'narrative' for English code naming

- Rename store: recit.js → narrative.js (useRecitStore → useNarrativeStore)
- Rename templates: recit.php/json.php → narrative.php/json.php
- Rename blueprint: recit.yml → narrative.yml
- Update all imports and references in Vue/JS files
- Update PHP template references and data attributes
- Update CLAUDE.md documentation
- Create comprehensive README.md with English-French dictionary

The dictionary section maps English code terms to French content terms
for easier navigation between codebase and CMS content.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
isUnknown 2026-01-09 10:34:10 +01:00
parent ea0994ed45
commit af788ad1e0
12 changed files with 267 additions and 66 deletions

View file

@ -1,7 +1,7 @@
<?php
/**
* Template JSON pour exposer les données d'un récit
* Accessible via /projet/recit.json ou /projet/recit?format=json
* JSON template to expose narrative data
* Accessible via /projet/narrative.json or /projet/narrative?format=json
*/
header('Content-Type: application/json; charset=utf-8');
@ -175,11 +175,11 @@ function parseGeoformat($geoformat) {
];
}
// Construction de la réponse JSON
// Build JSON response
$data = [
'id' => $page->id(),
'uuid' => $page->uuid()->toString(),
'template' => 'recit',
'template' => 'narrative',
'title' => $page->title()->value(),
'slug' => $page->slug(),
'author' => $page->author()->value() ?? '',
@ -188,7 +188,7 @@ $data = [
'children' => []
];
// Parser les enfants (geoformats et cartes)
// Parse children (geoformats and maps)
foreach ($page->children()->listed() as $child) {
$template = $child->intendedTemplate()->name();

View file

@ -1,12 +1,12 @@
<?php
/**
* Template pour afficher un récit
* Ce template est requis pour que recit.json.php fonctionne
* Template to display a narrative
* This template is required for narrative.json.php to work
*/
?>
<?php snippet('header') ?>
<article class="recit">
<article class="narrative">
<h1><?= $page->title() ?></h1>
<?php if ($page->author()->isNotEmpty()): ?>
@ -27,7 +27,7 @@
</div>
<?php endif ?>
<p><a href="<?= $page->url() ?>/print">Ouvrir l'éditeur d'impression</a></p>
<p><a href="<?= $page->url() ?>/print">Open print editor</a></p>
</article>
<?php snippet('footer') ?>

View file

@ -1,17 +1,17 @@
<?php
/**
* Template pour l'éditeur d'impression Vue.js
* Route: /projet/recit/print
* Template for Vue.js print editor
* Route: /projet/narrative/print
*
* Ce template charge l'app Vue et lui passe l'URL JSON du récit parent
* This template loads the Vue app and passes the parent narrative JSON URL
*/
// Récupérer le récit parent
$recit = $page->parent();
// Get parent narrative
$narrative = $page->parent();
// Construire l'URL JSON du récit
$recitJsonUrl = $recit->url() . '.json';
// Build narrative JSON URL
$narrativeJsonUrl = $narrative->url() . '.json';
?>
<?php snippet('header', ['recitJsonUrl' => $recitJsonUrl]) ?>
<?php snippet('header', ['narrativeJsonUrl' => $narrativeJsonUrl]) ?>
<?php snippet('footer') ?>