跳到主要内容
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-CN 或 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-CN 这样的代码添加 "language"。
  • 观点或示例太长。 提示会指出语言、章节、观点和示例,把那段文字缩短。
  • 翻译对不上。 每个版本的章节、观点和示例数量与顺序都必须相同。
  • 观点太多或文件太大。 把来源拆成两个卷轴。
  • 你拥有的卷轴已达上限。 替换一个不再需要的卷轴,参见编辑、替换与分享。