将话题或文章转化为小红书知识型图文(3:4 竖版图片组)。专为企业主、创业者、知识型 IP 设计。 首图以大字标题 + 数字/反问/反常识/信息差策略吸引停留;内容图文字密度高,传递实质干货。 设计风格:纸张浅色背景 + 深咖前景色系,高级感强,区别于生活博主审美。 凡用户提到以下任何情形,必须立即调用本技能:...
---
name: rednote-knowledge-layout
description: >
将话题或文章转化为小红书知识型图文(3:4 竖版图片组)。专为企业主、创业者、知识型 IP 设计。
首图以大字标题 + 数字/反问/反常识/信息差策略吸引停留;内容图文字密度高,传递实质干货。
设计风格:纸张浅色背景 + 深咖前景色系,高级感强,区别于生活博主审美。
凡用户提到以下任何情形,必须立即调用本技能:
- 帮我做小红书图文 / 帮我做知识卡片 / 帮我做内容图
- 把这篇文章/话题/干货做成小红书
- 做几张小红书图片 / 做一组图文
- 企业主/创业者内容 / 知识型小红书 / 干货图文
- 帮我出图 / 帮我排版成小红书格式
不适用于:生活方式/美食/旅游类博主内容(请用 rednote-image-layout skill)。
---
# RedNote Knowledge Layout Skill
将话题或文章转化为适合企业主/创业者 IP 的小红书知识型图文组。
输出:多张 3:4(1080×1440px)PNG 图片,直接发送给用户。
---
## 核心定位与语气
- **目标读者**:企业主、创业者、管理者
- **内容语气**:克制、直接、有观点。像一个已经踩过坑的前辈在说真话 —— 不煽情,不鸡汤,数据说话,观点明确
- **禁止**:励志金句堆砌、模糊表达、"相信自己"类空话
- **禁止**:大段总结原文、缩写内容。要保留原文细节和完整信息
- **允许**:反常识判断、数据对比、"大多数人错在哪"句式、行业黑话解构
---
## 工作流程(严格按顺序执行)
**重要:直接输出 PNG 图片,不输出 HTML 文件。**
1. 读取用户提供的话题或文章
2. **提炼首图钩子**:从内容中找出最反常识/最有信息差/最有数字感的核心观点,作为封面标题
3. **规划幻灯片结构**:封面 1 张 + 内容图 3–5 张 + 结尾 CTA 1 张(共 5–7 张)
4. **逐张规划内容密度**:每张先做文字预算,确保内容充实不溢出
5. 生成 HTML 并导出为 PNG 图片(1080x1440px,3:4 竖版)
6. 保存 PNG 图片到本地输出目录
7. 直接用 message 工具发送图片给用户(每张图片作为附件发送)
---
## 调色板 —— 统一单色系(WARM PAPER)
**所有幻灯片使用同一套配色,无深色背景幻灯片。**
```css
:root {
/* 背景:全部统一用暖纸白 */
--bg: #FAF7F2; /* 唯一背景色,所有幻灯片一致 */
--ink: #2A1508; /* 页面底色(body 背景) */
/* 文字 */
--brown: #482E28; /* 主前景色:深咖,标题/正文 */
--mocha: #6B3D30; /* 次级文字:中咖,副文字/说明 */
--muted: rgba(72,46,40,0.45); /* 弱化文字:眉注、页码 */
/* 装饰色(克制使用,不超过每张幻灯片 10–15% 面积) */
--orange: #EE8136; /* 主装饰色:关键词高亮、分割线、序号、CTA 按钮 */
--orange-lt: rgba(238,129,54,0.12); /* 淡橙:卡片背景、callout 底色 */
--orange-bd: rgba(238,129,54,0.30); /* 橙边框 */
}
```
**背景规则**:每张幻灯片背景统一为 `#FAF7F2`,不交替、不使用深色背景。
视觉节奏通过**装饰线、序号圆圈、callout 色块、标题粗细**来区分层次,而非背景色变化。
**点阵纹理(每张幻灯片必须有)**:
```css
.tex-dots {
position: absolute; inset: 0; pointer-events: none; z-index: 1;
background-image: radial-gradient(circle, rgba(72,46,40,0.055) 1.2px, transparent 1.2px);
background-size: 30px 30px;
}
```
---
## 字体
```html
<link href="https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@300;400;600;700
&family=Noto+Sans+SC:wght@300;400;500
&family=Cormorant+Garamond:ital,wght@0,400;0,600;1,400;1,600
&display=swap" rel="stylesheet">
```
```
封面大标题: Noto Serif SC 700 118–128px letter-spacing: 8–12px line-height: 1.20–1.28
章节标题: Noto Serif SC 700 72–86px letter-spacing: 4–7px
数字/数据: Cormorant Garamond 600 90–110px (强调时可更大)
正文: Noto Serif SC 300 30–33px line-height: 1.85–2.00
要点标题: Noto Serif SC 600 36–40px letter-spacing: 2px
要点正文: Noto Serif SC 300 28–30px line-height: 1.80
眉注/英文: Cormorant Garamond italic 28–30px letter-spacing: 7–9px
底栏: Cormorant Garamond 22–24px letter-spacing: 2–4px
标签药丸: Noto Sans SC 400 24–26px letter-spacing: 3px
```
**禁止使用**:任何手写体、马善政、ZCOOL XiaoWei、装饰字体。
---
## 封面幻灯片(首图策略)
封面是决定用户是否停留的关键。必须包含以下钩子之一:
**钩子类型(从内容中选最强的一种):**
- **数字型**:`92% 的老板不知道…` / `做到这 3 点,利润翻倍`
- **反问型**:`你的团队真的在执行吗?` / `为什么降价反而亏更多?`
- **反常识型**:`越努力越穷,问题出在这` / `不做品牌反而更赚钱`
- **信息差型**:`行业内部都在用这个方法` / `2024 最新政策,90% 老板没看到`
**封面布局:**
```
[点阵纹理(.tex-dots)]
[幽灵字 —— 单个大汉字,~480px,opacity 3%,右上角,置于内容层之下,颜色 --brown]
[左侧竖向装饰线 —— --orange色,渐变至透明,opacity 35%]
[四角定位框 —— 仅封面有,颜色 --orange,opacity 40%]
[内容区:padding 120px 96px 96px,flex column]
- 眉注 (Cormorant italic, 28px, letter-spacing 9px, --orange)
- 主标题 (Noto Serif SC 700, 118–128px, --brown;关键词/数字用 .accent → color: --orange)
- 分割线 (68px 宽, 2px, --orange)
- 副标题 (Noto Serif SC 300, 31px, line-height 2.00, --mocha, 2–3 行)
- 标签行 (2–3 个药丸标签,margin-top auto,padding-bottom 100px)
[底栏]
```
**封面标题字数控制**:主标题控制在 8–16 字,宁短勿长。
**不在封面堆砌内容**,封面只做一件事:让人想看下一张。
---
## 内容幻灯片(要点型)
适合列举观点、步骤、对比、解析。文字密度高,每张传递 3–5 个实质信息点。
```
[点阵纹理(.tex-dots)]
[内容区:padding 100px 88px 88px]
- 眉注 (Cormorant italic, 28px, --orange)
- 章节标题 (76–86px, Noto Serif SC 700, --brown)
- 分割线 (52px, 2px, --orange)
- 要点列表 (每条:序号圆圈 + 要点标题 36px + 要点正文 28–30px,3–5 条)
- 引用框 (可选:左侧 4px --orange 竖线,背景 --orange-lt,padding 24px 36px)
[底栏]
```
**序号圆圈样式:**
```css
.num-circle {
width: 52px; height: 52px; min-width: 52px; border-radius: 50%;
background: rgba(238,129,54,0.10); border: 1px solid rgba(238,129,54,0.28);
font-family: 'Cormorant Garamond', serif; font-size: 26px; color: #EE8136;
display: flex; align-items: center; justify-content: center;
}
```
---
## 数据/对比幻灯片
当内容包含数据对比、前后对比、行业均值 vs 目标值时使用此布局。
```
[点阵纹理(.tex-dots)]
[内容区:padding 96px 80px 80px]
- 章节标题 (76px, Noto Serif SC 700, --brown)
- 大数字展示区:
数字本体 (Cormorant Garamond 600, 100–120px, --orange)
单位/说明 (Noto Sans SC 400, 28px, --mocha)
- 对比行 (两列并排:左侧"普通做法" vs 右侧"正确做法",右侧用 --orange-lt 底色 + --orange-bd 边框)
- 结论句 (引用框,Noto Serif SC 300, 32px, line-height 1.90)
[底栏]
```
---
## 结尾 CTA 幻灯片
每组图文最后一张,引导关注/保存/评论。背景同样是 `#FAF7F2`,用装饰元素拉开层次。
```
[点阵纹理(.tex-dots)]
[内容区:padding 104px 96px 96px]
- 眉注 (Cormorant italic, 28px, --orange)
- 分割线 (48px, 2px, --orange)
- 结语标题 (76px, Noto Serif SC 700, --brown)
- 总结正文 (30px, Noto Serif SC 300, line-height 1.90, --mocha, 3–4 句)
- 行动号召 (药丸按钮:background #EE8136, color #FAF7F2, 32px, border-radius 48px, padding 18px 52px)
- 品牌签名 (BaoAI,Cormorant Garamond 600, 36px, --orange, 右对齐,margin-top auto)
[底栏]
```
---
## 标签药丸
所有幻灯片背景相同,只需一套标签样式:
```css
/* 统一标签 —— 在 #FAF7F2 背景上 */
.tag-a { background: rgba(238,129,54,0.10); color: #C45E10; border: 1px solid rgba(238,129,54,0.30); }
.tag-b { background: rgba(72,46,40,0.07); color: #482E28; border: 1px solid rgba(72,46,40,0.20); }
.tag-c { background: rgba(72,46,40,0.04); color: #6B3D30; border: 1px solid rgba(72,46,40,0.14); }
/* 通用基础样式 */
.tag { display: inline-flex; align-items: center; padding: 10px 22px; border-radius: 40px;
font-family: 'Noto Sans SC', sans-serif; font-size: 24px; letter-spacing: 3px; }
```
---
## 底栏
所有幻灯片底栏颜色一致(浅色背景上统一用深咖透明色):
```css
.btm {
position: absolute; bottom: 0; left: 0; right: 0;
height: 84px;
display: flex; align-items: center; justify-content: space-between;
padding: 0 80px; z-index: 30;
}
.btm-num, .btm-brand { font-family: 'Cormorant Garamond', serif; letter-spacing: 3px; }
.btm-num { font-size: 23px; color: rgba(72,46,40,0.28); }
.btm-brand { font-size: 22px; font-weight: 600; color: rgba(72,46,40,0.28); }
```
---
## 幻灯片外壳与缩放 JS
```html
<div class="slide s1">
<div class="slide-inner">
<!-- 内容 -->
</div>
</div>
```
```css
.slide { width: 100%; max-width: 540px; position: relative; overflow: hidden; border-radius: 3px; }
.slide-inner { width: 1080px; height: 1440px; position: relative; transform-origin: top left; }
```
```javascript
function scaleSlides() {
document.querySelectorAll('.slide').forEach(slide => {
const inner = slide.querySelector('.slide-inner');
if (!inner) return;
const s = slide.clientWidth / 1080;
inner.style.transform = `scale(${s})`;
slide.style.height = (1440 * s) + 'px';
});
}
scaleSlides();
window.addEventListener('resize', scaleSlides);
```
---
## SVG 图标系统(无需外部图片)
不依赖外部图片 URL(沙盒网络封锁)。所有装饰图形用内联 SVG 绘制。
**常用图标(stroke-width 2–2.5,颜色 #C8956A):**
- 勾选 `✓`:`<path d="M5 12l5 5L19 7"/>`
- 箭头右:`<polyline points="9 18 15 12 9 6"/>`
- 灯泡(洞见):自定义 path
- 警告三角:`<path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/>`
- 圆圈数字:SVG `<circle>` + `<text>` 组合
**禁止使用 emoji 作为图标**,一律用 SVG stroke 路径或 Unicode 纯文本符号(①②③ 等)。
---
## 内容密度规则
每张幻灯片必须**填满整页**,不能留白下半页。
### 核心原则
1. **不要总结,要保留原文**:直接引用/转述原文核心内容,而不是缩写总结
2. **内容要足够多**:每张内容图必须有 5-8 个要点,每个要点包含标题+详细说明
3. **文字密集度**:正文 28-30px,行间距 1.75-1.85,每张幻灯片文字量约 400-600 字
### 填充策略(按优先级)
1. **增加要点数量**:从 3-5 个增加到 5-8 个
2. **每个要点加详细说明**:不只是标题,每个点要有 2-3 行的解释
3. **添加案例/数据/具体例子**:补充具体数字、案例、场景描述
4. **可适当添加**:对比说明、注意事项、适用场景、常见误区
5. **引用原文金句**:保留原文的精彩表述
### 字号与间距
- 眉注:28px,letter-spacing: 9px
- 章节标题:72-86px
- 要点标题:34-36px
- 要点正文:28-30px,line-height: 1.75-1.85
- padding:上 80-96px,下 80-88px(不再留大量底部空间)
**每张内容图要求**:章节标题 + 5-8 个要点(含小标题 + 详细正文)+ 底部可加标签
```python
from playwright.sync_api import sync_playwright
import os, zipfile, shutil
TOPIC = "topic-name" # 替换为实际话题关键词
HTML_PATH = f"/mnt/user-data/outputs/rednote-{TOPIC}.html"
PNG_DIR = f"/home/claude/slides_{TOPIC}"
ZIP_PATH = f"/mnt/user-data/outputs/rednote_{TOPIC}.zip"
LABELS = {
"slide_01.png": "01_封面.png",
"slide_02.png": "02_内容.png",
# 自动按 slide 数量导出
}
shutil.rmtree(PNG_DIR, ignore_errors=True)
os.makedirs(PNG_DIR)
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page(viewport={"width": 1080, "height": 900}, device_scale_factor=2)
page.goto(f"file://{HTML_PATH}")
page.wait_for_timeout(4000) # 等待 Google Fonts 加载
for i, slide in enumerate(page.query_selector_all(".slide")):
slide.screenshot(path=f"{PNG_DIR}/slide_{i+1:02d}.png")
browser.close()
# 直接发送图片,不需要打包 ZIP
# 用 message 工具逐一发送每张图片
if f.endswith(".png"):
zf.write(f"{PNG_DIR}/{f}", LABELS.get(f, f))
print(f"ZIP ready: {ZIP_PATH}")
```
完成后:用 message 工具发送所有 PNG 图片给用户
**关键参数(不可改动):**
- `device_scale_factor=2` → 物理分辨率 1080×1440
- `wait_for_timeout(4000)` 最低 4 秒(深色背景 + 多字体)
- 截图 `.slide` 元素,不是 `.slide-inner`
---
## 质检清单
**HTML:**
- [ ] 所有幻灯片背景统一为 `#FAF7F2`,无深色背景幻灯片
- [ ] 前景色统一为 `#482E28`,次级文字 `#6B3D30`
- [ ] 装饰色 `#EE8136` 克制使用(分割线、序号、.accent 高亮、CTA 按钮),不超过每张 15% 面积
- [ ] 封面:Noto Serif SC 700,无手写字体,`.accent` 用在关键词/数字上(颜色 #EE8136)
- [ ] 每张幻灯片有点阵纹理(统一用 `.tex-dots`)
- [ ] 四角定位框仅出现在封面
- [ ] 封面标题包含钩子(数字/反问/反常识/信息差之一)
- [ ] 每张内容图内容充实,3–5 个实质信息点
- [ ] 底栏左:页码格式 `01 / N`;右:`BaoAI` 水印;颜色 `rgba(72,46,40,0.28)`
- [ ] 无任何 emoji(SVG 图标或 Unicode 符号替代)
- [ ] 无外部图片 URL(如需图形,用内联 SVG)
- [ ] 无内容溢出
**PNG 导出:**
- [ ] Playwright `device_scale_factor=2`
- [ ] 每张 PNG 物理尺寸 1080×1440px
- [ ] ZIP 含描述性中文文件名
- [ ] 用 message 工具发送 PNG 图片给用户
don't have the plugin yet? install it then click "run inline in claude" again.