コンテンツへ移動
nectar ドキュメント

ドキュメント / スクロールファイルの仕様

スクロールファイルの仕様

スクロールファイルはひとつの JSON オブジェクトです。スクロールの詳細、アイデアを含む章、任意の翻訳が入ります。このページでは、読み込み時に読まれるすべてのオブジェクトとフィールドを説明します。

ダウンロード

  • サンプルファイル: よく使うフィールドをすべて含む架空のスクロールです。画面の15言語すべての完全な版が入っています。
  • JSON スキーマ: 同じルールを機械で読める形 (JSON Schema 2020-12) にしたもので、エディター、スクリプト、AI エージェント向けです。上限は読み込み処理と同じコードから取られています。

構造

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はいja や pt-BR などの言語コード元の版の言語。どの言語でもかまいません。スクロールを置き換えても変わりません。
titlestringいいえ255 文字までスクロールのタイトル。ない場合は "Untitled" になります。
authorsstring[]いいえ名前全体で 255 文字まで情報源の作り手を順番どおりに: 著者、ホスト、話し手など。1つの文字列でもかまいません。名前がなければ "Unknown" と表示されます。
descriptionstringいいえ600 文字まで何を学べるかを2〜3文で。
tagsstring[]いいえ5 個まで、各1〜30 文字、# とカンマは不可この言語での短いテーマ。大文字と小文字、アクセント、文字幅だけが違うタグは同じものとして扱われます。フィールドがなければ保存済みのタグはそのまま残り、空のリストで消えます。
sourceUrlstringいいえhttp または https の URL、2000 文字まで原典へのリンク。
originalYearintegerいいえ-3000 から今年まで、0 は不可原典が出た年。負の数は紀元前です。
originalPeriodstringいいえ80 文字まで正確な年がわからない作品の時代。たとえば「紀元前5世紀」。
summariesChapter[]はいアイデアが1つ以上、全体で 500 個まで読む順に並べた章。
translationsobjectいいえキーは language 以外の言語コードほかの言語の完全な版。値はそれぞれ Translation です。

章 (Chapter)

フィールド型必須ルール説明
titlestringいいえ200 バイトまで章のタイトル。ない場合は "Chapter N" になります。上限はバイト数で数えるため、日本語では入る文字数が少なくなります。
ideasIdea[]いいえ章のアイデアを読む順に。

アイデア (Idea)

フィールド型必須ルール説明
textstringはい400 文字までアイデアそのもの。カード1枚で意味が通じる完結した考えです。本文が空のアイデアは飛ばされます。
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言語分の内容1 MB
アップロードするファイル8 MB
所有できるスクロール200

よくある読み込みエラー

  • ファイルが有効な JSON ではない。 アシスタントに「有効な JSON だけ」を頼むか、カンマや引用符の抜けを探します。JSON オブジェクトの前後にある文章は消してください。
  • 言語がない。 ja などのコードで "language" を加えます。
  • アイデアや例が長すぎる。 メッセージに言語、章、アイデア、例が示されるので、その文を短くします。
  • 翻訳が一致しない。 どの版も、章、アイデア、例の数と順序をそろえる必要があります。
  • アイデアが多すぎる、またはファイルが大きすぎる。 情報源を2つのスクロールに分けます。
  • 所有できるスクロールの上限に達している。 不要になったスクロールを置き換えます。編集・置き換え・共有 を参照してください。