qwen_agent/skills_developing/z-card-image/references/x-like-posts.md
2026-03-17 21:55:10 +08:00

4.3 KiB
Raw Blame History

x-like-posts 模板规范

比例:自适应长图 | 宽度900px | 用途:将多条帖子整理成一张 X / Twitter 风格分享长图

适用场景

  • 用户要“X 风格分享图”
  • 用户给的是帖子类型数据,不一定来自 Twitter
  • 用户希望保留 X 的阅读感,但以通用帖子分享图方式导出

渲染命令

python3 skills/z-card-image/scripts/render_x_like_posts.py \
  --author "OpenAI" \
  --handle "@OpenAI" \
  --post "第一条帖子内容" \
  --post "第二条帖子内容" \
  --out tmp/x-like-posts.png

如帖子较多,优先写入 JSON 文件后传入:

python3 skills/z-card-image/scripts/render_x_like_posts.py \
  --author "OpenAI" \
  --handle "@OpenAI" \
  --posts-file tmp/posts.json \
  --out /absolute/path/to/output/x-like-posts.png

JSON 输入格式

--posts-file 读取一个 JSON 数组,支持两种结构。

1. 字符串数组

最简格式,每个元素只提供正文:

[
  "post 1",
  "post 2"
]

此格式下模板只显示:

  • 正文
  • 外层参数提供的作者名 / handle / avatar

2. 对象数组

推荐格式,每条帖子可带时间和互动信息:

[
  {
    "text": "post 1",
    "created_at": "2026-03-11T04:39:46.000Z",
    "url": "https://x.com/foo/status/1",
    "favorite_count": 31,
    "retweet_count": 4
  },
  {
    "text": "post 2"
  }
]

字段规则:

字段 必填 说明 当前是否显示
text 帖子正文
created_at 帖子发布时间,建议 ISO 8601
url 原帖链接 是(显示为 x.com 标记)
favorite_count 点赞数
retweet_count 转发 / repost 数

当前模板显示逻辑

  • text:显示为正文
  • created_at:显示在每条帖子底部,并用于顶部日期标签
  • favorite_count:大于 0 时显示
  • retweet_count:大于 0 时显示
  • url:存在时显示 x.com 来源标记
  • 作者名、handle、avatar不从 JSON 内层读取,而是由外层参数 --author--handle--avatar 控制

兼容说明

  • 旧参数 --tweet / --tweets-file 仍可用
  • 旧命名 tweet-thread 已并入 x-like-posts
  • 如果输入来自 ingest-service,优先使用它的 created_at 作为发布时间

参数说明

参数 默认值 说明
--author Unknown Author 作者名
--handle @twitter 作者 handle
--post 单条帖子内容,可重复传多次
--posts-file 帖子 JSON 文件
--out 必填 输出 PNG 路径,支持相对路径或绝对路径
--header-label X-like 帖子分享图 顶部说明文案
--footer 整理转发 · via z-card-image 底部来源文案
--bg #f5f8fa 页面背景
--card-bg #ffffff 卡片背景
--text #0f1419 正文颜色
--muted #536471 次级文字颜色
--border #e6ecf0 分隔线颜色
--accent #1d9bf0 强调色
--avatar 默认头像 作者头像

内容处理规则

  1. 一条帖子对应一个卡片区块,按输入顺序排列
  2. 保留段落换行;空行只用于分段,不额外显示
  3. 多条帖子合成一张长图,画布高度按内容长度自动估算
  4. 若帖子过多导致总高度接近上限,优先按语义拆成多张图,不要强行塞满一张
  5. 时间信息默认取帖子 created_at;顶部只显示日期,每条帖子底部显示单条发布时间

时间规则

  • 时间字段优先使用 created_at
  • 不使用 first_seen_at 作为新闻发布时间,它只是 ingest 入库时间
  • 当前模板按 Asia/Shanghai (UTC+8) 展示时间
  • 顶部只显示日期 YYYY-MM-DD
  • 每条帖子底部显示精确到分钟的发布时间

导出规则

  • 支持导出到具体位置:--out 可传相对路径或绝对路径
  • 脚本会自动创建目标目录
  • 如果后续还要通过消息工具发图,输出仍建议放在当前 workspace 内,避免系统临时目录上传失败

使用规则

  • 用户明确提到“X 风格分享图 / 帖子分享图 / 帖子长图”时,优先使用本模板
  • 用户只是要一句金句封面图时,仍使用 poster-3-4