ドキュメント
/ スクロールファイルの仕様
スクロールファイルの仕様
スクロールファイルはひとつの 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 と呼びます。
| フィールド | 型 | 必須 | ルール | 説明 |
|---|
language | string | はい | ja や pt-BR などの言語コード | 元の版の言語。どの言語でもかまいません。スクロールを置き換えても変わりません。 |
title | string | いいえ | 255 文字まで | スクロールのタイトル。ない場合は "Untitled" になります。 |
authors | string[] | いいえ | 名前全体で 255 文字まで | 情報源の作り手を順番どおりに: 著者、ホスト、話し手など。1つの文字列でもかまいません。名前がなければ "Unknown" と表示されます。 |
description | string | いいえ | 600 文字まで | 何を学べるかを2〜3文で。 |
tags | string[] | いいえ | 5 個まで、各1〜30 文字、# とカンマは不可 | この言語での短いテーマ。大文字と小文字、アクセント、文字幅だけが違うタグは同じものとして扱われます。フィールドがなければ保存済みのタグはそのまま残り、空のリストで消えます。 |
sourceUrl | string | いいえ | http または https の URL、2000 文字まで | 原典へのリンク。 |
originalYear | integer | いいえ | -3000 から今年まで、0 は不可 | 原典が出た年。負の数は紀元前です。 |
originalPeriod | string | いいえ | 80 文字まで | 正確な年がわからない作品の時代。たとえば「紀元前5世紀」。 |
summaries | Chapter[] | はい | アイデアが1つ以上、全体で 500 個まで | 読む順に並べた章。 |
translations | object | いいえ | キーは language 以外の言語コード | ほかの言語の完全な版。値はそれぞれ Translation です。 |
章 (Chapter)
| フィールド | 型 | 必須 | ルール | 説明 |
|---|
title | string | いいえ | 200 バイトまで | 章のタイトル。ない場合は "Chapter N" になります。上限はバイト数で数えるため、日本語では入る文字数が少なくなります。 |
ideas | Idea[] | いいえ | | 章のアイデアを読む順に。 |
アイデア (Idea)
| フィールド | 型 | 必須 | ルール | 説明 |
|---|
text | string | はい | 400 文字まで | アイデアそのもの。カード1枚で意味が通じる完結した考えです。本文が空のアイデアは飛ばされます。 |
tier | string | いいえ | important、good、common のいずれか | アイデアの重要度。重要なアイデアはカードの見た目が変わります。値がないかほかの値の場合は common になります。 |
examples | string[] | いいえ | 20 個まで、各 400 文字まで | 横にスワイプすると表示されます。空の項目や文字列でない項目は取り除かれます。 |
翻訳 (Translation)
translations の各項目は、その言語でのスクロールの完全な版です。章、アイデア、例は、元の版と同じ順序、同じ数でなければなりません。
| フィールド | 型 | 必須 | ルール | 説明 |
|---|
title | string | はい | 空でなく、255 文字まで | その言語でのタイトル。 |
authors | string[] | はい | 空でないこと | その言語で書いた作り手の名前。 |
description | string | いいえ | 元の版と同じ | その言語での説明。 |
tags | string[] | いいえ | 元の版と同じ | その言語で読む人向けのタグ。元の版と同じにする必要はありません。 |
originalPeriod | string | いいえ | 元の版と同じ | その言語での時代。ない場合は元の版のものが表示されます。 |
summaries | TranslatedChapter[] | はい | 元の版と同じ数 | その言語での章。 |
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つのスクロールに分けます。
- 所有できるスクロールの上限に達している。 不要になったスクロールを置き換えます。編集・置き換え・共有 を参照してください。