# Xiaohongshu Card

> 小红书图文一站式生产 skill：既能跨平台检索合成生物学/分子生物学干货（微信公众号/B站/知乎/丁香园/公司官网等），输出对话清单或 HTML 干货周报；也能把一篇科普文章提炼成小红书卡片组（1080×1440 多图 JPG）。触发词：小红书卡片、小红书图文、科普卡片、文章做成卡片、卡片设计、做成小红书、图文卡片、知识卡片、文章转卡片、卡片组、干货检索、干货周报、干货清单、HTML干货周报、干货分享周报、公众号干货、B站找教程、知乎找干货、多平台找干货、synbio digest、digest weekly 等。本技能为升级版（制卡 xiaohongshu-card 与搜索 wechat-synbio-digest 合并而来）：搜索是上游能力，制卡是下游能力，一条龙覆盖「搜集→筛选→分组清单→HTML干货周报→小红书卡片组」。注意与 molecular-biology-weekly（分子生物学新闻/资讯周报）严格区分——那个收行业技术资讯与最新研究突破，本技能只收可收藏可复用的纯干货、只产图文卡片。包含原文配图解密（搜狐 AES）、20 种设计风格（启动随机选择）、程序化校验、JPG 导出的完整工作流。

- Skill: `flyanx/xiaohongshu-card` (Agent Skill)
- Install (CLI): `npx skillmds@latest add flyanx/xiaohongshu-card`
- Raw SKILL.md: https://api.skillmd.com/api/skills/flyanx/xiaohongshu-card/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Author: flyanx (https://skillmd.com/u/flyanx)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/flyanx/xiaohongshu-card

---


# 小红书卡片生成器 + 干货检索 (xiaohongshu-card)

> 本技能为 **制卡能力（原 xiaohongshu-card）＋ 搜索能力（原 wechat-synbio-digest）合并的全能版**。
> 两条能力链：**A. 干货检索/周报**（上游：搜→筛→分组清单→HTML 周报）→ 用户选中文章后走 **B. 小红书制卡**（下游：提炼→配图→渲染→校验→JPG）。
> ⚠️ **与 molecular-biology-weekly（新闻/资讯周报）的边界**：见下方专节，务必不要混用。

---

## 概述

本 skill 的两大用途：

| 用途 | 输入 | 产出 |
|---|---|---|
| **A. 干货检索** | 主题/方向（合成生物学·分子生物学） | 对话内分组清单（默认）或 HTML 干货周报文件 |
| **B. 小红书制卡** | 一篇科普文章 URL（公众号/搜狐号等） | 一整套小红书图文卡片（1080×1440 JPG 多图） |

也可无缝衔接：先跑 A 找到好文章 → 用户点名某篇 → 跑 B 把它做成卡片。

内容口径（A 部分）为**可收藏、可复用、可转发**的纯干货——知识科普、实验技巧、工具教程、方法学讲解。排除行业动态（融资/并购/展会/会议/政策/市场）、广告营销、最新研究突破/资讯报道。

---

## 触发条件

出现以下意图时触发（不限微信）：

**A. 搜索/周报类**：
- "搜一下最近有什么干货" / "干货周报" / "找几篇好文"
- "找讲质粒构建/CRISPR/测序的干货"（未指定平台）
- "B站有没有讲 XX 的教程视频" / "知乎上关于 XX 的深度文章"
- "做一期干货周报 HTML" / "把这几条整理成周报页面"
- 明确表达"搜索公众号/微信生态"的意图

**B. 制卡类**：
- "把这篇做成小红书" / "小红书卡片" / "科普卡片" / "文章转卡片组"

**衔接类**：先搜索再点名"这篇做成卡片"。

---

## ⚠️ 与 molecular-biology-weekly（新闻/资讯周报）的边界

| 维度 | **本技能（干货+卡片）** | molecular-biology-weekly（新闻周报） |
|---|---|---|
| 定位 | 知识科普/实验技巧/工具/方法学教程 + 图文卡片 | 行业技术资讯、最新研究突破、技术动态 |
| 典型条目 | "同源重组避坑干货手册""无缝克隆试剂盒使用量化细节" | "新型 Cas12f 变体实现高效基因编辑""本周 Nature 发表 XX" |
| 来源 | 中文平台为主（公众号/B站/知乎/丁香园/官网专栏…） | 中英文并重（Nature/Science/生物谷…） |
| 时效 | 常青教程亦收（日期未知照录） | 仅最近 7 天，过期即弃 |
| 排除 | 行业动态/资讯/最新突破（不是干货） | 会议/展会/招聘/商业，但收录技术突破 |
| 产出 | 对话清单 + HTML（`synbio_digest_weekly_*.html`）+ 小红书 JPG 卡片 | HTML（`molecular_biology_weekly_*.html`） |

**铁律**：干货检索/制卡跑本技能；用户明确要"分子生物学最新进展/资讯/新闻周报"才跑 molecular-biology-weekly。HTML 同模板同风格，但内容口径与徽章标识不同，不可互替。

---

# PART A · 干货检索 / 干货周报

## A0. 平台生态与检索战术（核心方法论）

各平台对搜索引擎的暴露度差异极大，**打法完全不同**。执行前先对照下表选路：

| 平台 | 内容形态 | 检索战术 | 关键备注 |
|---|---|---|---|
| **微信公众号** | 图文干货密度最高 | 关键词 + `site:mp.weixin.qq.com`；定向公众号名搜索；搜狗微信渠道 | 原文索引率低、无公开 URL 常见 → 用搜狐号/头条/官网镜像补链接；日期常缺失标"日期未知" |
| **B站** | 视频实操演示、成套教学 | `site:bilibili.com` + 主题；定向 UP 主/官方号名搜索；配合 AV/BV 号 | 试剂商官方号（诺唯赞等）出品成套实验演示；生信 UP 主体系成熟 |
| **知乎** | 专栏深度长文、系统性连载 | 关键词 + `site:zhihu.com`；定向专栏/作者；正文常被论坛转载，可用镜像回源 | 知乎原文抓取受限时，通过转载全文定位链接；知乎专栏是很多公众号文章的首发地 |
| **丁香园/丁香通** | 论坛连载深度长文、protocol | `site:dxy.cn` + 主题；站内系列连载追踪 | bbs 帖质量高、可长期访问 |
| **公司官网技术专栏** | Protocol 级实操参数 | 公司名/产品关键词直接搜官网 | 参数最可落地（摩尔比、酶切条件等），正文稳定可抓 |
| **行业论坛**（蒲公英/iivd 等） | 聚合转载干货帖 | 主题词 + 论坛名 | 多为公众号/知乎全文镜像，可作链接与正文的稳定备源 |
| **Bohrium 科学百科**（深势科技） | 本科向 Feynman 式系统教学 | 主题词 + bohrium/scipedia | 稀缺中文系统级教学，深度远超科普 |
| **生信教学站**（生信技能树等） | 学习路线+教程库 | 关键词 + bio-info-trainee 等 | 适合"学习路径/教程汇总"检索 |
| **小红书/抖音/视频号** | 图文笔记/短视频 | ❌ 不建议 site: 检索 | 反爬极强，只能当选题灵感，不作为链接源；自然命中可收录 |

**首发与镜像关系**（去重关键）：不少创作者多平台同步（如"实验老司机"公众号/知乎/B站/抖音同发）。同内容多平台并存时——保留**正文可抓、信息最全、链接稳定**的一条，其余标注"同内容亦见于 XX"。

## A1. 内容范围（保留标准）

不限技术门类，只要与合成生物学/分子生物学相关且有干货价值：

| 类型 | 典型内容 |
|---|---|
| 知识科普 | 基础概念、技术原理、前沿技术解读 |
| 实验技巧 | 实验操作流程、构建方法、避坑指南、经验分享 |
| 工具介绍 | 软件、数据库、在线平台、生信工具、科研绘图工具 |
| 方法学教程 | 设计方法、分析流程、教学讲解（含视频教程） |

典型方向参考：质粒构建与载体设计、CRISPR/基因编辑（sgRNA文库、编辑器）、测序（全质粒测序、Nanopore、三代测序）、外泌体与 RNA 生物学、蛋白质工程与表达纯化、代谢工程、菌株工程、DNA 合成与组装（Golden Gate/Gibson/无缝克隆）、生物传感器、高通量筛选、BioCAD、生信分析（转录组/单细胞/变异检测）、科研绘图。

## A2. 明确排除（不要收录）

- **行业动态**：融资、并购、展会、会议、政策法规、市场分析
- **纯广告营销**：只有产品促销信息、无实质知识内容（含搜索结果中的公司推广尾页）
- **最新研究突破/资讯报道**（那是 molecular-biology-weekly 的口径，本技能不收）
- 与合成生物学/分子生物学无关的内容
- 纯高中/入门基础网课（除非用户点名要基础教学）

## A3. 检索执行步骤

### 第 1 步：确定时间范围
获取当前日期。检索目标表述为"近期（近 1-2 周优先，常青教程不限）"，关键词携带时间倾向；无法确证日期时如实标"日期未知"，不编造。

### 第 2 步：分平台铺开搜索（每轮 ≤4 个并行 WebSearch）
按主题分多组关键词，**刻意混合平台维度**，至少覆盖 3 个不同平台形态。示例轮次：
- 轮 A（质粒/克隆）：`质粒构建 同源重组 步骤 避坑`、`site:mp.weixin.qq.com 载体构建`、`site:bilibili.com 分子克隆 实验`、`site:dxy.cn 质粒构建 重组`
- 轮 B（CRISPR）：`CRISPR sgRNA文库 教程`、`site:bilibili.com CRISPR 实验`、`知乎 基因编辑 深度`、`CRISPR 文库筛选 覆盖度 均一性`
- 轮 C（测序/生信）：`Nanopore 全长质粒测序 原理`、`生信技能树 单细胞 学习路线`、`site:zhihu.com 转录组 教程`、`Bohrium 科学百科 同源重组`
- 轮 D（工具/泛词兜底）：`科研绘图 软件 教程 合集`、`合成生物学 干货 教程 平台`、英文辅词交叉检索、已知高价值创作者名+主题

平台/创作者/栏目清单见 `references/sources.md`，可直接取用其来源名做定向检索。

### 第 3 步：回源定位可访问链接
上一步命中"无链接摘要页"时，单独回源检索定位可点开的 URL（标题/作者/公众号名 + 站点特征词）。
- 微信原文找不到 → 找搜狐号/头条/公司官网/论坛镜像（正文完整即可，如实标注渠道）
- 只命中正文全展示的图文页 → 回源找其独立文章页

### 第 4 步：抓取正文
对找到的文章/页面尽量 WebFetch 抓正文，提取：标题、来源平台与账号名、日期、要点摘要（3-5 句）。
**抓取限制处理**：个别平台正文受风控抓不到时，保留标题+来源+链接并标注"正文未抓取"，不得丢弃。

### 第 5 步：筛选
按排除标准逐条过滤，保留有知识分享价值的干货。拿不准的宁可保留并在摘要注明，不误杀。
**平台证据意识**：搜索结果常混入公司推广页，注意看 URL 与内容——纯产品页剔除，技术专栏保留。
**口径把关**：把"最新研究突破/资讯报道"类条目转投 molecular-biology-weekly 口径，不收入本技能干货清单。

### 第 6 步：去重与首发优先
- 同一内容命中多平台（公众号原文/知乎/搜狐镜像/论坛转载）→ 保留正文可抓、信息最全、链接稳定者，其余合并标注"同内容亦见于 XX"
- 创作者多平台同步矩阵（如实验老司机 exdrive）→ 取能打开者，不必逐平台重复收录

### 第 7 步：对话内汇总输出（默认产出）
**直接回复中输出**（不生成文件），结构：
1. 按主题分组的条目清单，每条含：**标题、来源平台（公众号名/UP主/专栏名）、日期、要点摘要、原文链接**
2. 末尾"本次最值得读的 1-2 篇"+ 一句话理由

特殊情况：
- 当周未找到新内容 → 明确说明"本周未发现新增相关文章"
- 找到的以常青教程为主（非近期）→ 正常收录并在日期处标注"常青教程/日期未知"

### 第 8 步：生成 HTML 干货周报（可选，用户要"周报/分享/导出"或自动化定时时默认执行）
1. 将第 7 步清单整理为 JSON（字段见 `scripts/generate_report.py` docstring：title/date_range/items，item 含 category/category_key/date/title/summary/source/url），写入临时文件
2. 执行：
```bash
python <skill>/scripts/generate_report.py <临时data.json> <输出.html>
```
Python 用 `C:\Users\89337\.workbuddy\binaries\python\versions\3.13.12\python.exe`；`<skill>` 即本技能目录
`C:\Users\89337\.workbuddy\skills\xiaohongshu-card`
3. 输出文件名：`synbio_digest_weekly_YYYY-MM-DD.html`（保存到当前工作目录），用 present_files 展示
4. 回复说明：本期条数、覆盖主题、与上期相比的变化

**JSON 注意事项**：字符串值禁用中文引号（会被转义导致解析失败），引用术语用《》或不加引号。

---

# PART B · 小红书制卡

## B1. 产出规格（固定）

| 项 | 标准 |
|---|---|
| 卡片尺寸 | 1080 × 1440（3:4，小红书推荐比例） |
| 导出格式 | **JPG quality 95**，按语义命名（`01-封面.jpg`、`02-五步概览.jpg`…`10-封底.jpg`） |
| 交付物 | 仅 JPG；HTML 只作内部工作文件（保留在项目目录便于改版重导出） |
| 移动端字号 | 正文 29-30px / 大标题 60-92px / 步骤标题 40px / 参数数值 46px / 图注 20px（1080 宽下，手机端缩小后仍清晰） |

## B2. 页面结构（固定模板 + 步骤数自适应）

```
封面 → 概览 → STEP 步骤页（每步一页，STEP 0N/总步数）→ 避坑 → FAQ → 封底
```

- **封面**：纯文字居中构图（标签行 + 副标题 + 大标题 + 副标题2），设计性留白
- **概览**：三大优势格 + 一句话原理 + 五步目录（STEP 编号 + 名称 + 一句话摘要）
- **步骤页**：顶部红色「STEP 0N / 05」标识 + 步骤名大标题 + 内容块（要点/流程列表/参数卡）+ 原文配图
- **避坑页**：关键提醒大字化（每条一行 ◆）
- **FAQ 页**：常见问题大字卡片，4 条左右（不足可从原文其他段落提炼，不得编造）
- **封底**：FIN → 感谢阅读 / 感谢关注 → 品牌 LOGO → ＋ 关注 → 「品牌 · 更多干货在路上」（内容从品牌配置读取）
- 步骤数 ≠ 5 时自适应（总步数跟随）；配图/内容拥挤时**拆页**（每页 1-2 个信息块最从容）

## B3. 配图策略（原文图优先）

1. **原文图优先**：抓取原文配图，并核对每张图在原文中的位置，确保与正文一一对应（不对应就挪页或向用户说明）
2. **搜狐 AES 解密**：搜狐文章图片 data-src 是 AES-ECB-PKCS7 加密，密钥 `www.sohu.com6666`。用 `scripts/decrypt-sohu.py` 解密出 `//qX.itc.cn/...` 真实 URL，下载时带 Referer（文章页 URL）+ 浏览器 UA 防防盗链
3. **原文确实无图**：才允许 AI 生成示意图替代——白底、单主色系（可跨风格通用），且必须向用户标注「此图为 AI 生成」
4. **横幅截图式图**（如 1080×289）：用固定高度 `.fig` 容器 + `object-fit: contain`；多图上下叠（`.fig-col`）/ 并排（`.fig-row`）

## B4. 质量校验（强制，交付前必做）

用 `scripts/verify.js`（playwright）程序化检查，**不达标自动迭代调整字号/间距/图高**：

- 内容页填充率 **80-100%**（空位 ≤ 20%，页面不能太空）
- **无溢出**（内容最深元素 bottom ≤ 卡高）
- **图片全部加载成功**（naturalWidth > 0）
- 封面/封底为设计性留白页，豁免填充率校验

## B5. 风格体系（20 种内置，默认启动时随机选择）

模板使用 **CSS 变量主题系统**：组件一套样式基于 `var(--bg/--ink/--accent/--line/--radius/--pad/--font)`，每种风格 = 一组变量 + 布局签名 override（部分风格有真正的布局差异：时间轴、分屏、卡片堆叠、横线手账等）。切换风格：`?style=xxx` URL 参数；查看全部风格对比：`?all-styles`。

### 风格选择规则（每次启动随机，避免重复）

1. 生成卡片组前，从 20 种风格中**随机选择**一个
2. 读取本 skill 目录下的 `.last-style` 记录文件（存上次使用的风格 id）：
   - 记录**不存在**（首次使用）→ 从 20 种中纯随机
   - 记录**存在** → 从剩余 19 种中随机（保证连续两次不重复）
3. 选中后把风格 id 写入 `.last-style`（bash：`echo <id> > ~/.workbuddy/skills/xiaohongshu-card/.last-style`）
4. 生成 HTML 时用选中风格渲染（模板 `?style=<id>` 参数，或直接改模板默认风格）
5. 用户对随机结果不满意时可指定风格（`用 XX 风格`），此时不更新 `.last-style`（下次仍随机）

### 风格清单（前 10 种为配色主题，后 10 种为布局级差异）

| # | 风格 id | 名称 | 视觉签名 |
|---|---|---|---|
| 1 | `pentagram` | 理性实验手册 | 白底黑字 + 红 #E63946、瑞士网格、斜体大编号 |
| 2 | `build` | 高级留白 | 米白 + 暖金 #D4A574、金线 |
| 3 | `takram` | 柔和科普 | 米色 + 自然绿 #7a8a72、圆角柔影 |
| 4 | `muller` | 瑞士海报 | 纯黑白 900 粗体、严格网格 |
| 5 | `fathom` | 科研数据 | 浅蓝灰底 + 橙 #E76F51、等宽数字 |
| 6 | `ia` | 内容优先 | 纯白 + 单蓝 #3B6EA5、药丸标签 |
| 7 | `sagmeister` | 活力撞色 | 米黄底 + 红蓝撞色、圆润 |
| 8 | `hara` | 日式空寂 | 纸色 + 朱红印章、大留白 |
| 9 | `jetset` | 海报宣言 | 纯黑大粗字居中、黄仅作高亮底 |
| 10 | `boom` | 书籍版式 | 衬线、装订线左栏、深棕墨 |
| 11 | `dashboard` | 数据大屏 | **暗色底 + 网格线 + 参数模块发光** |
| 12 | `notebook` | 手账便签 | **横线纸底 + 楷体 + 胶带便签块** |
| 13 | `magazine` | 杂志版式 | **衬线 + 首字下沉 + 双线分隔** |
| 14 | `minimal` | 单焦点 | **超大字 + 每页单焦点 + 极致留白** |
| 15 | `newspaper` | 报纸版式 | **旧纸色 + 双线栏 + 衬线头条** |
| 16 | `neon` | 霓虹灯 | **暗底 + 绿粉霓虹发光字** |
| 17 | `sketch` | 手绘草稿 | **手绘虚线边框 + 楷体涂鸦感** |
| 18 | `timeline` | 时间线 | **左侧圆点时间轴贯穿** |
| 19 | `cards` | 卡片堆叠 | **独立白卡片 + 角标 + 贴纸墙** |
| 20 | `split` | 分屏对比 · 昼夜对切 | **封面左右对半 + 标题 mix-blend-mode 跨中线呈现半白半黑 + 每个内容块本身是"左深右浅"小分屏 + 日月装饰** |

新增风格：在模板 CSS 加一个 `.t-xxx` 主题（变量 + 布局 override）并在 `STYLES` 数组注册即可。

## B6. 品牌配置

`assets/brand-config.example.json` 定义：品牌名、LOGO 路径、封底文案、默认风格。默认内置**艾基生物**配置（LOGO：`assets/logo-ige.png`）。其他品牌复制该文件改字段即可。

## B7. 红线（违反 = 返工）

- **去掉平台受限/冗余信息**：内容来源、点赞收藏 CTA、「左滑引导」等一律不出现
- **不编造内容**：所有信息来自原文；补充信息（如 FAQ）必须提炼自原文其他段落
- **配图必须与正文一一对应**：核对原文位置；原文无图就不放图（文字排版撑满）或标注 AI 生成
- **反 AI slop**：不用 emoji 装饰、不用紫色渐变、不用圆角+左彩边、不画 SVG 假图、不用系统默认字体当展示字体

## B8. 制卡工作流（10 步）

1. **抓取文章**：WebFetch/curl 取全文（标题、公众号、日期、正文、图片），保存 HTML 原文
2. **提炼精华**：按页面结构组织——概念/原理、步骤（含参数）、注意事项、FAQ
3. **抓配图**：解析原文图片（搜狐走 `scripts/decrypt-sohu.py`），下载并记录每张图在原文中的位置
4. **定页面结构**：封面/概览/STEP N 页/避坑/FAQ/封底，确定步骤数
5. **选风格**：按「B5 风格体系」的随机规则选风格（排除上次，首次纯随机），`echo <id> > ~/.workbuddy/skills/xiaohongshu-card/.last-style`
6. **生成 HTML**：复制 `assets/card-template.html`，把内容填入 JS 的 PAGES 数据数组（见模板注释），配图放项目 `imgs/` 目录，用选中风格渲染（`?style=<id>`）
7. **校验迭代**：playwright 打开 → 跑 `scripts/verify.js` → 按结果调整字号/间距/图高直到全 PASS
8. **导出 JPG**：改 `scripts/export-jpg.js` 的 NAMES 数组 → 运行导出（1080×1440 quality 95）
9. **用户确认**：展示全部卡片 → 按反馈微调（文案/配色/LOGO/封底/换风格）→ 重新导出
10. **交付**：列出 JPG 清单 + 发布提示（标题/话题标签参考）

---

## 资源说明

```
xiaohongshu-card/
├── SKILL.md                          # 本文件（全能版）
├── references/
│   └── sources.md                    # 多平台高价值来源清单（A 搜索用）
├── assets/
│   ├── card-template.html            # 小红书卡片模板（B 制卡用，含 20 风格）
│   ├── brand-config.example.json     # 品牌配置示例（默认艾基生物）
│   ├── logo-ige.png                  # 默认品牌 LOGO
│   └── report_template.html          # 干货周报 HTML 模板（A 周报用，含"纯干货·非资讯"徽章）
└── scripts/
    ├── generate_report.py            # 干货周报生成脚本（A）：python generate_report.py <in.json> <out.html>
    ├── decrypt-sohu.py               # 搜狐图片 AES 解密（B）
    ├── export-jpg.js                 # 卡片 JPG 导出（B）
    └── verify.js                     # 卡片质量校验（B，playwright）
```

## 交付偏好（重要）

- **A 默认**：对话内分组清单（快、不产文件）
- 用户提到"周报/HTML/导出/分享/整理成页面"或自动化每周触发 → **追加生成 HTML 干货周报文件**并 present_files
- 用户说"做卡片/做成小红书"或点名某篇文章 → **走 PART B 制卡流程**
- **语言**：中文输出；标题保留原文，摘要用中文要点
- **链接**：必须真实可访问；优先原文（mp.weixin/知乎/B站视频），镜像源如实标注"官网镜像/转载渠道"
- 若用户其实是想要"最新研究动态/资讯"，提示切换至 molecular-biology-weekly，不要在本技能硬收

## 环境依赖

- Node.js + playwright（制卡项目内 `npm i playwright`）
- Python3 + pycryptodome（仅搜狐解密用）；周报生成用系统 Python 即可

## 注意事项

- **平台检索难度差异大**：微信原文索引率低是常态，别在单一平台硬耗——铺开多平台后整体命中率反而高
- 日期无法确证标"日期未知"，不编造
- 小红书/抖音/视频号反爬，不做 site: 检索；不因个别平台失效而放弃该主题，换平台重试
- 摘要只提炼干货，剔除推广尾注
- 搜索结果混入的行业动态/广告坚决排除，即使搜索词命中
- **绝不把 molecular-biology-weekly 的最新资讯/研究突破收进本技能干货周报**（口径红线）
- 卡片制作红线见 B7，违反即返工

