Перейти до вмісту
nectar Документація

Документація / Опис файлу сувою

Опис файлу сувою

Файл сувою - це один JSON-об'єкт: дані сувою, його розділи з ідеями та необов'язкові переклади. На цій сторінці описано кожен об'єкт і кожне поле, яке читає імпорт.

Файли для завантаження

  • Приклад файлу: вигаданий сувій з усіма основними полями та повними версіями всіма 15 мовами інтерфейсу.
  • JSON-схема: ті самі правила в машиночитному вигляді (JSON Schema 2020-12) для редакторів, скриптів і ШІ-агентів. Її обмеження беруться з того самого коду, який виконує імпорт.

Структура

Scroll
├── language, title, authors, description, tags,
│   sourceUrl, originalYear, originalPeriod
├── summaries: Chapter[]
│   └── ideas: Idea[]
│       └── examples: string[]
└── translations: { language: Translation }
    └── summaries: TranslatedChapter[]
        └── ideas: TranslatedIdea[]

Сувій (Scroll)

Кореневий об'єкт. Інші об'єкти в схемі називаються Chapter (розділ), Idea (ідея), Translation (переклад), TranslatedChapter і TranslatedIdea.

ПолеТипОбов'язковеПравилаОпис
languagestringтакКод мови, наприклад uk або pt-BRМова початкової версії. Підходить будь-яка мова. Не змінюється під час заміни сувою.
titlestringніДо 255 символівНазва сувою. Без неї сувій називається "Untitled".
authorsstring[]ніУсі імена разом до 255 символівТворці джерела за порядком: автори, ведучі або доповідачі. Можна вказати й один рядок. Без імен показується "Unknown".
descriptionstringніДо 600 символівДва-три речення про те, що дізнається читач.
tagsstring[]ніДо 5, кожен від 1 до 30 символів, без # і комКороткі теми цією мовою. Теги, що відрізняються лише регістром, діакритикою чи шириною символів, вважаються одним. Якщо поля немає, збережені теги лишаються; порожній список їх видаляє.
sourceUrlstringніАдреса http або https, до 2000 символівПосилання на оригінал.
originalYearintegerніВід -3000 до поточного року, крім 0Рік виходу оригіналу. Від'ємні роки - до н. е.
originalPeriodstringніДо 80 символівКоли вийшов оригінал, якщо точний рік невідомий, наприклад "V століття до н. е.".
summariesChapter[]такХоча б одна ідея; загалом до 500 ідейРозділи в порядку читання.
translationsobjectніКлючі - коди мов, крім languageПовні версії іншими мовами. Кожне значення - Translation.

Розділ (Chapter)

ПолеТипОбов'язковеПравилаОпис
titlestringніДо 200 байтівНазва розділу. Без неї розділ стане "Chapter N". Обмеження рахується в байтах, тому кирилицею та іншими нелатинськими абетками вміщується менше символів.
ideasIdea[]ніІдеї розділу в порядку читання.

Ідея (Idea)

ПолеТипОбов'язковеПравилаОпис
textstringтакДо 400 символівСама ідея: завершена думка, зрозуміла на окремій картці. Ідея з порожнім текстом пропускається.
tierstringніimportant, good або commonНаскільки ідея важлива. Важливі ідеї виділяються на картці. Якщо значення немає або воно інше, вважається common.
examplesstring[]ніДо 20, кожен до 400 символівВидно під час свайпу вбік. Порожні й нетекстові елементи відкидаються.

Переклад (Translation)

Кожен запис у translations - повна версія сувою цією мовою. У ній мають бути ті самі розділи, ідеї й приклади, що й в оригіналі, у тому самому порядку й кількості.

ПолеТипОбов'язковеПравилаОпис
titlestringтакНе порожнє, до 255 символівНазва цією мовою.
authorsstring[]такНе порожнєІмена творців так, як їх пишуть цією мовою.
descriptionstringніЯк в оригіналіОпис цією мовою.
tagsstring[]ніЯк в оригіналіТеги для читачів цією мовою. Вони не мусять повторювати теги оригіналу.
originalPeriodstringніЯк в оригіналіПеріод цією мовою; якщо його немає, показується період оригіналу.
summariesTranslatedChapter[]такСтільки ж, скільки в оригіналіРозділи цією мовою.

TranslatedChapter має непорожній title та ideas - стільки ж ідей, скільки у вихідному розділі. TranslatedIdea має непорожній text та examples - стільки ж прикладів, скільки у вихідної ідеї, і жоден не порожній. У перекладених ідеях tier не вказують: він береться з оригіналу, а інше значення відхиляється.

Як імпорт читає значення

  • У тексту обрізаються пробіли з обох країв, а довжина рахується в символах так, як ви їх бачите.
  • Порожнє необов'язкове поле вважається відсутнім.
  • Поля, не описані тут, ігноруються.
  • Читач бачить версію своєю мовою, а якщо її немає, оригінал.

Приклад

{
  "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": []
            }
          ]
        }
      ]
    }
  }
}

Обмеження

ЩоОбмеження
Ідея чи приклад400 символів
Ідей у сувої500
Прикладів на ідею20
Назва, автори255 символів
Назва розділу200 байтів
Опис600 символів
Теги5 на мову, по 30 символів
Вміст однієї мови1 МБ
Завантажуваний файл8 МБ
Ваших сувоїв200

Часті помилки імпорту

  • Файл - некоректний JSON. Попросіть асистента відповісти "лише коректним JSON" або знайдіть пропущену кому чи лапки. Видаліть текст до й після JSON-об'єкта.
  • Не вказано мову. Додайте "language" з кодом, наприклад uk.
  • Ідея чи приклад задовгі. Повідомлення називає мову, розділ, ідею й приклад; скоротіть цей текст.
  • Переклад не збігається. Кожна версія має мати однакову кількість розділів, ідей і прикладів у тому самому порядку.
  • Забагато ідей або завеликий файл. Розділіть джерело на два сувої.
  • У вас уже максимум сувоїв. Замініть сувій, який більше не потрібен; див. Редагування, заміна й доступ.