Repository navigation
Fichiers sp3
lalBi94 edited this page Nov 11, 2026
·
3 revisions
Un workspace est un dossier choisi par l’utilisateur :
mon-projet/
workspace.sp3
images/
backups/
-
workspace.sp3est le document interne, au format JSON UTF-8 non compressé. -
images/contient les images liées par une référence relative ; une image peut aussi être intégrée en Data URL. -
backups/conserve jusqu’à trois sauvegardes de secours lors d’un enregistrement direct.
Le document interne reprend l’enveloppe suivante :
{
"application": "Sapphire 3",
"workspaceVersion": 3,
"project": { "formatVersion": 1, "id": "workspace", "modules": [], "nodes": [] },
"presentation": {
"cards": [],
"camera": { "x": 0, "y": 0, "zoomLevel": 0 },
"selected": null
},
"exercise": null,
"dashboard": null
}-
project: source logique complète, identifiants, références, types, point d’entrée. -
presentation: cartes, positions, tailles, pliage, notes, images, vue, sélection. Une cartepluginWidgetportepluginId,widgetId,pluginVersion,properties,state,bindingset éventuellementpluginWidgetView(widgetpar défaut,definitionpour la définition JSON). -
exercise: manifeste optionnel (voir Exercices). -
dashboard: configuration optionnelle de l’export Web Dashboard. - Les plugins installés et leurs préférences sont hors du workspace, dans la préférence locale
sapphire-plugins. Un workspace ne déclenche jamais l’installation automatique d’un plugin ; une carte de plugin absente conserve ses données. - AST, diagnostics, index et caches sont recalculés, jamais enregistrés.
-
workspaceVersioncourant : 3. - Versions 1 et 2 migrées à la lecture vers la version 3 :
generic→typeParameters, retrait descreenScale, images liées, workspace en dossier. - Version future ou malformée : refusée sans remplacer le document.
-
project.formatVersionreste 1.
- Le document interne du workspace courant est réécrit après chaque modification, avec un délai de 500 ms pour regrouper les actions.
- Aucune écriture pendant un dialogue natif ou une importation en attente.
- Un document jamais enregistré mais non vierge est protégé dans
sapphire3-recovery/, dans le répertoire de données persistant. - La copie est restaurée au lancement, puis effacée après sauvegarde, « Enregistrer sous », nouveau document ou remplacement confirmé.
- Une copie illisible est supprimée sans bloquer la réouverture du dernier workspace.
À chaque enregistrement direct, jusqu’à trois générations précédentes dans backups/ :
backups/workspace.backup-1.sp3
backups/workspace.backup-2.sp3
backups/workspace.backup-3.sp3
Une copie impossible n’annule pas la sauvegarde ; elle est signalée. Les sauvegardes ne tournent pas à l’autosauvegarde ni lors d’un « Enregistrer sous ».
- Open workspace : dialogue natif de dossier, confirmation de remplacement.
-
Import
.sp3/.json: accepte un document workspace ou une source logique JSON v1 seule, avec disposition initiale. - Save / Ctrl+S : écrit le document interne du workspace courant.
- Save as… : nouveau chemin sans écraser l’existant.
- New workspace : document vierge.
- Export ZIP : archive du workspace avec le document interne et les images liées.
- Export SVG : vue d’ensemble dépliée, sans modifier le document.
- Export PNG/JSON d’un nœud : depuis le panneau de propriétés.
Les cinq workspaces récents et le dernier dossier sont mémorisés localement. Un chemin inaccessible est oublié.
Avant tout remplacement :
- structure des modules et nœuds ;
- identifiants uniques ;
- géométrie des cartes ;
- cohérence carte/module ;
- vues de widgets ;
- contrats ;
- manifeste d’exercice et
starter; - configuration
dashboard; - JSON sérialisable sans perte.
Un programme sémantiquement incomplet peut être restauré ; le moteur conserve ses diagnostics.
- Taille maximale du document interne : 20 Mio.
- Pas de fusion de documents.
- Pas de migration automatique des versions futures.
- Les menus, formulaires non validés, gestes et scrolls internes ne sont pas sauvegardés.
- Les tests d’exercice et les tests de correction restent visibles dans le fichier.
Sapphire 3 — wiki du projet. Licence MIT. Documentation source : docs/ et abstract/. Dernière mise à jour : 11 novembre 2026.
Sapphire 3
Comprendre
Utiliser
Projet