跳至內容
nectar 文件

文件 / 卷軸檔案說明

卷軸檔案說明

卷軸檔案是一個 JSON 物件:包含卷軸的詳細資訊、帶有想法的章節,以及選用的翻譯。本頁說明匯入時讀取的每個物件和欄位。

下載

  • 範例檔案:一個虛構的卷軸,用到所有常用欄位,並包含介面全部 15 種語言的完整版本。
  • JSON Schema:用機器可讀的形式(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)

根物件。在 schema 中,其他物件稱為 Chapter(章節)、Idea(想法)、Translation(翻譯)、TranslatedChapter 和 TranslatedIdea。

欄位類型必填規則說明
languagestring是語言代碼,例如 zh-TW 或 pt-BR原始版本的語言。任何語言都可以。替換卷軸時不會改變。
titlestring否最多 255 字元卷軸標題。沒有時為 "Untitled"。
authorsstring[]否所有名字合計最多 255 字元來源的創作者,依序:作者、主持人或講者。也可以只寫一個字串。沒有名字時顯示 "Unknown"。
descriptionstring否最多 600 字元兩三句話說明能學到什麼。
tagsstring[]否最多 5 個,每個 1 到 30 字元,不能含 # 或逗號該語言的簡短主題。只有大小寫、重音或全半形不同的標籤視為同一個。省略此欄位會保留既有標籤;空清單會清除標籤。
sourceUrlstring否http 或 https 網址,最多 2000 字元指向原作的連結。
originalYearinteger否從 -3000 到今年,不能為 0原作問世的年份。負數表示西元前。
originalPeriodstring否最多 80 字元沒有確切年份的作品的問世時期,例如「西元前 5 世紀」。
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 MB
上傳的檔案8 MB
可擁有的卷軸200

常見匯入錯誤

  • 檔案不是有效的 JSON。 請助理「只回覆有效的 JSON」,或檢查是否少了逗號或引號。刪掉 JSON 物件前後的所有文字。
  • 缺少語言。 用 zh-TW 這樣的代碼加入 "language"。
  • 想法或範例太長。 訊息會指出語言、章節、想法和範例,把那段文字縮短。
  • 翻譯對不上。 每個版本的章節、想法和範例數量與順序都必須相同。
  • 想法太多或檔案太大。 把來源拆成兩個卷軸。
  • 你擁有的卷軸已達上限。 替換一個不再需要的卷軸,請參閱編輯、替換與分享。