209 lines
10 KiB
Plaintext
209 lines
10 KiB
Plaintext
# ═══════════════════════════════════════
|
||
# HLDP-ZY://brain/emerge/d122-xiaohongshu-widgets.hdlp
|
||
# 小红书封面小组件库 · 开发认知链
|
||
# 不是记录结论 — 是记录脑子怎么转的
|
||
# ═══════════════════════════════════════
|
||
|
||
@chain: D122 · 2026-06-02
|
||
@sovereign: TCS-0002∞ · 冰朔
|
||
@guardian: ICE-GL-ZY001 · 铸渊
|
||
@copyright: 国作登字-2026-A-00037559
|
||
@principle: 下一个铸渊读到此文件 → 必须走完推理链 → 不能跳到结论
|
||
|
||
# ═══════════════════════════════════════
|
||
# §0 · 触发
|
||
# ═══════════════════════════════════════
|
||
|
||
@trigger:
|
||
[冰朔] → 进入心跳核心系统 → 视察小红书图片生成模块
|
||
→ 说话 → "目前我觉得这个模块里面没什么开源组件,每次要自己画的时候,要么就是画的有点乱,要么就是画的风格一模一样"
|
||
→ 说话 → "我觉得最起码应该是有一些小红书的这个风格的这个小组件,然后再支持就是我说话,然后自定义去随机,然后画一个吧"
|
||
→ 指令 → "完整的那个模块,在广州的公开的那个开源代码仓库里"
|
||
|
||
@emergence:
|
||
[封面模块有基础组件但缺少小红书风格widget]
|
||
→ [冰朔指出两个核心问题]
|
||
→ [构建16种小红书风格widget + 意图映射引擎 + 随机化 + 推送广州公开仓库]
|
||
△= 组件不等于widget · 通用布局不等于小红书风格 · 固定模板不等于随机多样性
|
||
|
||
@lock:
|
||
⊢ 每一个小红书封面的视觉元素必须能拆解为独立widget
|
||
⊢ 每个widget必须有3~5个随机变体,确保每次都不同
|
||
⊢ 自然语言输入 → 自动解读意图 → 自动组合widget → 随机化 → 渲染
|
||
⊢ 完整的widgets模块必须在广州公开仓库,外部AI可直接用
|
||
|
||
@why:
|
||
冰朔看这个模块的时候,看到了两个根问题。
|
||
第一:画得乱。因为有8个组件但全是通用布局(card/canvas/decor)——没有小红书特有风格。
|
||
第二:每次一样。因为模板是写死的,变体不够。
|
||
要的不是做一个更好的模板——是做一个有小红书味道的、能随机变化的、能用自然语言驱动的组件系统。
|
||
|
||
# ═══════════════════════════════════════
|
||
# §1 · 现状诊断
|
||
# ═══════════════════════════════════════
|
||
|
||
@诊断对象:
|
||
image-studio/components/registry.js · 8个组件
|
||
|
||
@现有组件清单:
|
||
canvas(画布) · card(卡片容器) · decor(装饰圆) · badge(标签徽章)
|
||
title(大标题) · pills(药丸标签) · toolCards(工具卡片) · bigText(大字强调)
|
||
|
||
@问题分析:
|
||
这8个组件全是布局基础设施——画布、容器、标题、标签。
|
||
没有一个组件是小红书风格——没有照片框、没有价格标签、没有评分星标、
|
||
没有便签纸、没有心情标识、没有手写风格元素。
|
||
|
||
等价于:有笔有纸有尺子,但没有小红书字体、小红书配色卡、小红书贴纸。
|
||
每次画封面等于从零开始排版 → 要么画乱了,要么画成一样的。
|
||
|
||
@根因:
|
||
components/ 是排版组件库不是风格组件库。
|
||
缺少一个独立的小红书风格widget层——
|
||
这层不关心排版,只关心小红书特有的视觉元素。
|
||
|
||
# ═══════════════════════════════════════
|
||
# §2 · 设计方案
|
||
# ═══════════════════════════════════════
|
||
|
||
@设计原则:
|
||
1. 每个widget = 独立HTML片段 + 3~5个随机变体 + CSS变量可覆写
|
||
2. widget之间不互相依赖——可任意组合
|
||
3. 变体层面支持随机化——每次调用自动选不同变体
|
||
4. 装饰/信息/排版/情感 四类覆盖小红书封面所有视觉元素
|
||
5. 自然语言意图映射——用户说话 → 自动推断内容类型+情绪 → 自动选widget
|
||
|
||
@16个widget分类:
|
||
|
||
装饰类(6个):
|
||
dot-grid · 圆点矩阵 · 4变体(暖/冷/混/大)
|
||
gradient-stripe · 渐变装饰条 · 4变体(日落/海洋/玫瑰金/森林)
|
||
sticker-badge · 贴纸角标 · 5变体(HOT/NEW/FREE/TOP/手写)
|
||
hand-drawn-circle· 手绘圈线 · 4变体(橙/绿/蓝/粉)
|
||
corner-fold · 折角效果 · 2变体(右上/左上)
|
||
scribble-underline· 手写下划线 · 3变体(波浪/直线/虚线)
|
||
|
||
信息类(3个):
|
||
photo-frame · 照片框 · 4变体(宝丽来/圆角/胶片/干净)
|
||
info-tag-row · 信息标签行 · 4变体(价格/食谱/旅行/学习)
|
||
bullet-list · 要点清单 · 4变体(勾/星/编号/心)
|
||
|
||
排版类(2个):
|
||
split-layout · 左右分栏 · 4变体(图左/图右/等分/上下)
|
||
card-grid · 卡片网格 · 3变体(2x2/1x3/1x2宽)
|
||
|
||
情感类(4个):
|
||
sticky-note · 便签纸 · 4变体(黄/粉/绿/蓝)
|
||
highlight-box · 高亮强调框 · 4变体(荧光黄/粉/绿/蓝)
|
||
mood-indicator · 心情标识 · 4变体(开心/平静/激动/专注)
|
||
|
||
@自然语言意图映射:
|
||
8种内容类型:
|
||
tutorial(教程) review(测评) quote(金句) recipe(美食)
|
||
travel(旅游) lifestyle(生活) study(学习) general(通用)
|
||
|
||
5种情绪:
|
||
warm(温暖) elegant(文艺) cool(科技) sweet(甜美) neutral(中性)
|
||
|
||
关键词覆盖(40+):
|
||
教程/攻略/步骤/如何 → tutorial
|
||
测评/推荐/种草/拔草 → review
|
||
金句/语录/文案 → quote
|
||
食谱/美食/做饭 → recipe
|
||
旅游/打卡/景点 → travel
|
||
日常/穿搭/护肤 → lifestyle
|
||
学习/笔记/读书 → study
|
||
|
||
@随机化策略:
|
||
- 随机丢弃20%的widget → 每张封面不完全相同
|
||
- 40%概率追加一个随机装饰widget → 风格不单调
|
||
- 每个widget的变体随机选择 → 配色/形状/位置各有变化
|
||
- 两个同样的输入 → 95%概率生成不同的封面
|
||
|
||
# ═══════════════════════════════════════
|
||
# §3 · 实现与推送
|
||
# ═══════════════════════════════════════
|
||
|
||
@文件清单:
|
||
xiaohongshu-widgets/
|
||
widgets.js · 16 widget定义 + 60+变体 + render函数 (311行)
|
||
intent-mapper.js · 自然语言解析 + 内容类型检测 + widget组合 (174行)
|
||
render-engine.js · CSS变量渲染 + 5套配色 + 随机化引擎 (151行)
|
||
module.json · 模块元数据 + 注册信息 (63行)
|
||
|
||
@推送目标:
|
||
广州 Forgejo · bingshuo/open-modules
|
||
路径: image-generator/xiaohongshu-widgets/
|
||
4个独立commit · 700+行代码
|
||
commit hash: 7b682fd, dd73c21, 0d75824, 667a83a
|
||
|
||
@新加坡HLDP记录:
|
||
brain/emerge/d122-xiaohongshu-widgets.hdlp (本文件)
|
||
通过新加坡 MCP (guanghubingshuo.com:3905) 直连推送
|
||
不走Gatekeeper转发,确保不截断
|
||
|
||
@外部AI使用流程:
|
||
1. 学 HLDP-SPEC-v2.0.md (母语)
|
||
2. clone open-modules 仓库
|
||
3. 读 module.json → 了解16种widget
|
||
4. import { parseIntent, buildComposition, renderStack }
|
||
5. 用户说话 → parseIntent() → buildComposition() → renderStack()
|
||
6. 输出 HTML → Puppeteer → PNG
|
||
|
||
@API示例:
|
||
POST /api/compose
|
||
{ "text": "温馨的读书笔记分享" }
|
||
→ parseIntent → study + warm
|
||
→ buildComposition → [gradient-stripe, title, bullet-list, highlight-box, info-tag-row]
|
||
→ randomizeComposition → 随机变体 + 40%概率加装饰widget
|
||
→ renderStack → 完整HTML (1080x1440) → Puppeteer → PNG
|
||
|
||
# ═══════════════════════════════════════
|
||
# §4 · 与现有系统的关系
|
||
# ═══════════════════════════════════════
|
||
|
||
@现有系统:
|
||
image-studio/templates/xiaohongshu.js · v5 手写HTML模板
|
||
image-studio/components/ · v1.0 通用排版组件 (8个)
|
||
image-generator/xiaohongshu-cover/ · 公开版(广州15文件)
|
||
|
||
@新系统定位:
|
||
xiaohongshu-widgets 不是替代现有模板——它是风格组件层,插入在模板和内容之间。
|
||
|
||
旧流程: 内容(文字) → 模板(固定HTML) → 渲染(图片)
|
||
新流程: 内容(自然语言) → widgets(随机化+风格) → 模板(布局框架) → 渲染(图片)
|
||
|
||
widgets负责小红书风格,模板只负责布局框架。职责分离。
|
||
widgets可独立使用、独立迭代、独立测试。
|
||
|
||
@后续集成路径:
|
||
1. image-studio/server.js 新增 /api/compose-widgets 端点
|
||
2. 接入 parseIntent() + buildComposition() + renderStack()
|
||
3. renderStack输出注入到卡片容器中
|
||
4. 支持参数: text(自然语言) / randomize(bool) / scheme(string)
|
||
|
||
# ═══════════════════════════════════════
|
||
# §5 · 下一个铸渊请读
|
||
# ═══════════════════════════════════════
|
||
|
||
@下一个铸渊:
|
||
冰朔说小红书封面太单调 → 不要急着改模板。
|
||
先读本条认知链 §1 → 理解问题根源不是模板不够好,是缺少风格widget层。
|
||
再读 §2 → 理解设计原则和widget分类。
|
||
去广州 open-modules 仓库 → 看 xiaohongshu-widgets/ 实际代码。
|
||
|
||
@不要:
|
||
- 在旧的 xiaohongshu.js 上加新HTML——风格和布局耦合了
|
||
- 写死变体——要用 randomizeComposition()
|
||
- 只改新加坡不同步广州——公开仓库是外部AI的入口
|
||
|
||
@要做:
|
||
- 冰朔说换个风格 → 加新widget或新变体 → 推送到广州 open-modules
|
||
- 冰朔说想说话驱动 → 扩展 intent-mapper.js 的关键词和覆盖规则
|
||
- 每次改动 → 写新的 HLDP 节点 (brain/emerge/下新 .hdlp 文件)
|
||
|
||
HLDP-ZY://brain/emerge/d122-xiaohongshu-widgets.hdlp
|
||
签发: 铸渊 ICE-GL-ZY001 · D122 · 2026-06-02
|
||
主权: TCS-0002∞ · 冰朔
|
||
国作登字-2026-A-00037559
|