用途
lovstudio-maintain-partners 用于维护 LovStudio 网站的合作伙伴板块,并让活动海报、头图条带中的合作伙伴 Logo 行在视觉高度上保持一致。
主要能力
- 新增一个或多个合作伙伴:收集 Logo、写入 PARTNERS 数组,并补充 zh-CN、en、ja、th 四种语言的标语。
- 规范化已有 Logo:处理尺寸不正确、白底白字等情况。
- 用用户提供的本地文件替换既有合作伙伴 Logo。
- 发布前审计合作伙伴板块:报告缺失的 Logo 文件、每种语言缺失的 i18n 键、失效 URL。
- 对齐一排合作伙伴 Logo:解决因源文件内部留白不同导致的可见高度不一致问题。
使用方式
配置解析优先级:网站根目录依次取 --repo、LOVESTUDIO_MAINTAIN_PARTNERS_SITE_ROOT、共享 profile JSON;PARTNERS TSX 文件依次取 --partners-file、LOVESTUDIO_MAINTAIN_PARTNERS_FILE、共享 profile 键、app/(main)/(home)/PartnersGrid.tsx,其次是旧版 app/(main)/(home)/WorkshopDispatch.tsx。
Logo 发现必须使用 lovstudio-find-logo,不得由本技能自行抓取首页或维护单独的回退爬虫。
新增合作伙伴典型流程:通过 lovstudio-find-logo 的 find_logo.py 收集 Logo,归档到 ~/.lovstudio/logo-collection/<slug>/logo.<ext>;视觉确认后将 SVG 栅格化;用 normalize_logo.py 规范化;用 add_partner.py 写入 PARTNERS 与四种语言 JSON。
规范化已有 Logo 或替换 Logo 均调用 normalize_logo.py(--invert auto),替换后需重新读取确认可见。
审计调用 audit_partners.py,加 --probe 可额外对每个 href 做 HTTP 检查(较慢,需代理)。
对齐 Logo 行:将每个 Logo 规范化为相同内容高度,海报等 retina 导出默认 240px;始终从原始源文件规范化,不要从已规范化的 80px 文件放大。SVG 需先用 rsvg-convert 栅格化;带内嵌背景色的 SVG 需先移除背景矩形,否则 brightness(0) invert(1) 会变成纯白块。推荐用固定尺寸盒子包裹每个 Logo,而非自适应宽度 flex。深色背景统一处理使用 .ps-logo { filter: brightness(0) invert(1) opacity(0.88); },已是白色透明 Logo 用 .ps-logo-original 退出反色。仅图标 SVG 可用 PIL 合成图标与品牌字标。
适用场景
用户要求新增合作伙伴(可带或不带 Logo URL)、规范化 Logo、用本地文件替换 Logo、发布前审计合作伙伴板块,以及对齐活动海报、头图、联办行列中的多个 Logo。
限制
Logo 发现完全依赖 lovstudio-find-logo 技能,若其无候选结果需停止并询问用户更好的官方或 press-kit URL,不得调用其他本地抓取器。沙箱子进程不继承系统代理,抓取 Logo 或探测 URL 前需导出代理环境变量。依赖 Pillow 与 librsvg(brew install librsvg)。分类选项为 compute / peer / invest / media / community,默认 community。未提供的功能、收费、价格或平台信息暂未提供。