Files

2.6 KiB
Raw Permalink Blame History

Threads 页面 JSON 契约

顶层必须是对象,并且完整包含 site、navigation、composer、threads、recommendations、activity。弹窗按这六个模块分别编辑,但「应用并渲染」会重新校验完整文档。

通用规则

  • 所有 colors 都是两个 CSS 十六进制颜色,例如 ["#7257f5", "#d94fbd"]。
  • 互动量是非负数字;显示文案、名称和时间是非空字符串。
  • 所有列表都有数量上限,避免单文件页面失控;数据文本不能包含 HTML。

site

  • brand、pageTitle、description:站点展示信息。
  • theme:auto、light 或 dark。
  • currentUser:name、handle、initial、colors 和 stats;stats 包含 following、followers、threads。

navigation

  • feedTitle、feedFilter、searchPlaceholder、searchHints、copyright:非空字符串。
  • tabs:1–4 个标签。
  • mobileLabels:恰好 5 个标签,顺序为首页、搜索、创建、动态、我。
  • footerLinks:0–8 个页脚链接名称。

composer

  • inlinePlaceholder、dialogTitle、textareaPlaceholder、publishLabel:非空字符串。
  • maxLength:1–2000;replyMaxLength:1–500。

threads

  • emptyTitle、emptyText:搜索无结果时文案。
  • items:1–30 条,id 唯一。
  • 每项包含 author、time、text、metrics、followable、replies、preview;media、quote 可为 null。
  • author 包含 name、handle、initial、colors、verified。
  • media.type 可为内置 autumn-grid,也可为 image、video、webpage。
  • 图片使用 {type:"image", mediaUrl, alt, pageUrl?};视频使用 {type:"video", mediaUrl, posterUrl?, alt?, pageUrl?};网页使用 {type:"webpage", pageUrl, title, description?, mediaUrl?, embed?}。URL 只接受 http(s);图片和视频也允许对应的 data: URL。
  • quote 包含 name、handle、initial、colors、text。
  • metrics 包含非负 likes、replies、reposts。
  • replies 最多 8 条,每项包含作者、时间、正文和同样的 metrics。

recommendations

  • followTitle、topicTitle:侧栏标题。
  • people:0–20 项,每项 {name, handle, initial, colors}。
  • topics:0–20 项,每项 {meta, title, count}。

activity

  • title:动态面板标题。
  • items:0–30 项,每项包含 name、initial、colors、text、time、followable。

JSON 使用双引号,不允许注释、Markdown 围栏或尾逗号。assets/default-data.json 只是结构和演示内容,不是事实来源。