Dokumentacja
/ Opis pliku zwoju
Opis pliku zwoju
Plik zwoju to jeden obiekt JSON: szczegóły zwoju, jego rozdziały z ideami i opcjonalne tłumaczenia. Ta strona opisuje każdy obiekt i każde pole, które odczytuje import.
Do pobrania
- Przykładowy plik: zmyślony zwój ze wszystkimi typowymi polami i pełnymi wersjami we wszystkich 15 językach interfejsu.
- Schemat JSON: te same zasady w formie czytelnej dla maszyn (JSON Schema 2020-12), dla edytorów, skryptów i agentów AI. Jego limity pochodzą z tego samego kodu, który wykonuje import.
Budowa
Scroll
├── language, title, authors, description, tags,
│ sourceUrl, originalYear, originalPeriod
├── summaries: Chapter[]
│ └── ideas: Idea[]
│ └── examples: string[]
└── translations: { language: Translation }
└── summaries: TranslatedChapter[]
└── ideas: TranslatedIdea[]
Zwój (Scroll)
Obiekt główny. Pozostałe obiekty nazywają się w schemacie Chapter (rozdział), Idea (idea), Translation (tłumaczenie), TranslatedChapter i TranslatedIdea.
| Pole | Typ | Wymagane | Zasady | Opis |
|---|
language | string | tak | Kod języka, np. pl lub pt-BR | Język wersji oryginalnej. Może to być dowolny język. Nie zmienia się przy zastąpieniu zwoju. |
title | string | nie | Do 255 znaków | Tytuł zwoju. Bez niego zwój nazywa się "Untitled". |
authors | string[] | nie | Wszystkie nazwiska łącznie do 255 znaków | Twórcy źródła w kolejności: autorzy, prowadzący lub prelegenci. Można też podać jeden ciąg znaków. Bez nazwisk wyświetla się "Unknown". |
description | string | nie | Do 600 znaków | Dwa lub trzy zdania o tym, czego można się nauczyć. |
tags | string[] | nie | Do 5, każdy od 1 do 30 znaków, bez # i przecinków | Krótkie tematy w tym języku. Tagi różniące się tylko wielkością liter, znakami diakrytycznymi lub szerokością liczą się jako jeden. Brak pola zachowuje zapisane tagi; pusta lista je usuwa. |
sourceUrl | string | nie | Adres http lub https, do 2000 znaków | Link do oryginału. |
originalYear | integer | nie | Od -3000 do bieżącego roku, bez 0 | Rok ukazania się oryginału. Lata ujemne oznaczają p.n.e. |
originalPeriod | string | nie | Do 80 znaków | Kiedy ukazał się oryginał, gdy nie znamy dokładnego roku, np. "V wiek p.n.e.". |
summaries | Chapter[] | tak | Co najmniej jedna idea; łącznie do 500 idei | Rozdziały w kolejności czytania. |
translations | object | nie | Klucze to kody języków inne niż language | Pełne wersje w innych językach. Każda wartość to Translation. |
Rozdział (Chapter)
| Pole | Typ | Wymagane | Zasady | Opis |
|---|
title | string | nie | Do 200 bajtów | Tytuł rozdziału. Bez niego staje się "Chapter N". Limit liczy bajty, więc w alfabetach niełacińskich mieści się mniej znaków. |
ideas | Idea[] | nie | | Idee rozdziału w kolejności czytania. |
Idea (Idea)
| Pole | Typ | Wymagane | Zasady | Opis |
|---|
text | string | tak | Do 400 znaków | Sama idea: pełna myśl, zrozumiała na własnej karcie. Idea z pustym tekstem jest pomijana. |
tier | string | nie | important, good lub common | Jak ważna jest idea. Ważne idee wyglądają na karcie inaczej. Brak wartości lub inna wartość oznacza common. |
examples | string[] | nie | Do 20, każdy do 400 znaków | Widoczne po przesunięciu karty w bok. Puste wpisy i wpisy niebędące tekstem są odrzucane. |
Tłumaczenie (Translation)
Każdy wpis w translations to pełna wersja zwoju w danym języku. Musi mieć te same rozdziały, idee i przykłady co oryginał, w tej samej kolejności i liczbie.
| Pole | Typ | Wymagane | Zasady | Opis |
|---|
title | string | tak | Niepuste, do 255 znaków | Tytuł w tym języku. |
authors | string[] | tak | Niepuste | Imiona i nazwiska twórców zapisane w tym języku. |
description | string | nie | Jak w oryginale | Opis w tym języku. |
tags | string[] | nie | Jak w oryginale | Tagi dla czytelników w tym języku. Nie muszą powtarzać tagów oryginału. |
originalPeriod | string | nie | Jak w oryginale | Okres w tym języku; bez niego wyświetla się okres oryginału. |
summaries | TranslatedChapter[] | tak | Tyle samo co w oryginale | Rozdziały w tym języku. |
TranslatedChapter ma niepusty title i ideas z taką samą liczbą idei jak rozdział oryginalny. TranslatedIdea ma niepusty text i examples z taką samą liczbą wpisów jak idea oryginalna, bez pustych. Przetłumaczone idee pomijają tier: pochodzi on z oryginału, a inna wartość jest odrzucana.
Jak import odczytuje wartości
- Z tekstu usuwane są spacje na obu końcach, a długość liczy się w znakach tak, jak je widać.
- Puste pole opcjonalne traktowane jest jak brakujące.
- Pola nieopisane tutaj są ignorowane.
- Czytelnik widzi wersję w swoim języku, a jeśli jej nie ma, oryginał.
Przykład
{
"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": []
}
]
}
]
}
}
}
Limity
| Co | Limit |
|---|
| Idea lub przykład | 400 znaków |
| Idei w zwoju | 500 |
| Przykładów na ideę | 20 |
| Tytuł, autorzy | 255 znaków |
| Tytuł rozdziału | 200 bajtów |
| Opis | 600 znaków |
| Tagi | 5 na język, po 30 znaków |
| Treść w jednym języku | 1 MB |
| Przesyłany plik | 8 MB |
| Własne zwoje | 200 |
Częste błędy importu
- Plik nie jest poprawnym JSON. Poproś asystenta o "wyłącznie poprawny JSON" lub poszukaj brakującego przecinka albo cudzysłowu. Usuń tekst przed obiektem JSON i po nim.
- Brakuje języka. Dodaj
"language" z kodem, np. pl. - Idea lub przykład jest za długi. Komunikat wskazuje język, rozdział, ideę i przykład; skróć ten tekst.
- Tłumaczenie się nie zgadza. Każda wersja musi mieć tę samą liczbę rozdziałów, idei i przykładów, w tej samej kolejności.
- Za dużo idei lub za duży plik. Podziel źródło na dwa zwoje.
- Masz już maksymalną liczbę zwojów. Zastąp zwój, którego już nie potrzebujesz; zobacz Edytowanie, zastępowanie i udostępnianie.