2.6 KiB
2.6 KiB
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 只是结构和演示内容,不是事实来源。