Documentation
/ Référence du fichier de parchemin
Référence du fichier de parchemin
Un fichier de parchemin est un objet JSON : les détails du parchemin, ses chapitres d’idées et des traductions facultatives. Cette page décrit chaque objet et chaque champ que lit l’importation.
Téléchargements
- Fichier d’exemple : un parchemin fictif qui utilise tous les champs courants, avec des versions complètes dans les 15 langues de l’interface.
- Schéma JSON : les mêmes règles sous une forme lisible par les machines (JSON Schema 2020-12), pour les éditeurs, les scripts et les agents d’IA. Ses limites viennent du code même qu’exécute l’importation.
Structure
Scroll
├── language, title, authors, description, tags,
│ sourceUrl, originalYear, originalPeriod
├── summaries: Chapter[]
│ └── ideas: Idea[]
│ └── examples: string[]
└── translations: { language: Translation }
└── summaries: TranslatedChapter[]
└── ideas: TranslatedIdea[]
Parchemin (Scroll)
L’objet racine. Dans le schéma, les autres objets s’appellent Chapter (chapitre), Idea (idée), Translation (traduction), TranslatedChapter et TranslatedIdea.
| Champ | Type | Obligatoire | Règles | Description |
|---|
language | string | oui | Un code de langue comme fr ou pt-BR | La langue de la version d’origine. Toute langue convient. Elle ne change pas quand le parchemin est remplacé. |
title | string | non | Jusqu’à 255 caractères | Le titre du parchemin. Sans lui, il s’appelle "Untitled". |
authors | string[] | non | Tous les noms ensemble, jusqu’à 255 caractères | Les créateurs de la source, dans l’ordre : auteurs, animateurs ou intervenants. Une seule chaîne est aussi acceptée. Sans nom, on affiche "Unknown". |
description | string | non | Jusqu’à 600 caractères | Deux ou trois phrases sur ce que l’on apprend. |
tags | string[] | non | Jusqu’à 5, chacun de 1 à 30 caractères, sans # ni virgule | Des thèmes courts dans cette langue. Des tags qui ne diffèrent que par la casse, les accents ou la largeur comptent pour un seul. Sans ce champ, les tags enregistrés sont conservés ; une liste vide les efface. |
sourceUrl | string | non | Une URL http ou https, jusqu’à 2000 caractères | Un lien vers l’original. |
originalYear | integer | non | De -3000 à l’année en cours, sauf 0 | L’année de parution de l’original. Les années négatives sont av. J.-C. |
originalPeriod | string | non | Jusqu’à 80 caractères | Quand l’original est paru, pour les œuvres sans année exacte, comme "Ve siècle av. J.-C.". |
summaries | Chapter[] | oui | Au moins une idée ; jusqu’à 500 idées en tout | Les chapitres, dans l’ordre de lecture. |
translations | object | non | Les clés sont des codes de langue autres que language | Des versions complètes dans d’autres langues. Chaque valeur est une Translation. |
Chapitre (Chapter)
| Champ | Type | Obligatoire | Règles | Description |
|---|
title | string | non | Jusqu’à 200 octets | Le titre du chapitre. Sans lui, il devient "Chapter N". La limite compte des octets : dans les écritures non latines, il tient donc moins de caractères. |
ideas | Idea[] | non | | Les idées du chapitre, dans l’ordre de lecture. |
Idée (Idea)
| Champ | Type | Obligatoire | Règles | Description |
|---|
text | string | oui | Jusqu’à 400 caractères | L’idée : une pensée complète, compréhensible sur sa propre carte. Une idée au texte vide est ignorée. |
tier | string | non | important, good ou common | L’importance de l’idée. Les idées importantes ont leur propre apparence sur la carte. Absente ou avec une autre valeur, elle compte comme common. |
examples | string[] | non | Jusqu’à 20, chacun de 400 caractères au plus | Affichés quand on fait glisser la carte sur le côté. Les entrées vides ou qui ne sont pas du texte sont écartées. |
Traduction (Translation)
Chaque entrée de translations est une version complète du parchemin dans cette langue. Elle doit avoir les mêmes chapitres, idées et exemples que l’original, dans le même ordre et en même nombre.
| Champ | Type | Obligatoire | Règles | Description |
|---|
title | string | oui | Non vide, jusqu’à 255 caractères | Le titre dans cette langue. |
authors | string[] | oui | Non vide | Les noms des créateurs tels qu’on les écrit dans cette langue. |
description | string | non | Comme dans l’original | La description dans cette langue. |
tags | string[] | non | Comme dans l’original | Des tags pour les lecteurs de cette langue. Ils n’ont pas à reprendre ceux de l’original. |
originalPeriod | string | non | Comme dans l’original | La période dans cette langue ; sans elle, celle de l’original s’affiche. |
summaries | TranslatedChapter[] | oui | Même nombre que l’original | Les chapitres dans cette langue. |
Un TranslatedChapter a un title non vide et des ideas, autant que dans le chapitre d’origine. Une TranslatedIdea a un text non vide et des examples, autant que dans l’idée d’origine, aucun vide. Les idées traduites omettent tier : il vient de l’original, et une valeur différente est refusée.
Comment l’importation lit les valeurs
- Le texte est nettoyé des espaces aux deux extrémités, et les longueurs comptent les caractères tels qu’on les voit.
- Un champ facultatif vide est traité comme absent.
- Les champs non décrits ici sont ignorés.
- Chaque lecteur voit la version de sa langue et, à défaut, l’original.
Exemple
{
"language": "en",
"title": "Small steps",
"authors": ["Ada Example"],
"description": "How small, repeated actions shape what you notice and do.",
"tags": ["habits", "attention"],
"sourceUrl": "https://example.org/small-steps",
"originalYear": 1841,
"summaries": [
{
"title": "Starting small",
"ideas": [
{
"text": "Make the first step so small that you can take it on a bad day.",
"tier": "important",
"examples": ["Read one page every evening."]
},
{
"text": "You notice more of what you have decided to look for.",
"tier": "common",
"examples": []
}
]
}
],
"translations": {
"de": {
"title": "Kleine Schritte",
"authors": ["Ada Beispiel"],
"description": "Wie kleine, wiederholte Handlungen prägen, was wir bemerken und tun.",
"tags": ["gewohnheiten", "aufmerksamkeit"],
"summaries": [
{
"title": "Klein anfangen",
"ideas": [
{
"text": "Mach den ersten Schritt so klein, dass er dir auch an einem schlechten Tag gelingt.",
"examples": ["Lies jeden Abend eine Seite."]
},
{
"text": "Du bemerkst mehr von dem, wonach du zu suchen beschlossen hast.",
"examples": []
}
]
}
]
}
}
}
Limites
| Quoi | Limite |
|---|
| Idée ou exemple | 400 caractères |
| Idées par parchemin | 500 |
| Exemples par idée | 20 |
| Titre, auteurs | 255 caractères |
| Titre de chapitre | 200 octets |
| Description | 600 caractères |
| Tags | 5 par langue, 30 caractères chacun |
| Contenu d’une langue | 1 Mo |
| Fichier importé | 8 Mo |
| Parchemins possédés | 200 |
Erreurs d’importation courantes
- Le fichier n’est pas du JSON valide. Demandez à l’assistant « uniquement du JSON valide », ou cherchez une virgule ou un guillemet manquant. Supprimez tout texte avant ou après l’objet JSON.
- La langue manque. Ajoutez
"language" avec un code comme fr. - Une idée ou un exemple est trop long. Le message indique la langue, le chapitre, l’idée et l’exemple ; raccourcissez ce texte.
- Une traduction ne correspond pas. Chaque version doit avoir le même nombre de chapitres, d’idées et d’exemples, dans le même ordre.
- Trop d’idées, ou un fichier trop gros. Répartissez la source sur deux parchemins.
- Vous possédez déjà le maximum de parchemins. Remplacez-en un dont vous n’avez plus besoin ; voir Modifier, remplacer et partager.