@topmindspace/tms-skills 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.en.md +23 -13
  3. package/README.md +23 -13
  4. package/package.json +1 -1
  5. package/top-ppt-html/README.en.md +2 -2
  6. package/top-ppt-html/README.md +1 -1
  7. package/topmind-cover/README.en.md +20 -3
  8. package/topmind-cover/README.md +20 -3
  9. package/topmind-cover/SKILL.md +20 -1
  10. package/topmind-cover/assets/examples/README.md +17 -9
  11. package/topmind-cover/assets/examples/big-type-wechat.png +0 -0
  12. package/topmind-cover/assets/examples/big-type.png +0 -0
  13. package/topmind-cover/assets/examples/brand-launch-wechat.png +0 -0
  14. package/topmind-cover/assets/examples/brand-launch.png +0 -0
  15. package/topmind-cover/assets/examples/gan-huo-wechat.png +0 -0
  16. package/topmind-cover/assets/examples/gan-huo.png +0 -0
  17. package/topmind-cover/assets/examples/ip-fun-wechat.png +0 -0
  18. package/topmind-cover/assets/examples/ip-fun.png +0 -0
  19. package/topmind-cover/assets/examples/magazine-wechat.png +0 -0
  20. package/topmind-cover/assets/examples/magazine.png +0 -0
  21. package/topmind-cover/assets/examples/minimal-wechat.png +0 -0
  22. package/topmind-cover/assets/examples/minimal.png +0 -0
  23. package/topmind-cover/assets/examples/news-flash-wechat.png +0 -0
  24. package/topmind-cover/assets/examples/news-flash.png +0 -0
  25. package/topmind-cover/assets/examples/overview.png +0 -0
  26. package/topmind-cover/assets/examples/tutorial-steps-wechat.png +0 -0
  27. package/topmind-cover/assets/examples/tutorial-steps.png +0 -0
  28. package/topmind-cover/references/cover-styles.md +276 -123
  29. package/topmind-wechat-post/scripts/md2wechat.py +8 -1
  30. package/topmind-cover/assets/examples/big-poster-wechat.png +0 -0
  31. package/topmind-cover/assets/examples/big-poster.png +0 -0
  32. package/topmind-cover/assets/examples/cyber-glitch-wechat.png +0 -0
  33. package/topmind-cover/assets/examples/cyber-glitch.png +0 -0
  34. package/topmind-cover/assets/examples/guochao-wechat.png +0 -0
  35. package/topmind-cover/assets/examples/guochao.png +0 -0
  36. package/topmind-cover/assets/examples/tech-future-wechat.png +0 -0
  37. package/topmind-cover/assets/examples/tech-future.png +0 -0
package/CHANGELOG.md CHANGED
@@ -1,3 +1,30 @@
1
+ ## [0.3.1] - 2026-09-29
2
+
3
+ > 根包 0.3.0 → **0.3.1**(patch);4 个技能 `version` 保持不动(top-ppt-html 0.1.19,其余 0.1.0)。
4
+ > 整仓同 tag 发版,技能 `version` 独立演进(见 docs/PUBLISHING.md)。
5
+
6
+ ### topmind-cover:风格库按爆款封面重沉淀 + 样张重制
7
+
8
+ - `references/cover-styles.md` 按 7 张爆款参考封面 + Manus 实战封面重沉淀为 **8 种风格**:
9
+ 爆款干货(`gan-huo`)/ 巨字宣言(`big-type`)/ 品牌发布(`brand-launch`)/
10
+ 教程步骤(`tutorial-steps`)/ IP 趣味(`ip-fun`)/ 资讯快报(`news-flash`)/
11
+ 极简留白(`minimal`,保留)/ 杂志编辑(`magazine`,保留),
12
+ 每种含适用场景、构图公式、配色 hex、标题写法规范(4~8 字、数字/关键词彩色突出)、
13
+ 中英 prompt 配方、避坑;删除旧 6 风格。
14
+ - `assets/examples/` 样张全部重制:**16 张**(8 风格 × 1200×675 主图 + 900×383 公众号中央裁剪版)
15
+ + `overview.png`(8 宫格总览图),逐张目检(标题逐字准确、无乱码、中央 60% 安全区),
16
+ 7 次返工均为"底部元素超出安全区";旧 12 张移除。
17
+ - 提炼规律:标题字巨大化(占画面高 22%~45%)、左文右图通用分区、三层文字结构
18
+ (大标题 + 胶囊/笔刷副标题 + 底部标签条)、数字前置造冲击、背景极简浅色。
19
+ - 根 README(中/英)、cover README(中/英)、cover SKILL.md 嵌入总览图(GitHub 绝对 URL)
20
+ + 8 风格一行式索引;用法"6 选 1"→"8 选 1"。
21
+
22
+ ### bug 修复
23
+
24
+ - topmind-wechat-post `scripts/md2wechat.py`:本地图片文件缺失时未登记进"图片上传清单"
25
+ (用户按清单补图会漏传);现登记 `⚠ 本地文件缺失` 行并计入"图片 N 张"计数。
26
+ HTML 仍保留断链占位(设计选择),清单已标注。
27
+
1
28
  ## [0.3.0] - 2026-09-29
2
29
 
3
30
  > 根包 0.2.0 → **0.3.0**(minor,新功能);4 个技能 `version` 保持不动(top-ppt-html 0.1.19,其余 0.1.0)。
package/README.en.md CHANGED
@@ -37,12 +37,29 @@ npx @topmindspace/tms-skills install topmind-x-article
37
37
 
38
38
  ### topmind-cover · Cover art generation
39
39
 
40
- Shared cover art for X long-form and WeChat: striking, eye-catching, theme-focused. Built-in **6-style cover style library** (bold poster / futuristic tech / editorial magazine / minimalist / guochao illustration / cyber glitch art — each with use cases, hex palettes, font suggestions, Chinese+English prompt recipes) + **12 dual-size example images** (`assets/examples/`, shipped with the package): **pick a style → check the example → compose the prompt from the recipe**, then one-click crop to both platform sizes with `crop-cover.py` (X 1200×675, WeChat 900×383).
40
+ Shared cover art for X long-form and WeChat: striking, eye-catching, theme-focused. Built-in **8-style cover style library** (viral dry-goods / giant-type manifesto / brand launch / tutorial steps / fun IP / news flash / minimalist / editorial magazine — each with use cases, hex palettes, font suggestions, Chinese+English prompt recipes) + **17 dual-size example images** (`assets/examples/`, shipped with the package): **pick a style → check the example → compose the prompt from the recipe**, then one-click crop to both platform sizes with `crop-cover.py` (X 1200×675, WeChat 900×383).
41
41
 
42
42
  ```bash
43
43
  npx @topmindspace/tms-skills install topmind-cover
44
44
  ```
45
45
 
46
+ **Style gallery** (8-style overview; full-size per-style shots in `topmind-cover/assets/examples/<style>.png`, recipes in [`references/cover-styles.md`](./topmind-cover/references/cover-styles.md)):
47
+
48
+ <p align="center">
49
+ <img src="https://github.com/topmindspace/tms-skills/raw/main/topmind-cover/assets/examples/overview.png" alt="topmind-cover · 8 cover-style overview" width="960" />
50
+ </p>
51
+
52
+ | Style | Best for |
53
+ |-------|----------|
54
+ | Viral dry-goods `gan-huo` | Tested picks, reviews, roundups; default for first-person "I tried it all for you" posts |
55
+ | Giant-type manifesto `big-type` | Opinion pieces, deep essays, launch manifestos; default for one-sentence-stance pieces |
56
+ | Brand launch `brand-launch` | Product launches, version updates, official best practices / whitepapers; first choice when a brand is the subject |
57
+ | Tutorial steps `tutorial-steps` | Tutorials, onboarding guides, step-by-step walkthroughs, beginner-proof recipes |
58
+ | Fun IP `ip-fun` | Case studies, data recaps, retrospectives, series (part 1 / part 2) |
59
+ | News flash `news-flash` | News, flashes, hot-topic explainers, interview teasers, "myth-busting" angles |
60
+ | Minimal `minimal` | Essays, book reviews, light takes, lifestyle musings; WeChat "light reading" pieces |
61
+ | Editorial magazine `magazine` | In-depth interviews, profiles, business analysis, year-in-review; when "craft / trust" matters |
62
+
46
63
  > Let ideas fly — make good thinking visible.
47
64
 
48
65
  <p align="center">
@@ -101,22 +118,15 @@ See [top-ppt-html/README.md](./top-ppt-html/README.md#html-header-toolbar) and [
101
118
  | [`top-ppt-html`](./top-ppt-html/) | **0.1.19** | Formal business decks: paginated HTML + editable 16:9 PPTX; dual delivery · MD3-inspired density; 3 modes × 9 styles; strict 0/0 |
102
119
  | [`topmind-wechat-post`](./topmind-wechat-post/) | **0.1.0** | WeChat article lifecycle: package, review, 3 quality gates, inline typography & publish checklist |
103
120
  | [`topmind-x-article`](./topmind-x-article/) | **0.1.0** | X long-form one-click publish: Markdown → paste-ready plain text + cover + checklist |
104
- | [`topmind-cover`](./topmind-cover/) | **0.1.0** | Cover art for X / WeChat: striking, theme-focused; 6-style cover style library + 12 dual-size example images, size specs + crop tooling |
121
+ | [`topmind-cover`](./topmind-cover/) | **0.1.0** | Cover art for X / WeChat: striking, theme-focused; 8-style cover style library + 17 dual-size example images, size specs + crop tooling |
105
122
 
106
- Installer [`@topmindspace/tms-skills`](https://www.npmjs.com/package/@topmindspace/tms-skills) is **0.3.0** (whole-repo same-tag releases).
123
+ Installer [`@topmindspace/tms-skills`](https://www.npmjs.com/package/@topmindspace/tms-skills) is **0.3.1** (whole-repo same-tag releases).
107
124
 
108
125
  ### topmind-cover · Cover style library
109
126
 
110
- | Style | In one line | Typical topics |
111
- |-------|-------------|----------------|
112
- | Bold poster `big-poster` | One-sentence stance, maximum impact | Opinion pieces, hot takes |
113
- | Futuristic tech `tech-future` | Neon blue / electric violet on deep navy | AI / LLMs / agents |
114
- | Editorial magazine `magazine` | Restrained, premium, trustworthy | In-depth interviews, profiles |
115
- | Minimalist `minimal` | Vast negative space, room to breathe | Essays, book reviews, light takes |
116
- | Guochao illustration `guochao` | Vermilion / dark teal / gold, cultural punch | Trad culture, festivals, heritage |
117
- | Cyber glitch art `cyber-glitch` | RGB channel-split, digital-decay aesthetic | Net culture, cyberpunk |
127
+ Style index and the 8-grid overview are in the topmind-cover skill intro above.
118
128
 
119
- **Three steps to a cover**: ① pick 1 of 6 styles by topic → ② check the matching example in [`topmind-cover/assets/examples/`](./topmind-cover/assets/examples/) → ③ compose the prompt from that style's recipe in [`references/cover-styles.md`](./topmind-cover/references/cover-styles.md). 12 example images (6 styles × 1200×675 master + 900×383 WeChat center-crop, ~6.4MB) ship with the npm package; **safe-zone rule**: title text and key subject must stay inside the central vertical 60% safe zone.
129
+ **Three steps to a cover**: ① pick 1 of 8 styles by topic → ② check the matching example in [`topmind-cover/assets/examples/`](./topmind-cover/assets/examples/) → ③ compose the prompt from that style's recipe in [`references/cover-styles.md`](./topmind-cover/references/cover-styles.md). 17 example images (8 styles × 1200×675 master + 900×383 WeChat center-crop + `overview.png` 8-grid overview, ~7.5MB) ship with the npm package; **safe-zone rule**: title text and key subject must stay inside the central vertical 60% safe zone.
120
130
 
121
131
  ## Install
122
132
 
@@ -126,7 +136,7 @@ Installer [`@topmindspace/tms-skills`](https://www.npmjs.com/package/@topmindspa
126
136
  npx @topmindspace/tms-skills list
127
137
  npx @topmindspace/tms-skills install top-ppt-html
128
138
  npx @topmindspace/tms-skills install top-ppt-html --to ./.claude/skills
129
- npx @topmindspace/tms-skills@0.3.0 install top-ppt-html # pin
139
+ npx @topmindspace/tms-skills@0.3.1 install top-ppt-html # pin
130
140
  ```
131
141
 
132
142
  ```bash
package/README.md CHANGED
@@ -35,12 +35,29 @@ npx @topmindspace/tms-skills install topmind-x-article
35
35
 
36
36
  ### topmind-cover · 封面配图生成
37
37
 
38
- X 长文与公众号共用的封面图:震撼、醒目、主题突出。内置 **6 种封面风格库**(震撼大字报 / 科技未来感 / 杂志编辑风 / 极简留白 / 国潮插画 / 赛博故障艺术,含适用场景、配色 hex、字体建议、中英 prompt 配方)+ **12 张双尺寸示例图**(`assets/examples/`,随包发布):**选风格 → 看示例 → 按配方组 prompt** 三步出图,`crop-cover.py` 一键裁出双平台尺寸(X 1200×675、公众号 900×383)。
38
+ X 长文与公众号共用的封面图:震撼、醒目、主题突出。内置 **8 种封面风格库**(爆款干货 / 巨字宣言 / 品牌发布 / 教程步骤 / IP 趣味 / 资讯快报 / 极简留白 / 杂志编辑,含适用场景、配色 hex、字体建议、中英 prompt 配方)+ **17 张双尺寸示例图**(`assets/examples/`,随包发布):**选风格 → 看示例 → 按配方组 prompt** 三步出图,`crop-cover.py` 一键裁出双平台尺寸(X 1200×675、公众号 900×383)。
39
39
 
40
40
  ```bash
41
41
  npx @topmindspace/tms-skills install topmind-cover
42
42
  ```
43
43
 
44
+ **封面风格样张**(8 宫格总览;单风格大图见 `topmind-cover/assets/examples/<风格>.png`,配方见 [`references/cover-styles.md`](./topmind-cover/references/cover-styles.md)):
45
+
46
+ <p align="center">
47
+ <img src="https://github.com/topmindspace/tms-skills/raw/main/topmind-cover/assets/examples/overview.png" alt="topmind-cover · 8 封面风格总览" width="960" />
48
+ </p>
49
+
50
+ | 风格 | 适用场景 |
51
+ |------|----------|
52
+ | 爆款干货 `gan-huo` | 干货清单、评测、盘点、实测筛选;"我替你试完了/筛完了"类第一人称实测文默认选它 |
53
+ | 巨字宣言 `big-type` | 观点评论、深度长文、产品/版本发布宣言;"一句话立场"类文章默认选它 |
54
+ | 品牌发布 `brand-launch` | 产品发布、版本更新、官方最佳实践/白皮书;有明确品牌主体的内容首选 |
55
+ | 教程步骤 `tutorial-steps` | 教程、上手指南、分步实操、保姆级攻略 |
56
+ | IP 趣味 `ip-fun` | 实战案例、数据战报、复盘、系列连载(上/下篇) |
57
+ | 资讯快报 `news-flash` | 资讯、快讯、热点解读、人物专访预告、"祛魅/揭秘"类选题 |
58
+ | 极简留白 `minimal` | 随笔、书评、轻观点、生活感悟;公众号"轻阅读"类文章 |
59
+ | 杂志编辑 `magazine` | 深度访谈、人物特写、商业分析、年度盘点;需要"质感/信任感"时用它 |
60
+
44
61
  > 让 idea 飞,好想法被看见。
45
62
 
46
63
  <p align="center">
@@ -99,22 +116,15 @@ npx @topmindspace/tms-skills install topmind-cover
99
116
  | [`top-ppt-html`](./top-ppt-html/) | **0.1.19** | 正式商务演示:HTML 可翻页 + 16:9 可编辑 PPTX;双交付 · MD3 密度克制;三模式 × 九风格;strict 0/0 |
100
117
  | [`topmind-wechat-post`](./topmind-wechat-post/) | **0.1.0** | 公众号文章全生命周期:交付包、审校改写、质量三关、微信内联排版与发布清单 |
101
118
  | [`topmind-x-article`](./topmind-x-article/) | **0.1.0** | X 长文一键发布:Markdown 原稿转可直接粘贴的纯文本 + 封面图 + 发布清单 |
102
- | [`topmind-cover`](./topmind-cover/) | **0.1.0** | 文章封面配图(X / 公众号共用):震撼醒目主题突出;6 风格封面风格库 + 12 张双尺寸示例图,尺寸规范 + 裁剪落盘 |
119
+ | [`topmind-cover`](./topmind-cover/) | **0.1.0** | 文章封面配图(X / 公众号共用):震撼醒目主题突出;8 风格封面风格库 + 17 张双尺寸示例图,尺寸规范 + 裁剪落盘 |
103
120
 
104
- 安装器 [`@topmindspace/tms-skills`](https://www.npmjs.com/package/@topmindspace/tms-skills) 为 **0.3.0**(整仓同 tag 发版)。
121
+ 安装器 [`@topmindspace/tms-skills`](https://www.npmjs.com/package/@topmindspace/tms-skills) 为 **0.3.1**(整仓同 tag 发版)。
105
122
 
106
123
  ### topmind-cover · 封面风格库
107
124
 
108
- | 风格 | 一句话 | 典型题材 |
109
- |------|--------|----------|
110
- | 震撼大字报 `big-poster` | 一句话立场,冲击力拉满 | 观点评论、热点快评 |
111
- | 科技未来感 `tech-future` | 霓虹蓝/电光紫,深空藏青底 | AI / 大模型 / 智能体 |
112
- | 杂志编辑风 `magazine` | 克制高级,质感与信任感 | 深度访谈、人物特写 |
113
- | 极简留白 `minimal` | 大面积留白,给版面呼吸感 | 随笔、书评、轻观点 |
114
- | 国潮插画 `guochao` | 朱红/黛青/鎏金,文化感 | 传统文化、节气、非遗 |
115
- | 赛博故障艺术 `cyber-glitch` | RGB 错位,数字 decay 美学 | 网络文化、赛博朋克 |
125
+ 风格索引与 8 宫格总览样张见上文 topmind-cover 技能介绍处。
116
126
 
117
- **三步出图**:① 按题材从 6 风格选 1 → ② 看 [`topmind-cover/assets/examples/`](./topmind-cover/assets/examples/) 对应示例图 → ③ 按 [`references/cover-styles.md`](./topmind-cover/references/cover-styles.md) 该风格的 prompt 配方组 prompt。12 张示例图(6 风格 × 1200×675 主图 + 900×383 公众号中央裁剪版,约 6.4MB)随 npm 包发布;**安全区铁律**:标题字与关键主体必须落在画面中央垂直 60% 安全区内。
127
+ **三步出图**:① 按题材从 8 风格选 1 → ② 看 [`topmind-cover/assets/examples/`](./topmind-cover/assets/examples/) 对应示例图 → ③ 按 [`references/cover-styles.md`](./topmind-cover/references/cover-styles.md) 该风格的 prompt 配方组 prompt。17 张示例图(8 风格 × 1200×675 主图 + 900×383 公众号中央裁剪版 + `overview.png` 8 宫格总览,约 7.5MB)随 npm 包发布;**安全区铁律**:标题字与关键主体必须落在画面中央垂直 60% 安全区内。
118
128
 
119
129
  ## 安装
120
130
 
@@ -124,7 +134,7 @@ npx @topmindspace/tms-skills install topmind-cover
124
134
  npx @topmindspace/tms-skills list
125
135
  npx @topmindspace/tms-skills install top-ppt-html
126
136
  npx @topmindspace/tms-skills install top-ppt-html --to ./.claude/skills
127
- npx @topmindspace/tms-skills@0.3.0 install top-ppt-html # 钉版本
137
+ npx @topmindspace/tms-skills@0.3.1 install top-ppt-html # 钉版本
128
138
  ```
129
139
 
130
140
  ```bash
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@topmindspace/tms-skills",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "TopMindspace 智能体技能 monorepo — 通过 npm / GitHub npx 安装技能(top-ppt-html:HTML+PPT 双交付,正式商务演示文稿)。",
5
5
  "license": "MIT",
6
6
  "author": "TopMindspace",
@@ -18,7 +18,7 @@ Plenty of PPT skills exist. This one is for **formal business presenting**: clea
18
18
  </p>
19
19
 
20
20
  - Skill id: `top-ppt-html`; brand: **TopPPT HTML**
21
- - Version: **v0.1.19** (same tag as `@topmindspace/tms-skills@0.3.0`)
21
+ - Version: **v0.1.19** (same tag as `@topmindspace/tms-skills@0.3.1`)
22
22
  - **Agent entry**: `SKILL.md` → `references/playbook.md` (L1) → L2 on demand
23
23
  - **Human maintainers**: this README (install / commands / layout); do not treat it as the generation spec
24
24
 
@@ -73,7 +73,7 @@ Also: arrow-key paging; **Esc** closes modals. After style/theme change, re-run
73
73
 
74
74
  ```bash
75
75
  npx @topmindspace/tms-skills install top-ppt-html
76
- npx @topmindspace/tms-skills@0.3.0 install top-ppt-html
76
+ npx @topmindspace/tms-skills@0.3.1 install top-ppt-html
77
77
  npx github:topmindspace/tms-skills install top-ppt-html
78
78
  ```
79
79
 
@@ -18,7 +18,7 @@
18
18
  </p>
19
19
 
20
20
  - 技能标识:`top-ppt-html`;品牌名:**TopPPT HTML**
21
- - 版本:**v0.1.19**(与 `@topmindspace/tms-skills@0.3.0` 同 tag)
21
+ - 版本:**v0.1.19**(与 `@topmindspace/tms-skills@0.3.1` 同 tag)
22
22
  - **智能体入口**:`SKILL.md` → `references/playbook.md`(L1)→ L2 按需
23
23
  - **人类维护者**:本 README(安装 / 命令 / 目录);勿把本文件当生成规范
24
24
 
@@ -4,6 +4,23 @@
4
4
 
5
5
  A reusable skill for generating cover art for X long-form posts and WeChat articles. Goal: **striking, eye-catching, theme-focused**.
6
6
 
7
+ ## Style gallery
8
+
9
+ <p align="center">
10
+ <img src="https://github.com/topmindspace/tms-skills/raw/main/topmind-cover/assets/examples/overview.png" alt="topmind-cover · 8 cover-style overview" width="960" />
11
+ </p>
12
+
13
+ | Style | Best for |
14
+ |-------|----------|
15
+ | Viral dry-goods `gan-huo` | Tested picks, reviews, roundups; default for first-person "I tried it all for you" posts |
16
+ | Giant-type manifesto `big-type` | Opinion pieces, deep essays, launch manifestos; default for one-sentence-stance pieces |
17
+ | Brand launch `brand-launch` | Product launches, version updates, official best practices / whitepapers; first choice when a brand is the subject |
18
+ | Tutorial steps `tutorial-steps` | Tutorials, onboarding guides, step-by-step walkthroughs, beginner-proof recipes |
19
+ | Fun IP `ip-fun` | Case studies, data recaps, retrospectives, series (part 1 / part 2) |
20
+ | News flash `news-flash` | News, flashes, hot-topic explainers, interview teasers, "myth-busting" angles |
21
+ | Minimal `minimal` | Essays, book reviews, light takes, lifestyle musings; WeChat "light reading" pieces |
22
+ | Editorial magazine `magazine` | In-depth interviews, profiles, business analysis, year-in-review; when "craft / trust" matters |
23
+
7
24
  ## Install
8
25
 
9
26
  ```bash
@@ -12,7 +29,7 @@ npx @topmindspace/tms-skills install topmind-cover
12
29
 
13
30
  ## Usage
14
31
 
15
- 0. **Pick a style (3 steps, required)**: choose 1 of 6 styles from `references/cover-styles.md` by topic
32
+ 0. **Pick a style (3 steps, required)**: choose 1 of 8 styles from `references/cover-styles.md` by topic
16
33
  → check `assets/examples/<style>.png` to confirm the visual language
17
34
  → compose the prompt from that style's recipe (replace `{TITLE}` with the real title).
18
35
  1. Input: article title + 3 theme keywords + platform (x / wechat / both, default both).
@@ -28,8 +45,8 @@ python3 scripts/crop-cover.py <main-image> --out-dir <package>/images/
28
45
 
29
46
  ## Style library & examples
30
47
 
31
- - **Style library** `references/cover-styles.md`: 6 styles (bold poster / futuristic tech / editorial magazine / minimalist / guochao illustration / cyber glitch art), each with use cases, hex palettes, font suggestions, Chinese+English prompt recipes, and pitfalls.
32
- - **Example images** [assets/examples/](./assets/examples/): 12 (6 styles × 1200×675 master + 900×383 WeChat center-crop, ~6.4MB), shipped with the package, free to reuse or adapt (manifest + safe-zone notes + reuse terms in [assets/examples/README.md](./assets/examples/README.md)).
48
+ - **Style library** `references/cover-styles.md`: 8 styles (viral dry-goods / giant-type manifesto / brand launch / tutorial steps / fun IP / news flash / minimalist / editorial magazine), each with use cases, hex palettes, font suggestions, Chinese+English prompt recipes, and pitfalls.
49
+ - **Example images** [assets/examples/](./assets/examples/): 17 (8 styles × 1200×675 master + 900×383 WeChat center-crop + `overview.png` 8-grid overview, ~7.5MB), shipped with the package, free to reuse or adapt (manifest + safe-zone notes + reuse terms in [assets/examples/README.md](./assets/examples/README.md)).
33
50
  - **Safe-zone rule**: title text and key subject must stay inside the central vertical 60% safe zone (keep the top/bottom 13%+ free of title text), or the WeChat center crop will cut the title.
34
51
 
35
52
  ## Sizes
@@ -4,6 +4,23 @@
4
4
 
5
5
  为 X 长文和公众号文章生成封面图的可复用技能。目标:**震撼、醒目、主题突出**。
6
6
 
7
+ ## 风格样张
8
+
9
+ <p align="center">
10
+ <img src="https://github.com/topmindspace/tms-skills/raw/main/topmind-cover/assets/examples/overview.png" alt="topmind-cover · 8 封面风格总览" width="960" />
11
+ </p>
12
+
13
+ | 风格 | 适用场景 |
14
+ |------|----------|
15
+ | 爆款干货 `gan-huo` | 干货清单、评测、盘点、实测筛选;"我替你试完了/筛完了"类第一人称实测文默认选它 |
16
+ | 巨字宣言 `big-type` | 观点评论、深度长文、产品/版本发布宣言;"一句话立场"类文章默认选它 |
17
+ | 品牌发布 `brand-launch` | 产品发布、版本更新、官方最佳实践/白皮书;有明确品牌主体的内容首选 |
18
+ | 教程步骤 `tutorial-steps` | 教程、上手指南、分步实操、保姆级攻略 |
19
+ | IP 趣味 `ip-fun` | 实战案例、数据战报、复盘、系列连载(上/下篇) |
20
+ | 资讯快报 `news-flash` | 资讯、快讯、热点解读、人物专访预告、"祛魅/揭秘"类选题 |
21
+ | 极简留白 `minimal` | 随笔、书评、轻观点、生活感悟;公众号"轻阅读"类文章 |
22
+ | 杂志编辑 `magazine` | 深度访谈、人物特写、商业分析、年度盘点;需要"质感/信任感"时用它 |
23
+
7
24
  ## 安装
8
25
 
9
26
  ```bash
@@ -12,7 +29,7 @@ npx @topmindspace/tms-skills install topmind-cover
12
29
 
13
30
  ## 用法
14
31
 
15
- 0. **选风格(三步,必做)**:按题材从 `references/cover-styles.md` 选 1 种风格(6 选 1)
32
+ 0. **选风格(三步,必做)**:按题材从 `references/cover-styles.md` 选 1 种风格(8 选 1)
16
33
  → 看 `assets/examples/<风格>.png` 示例图,确认视觉语言符合预期
17
34
  → 按该风格的 prompt 配方组 prompt(把 `{TITLE}` 换成实际标题)。
18
35
  1. 输入文章标题 + 3 个主题关键词 + 平台(x / wechat / both,默认 both)。
@@ -28,8 +45,8 @@ python3 scripts/crop-cover.py <主图> --out-dir <包>/images/
28
45
 
29
46
  ## 风格库与示例图
30
47
 
31
- - **风格库** `references/cover-styles.md`:6 种风格(震撼大字报 / 科技未来感 / 杂志编辑风 / 极简留白 / 国潮插画 / 赛博故障艺术),每种含适用场景、配色 hex、字体建议、中英 prompt 配方、避坑。
32
- - **示例图** [assets/examples/](./assets/examples/):12 张(6 风格 × 1200×675 主图 + 900×383 公众号中央裁剪版,约 6.4MB),随包发布,可直接拿去用/改(清单 + 安全区说明 + 复用声明见 [assets/examples/README.md](./assets/examples/README.md))。
48
+ - **风格库** `references/cover-styles.md`:8 种风格(爆款干货 / 巨字宣言 / 品牌发布 / 教程步骤 / IP 趣味 / 资讯快报 / 极简留白 / 杂志编辑),每种含适用场景、配色 hex、字体建议、中英 prompt 配方、避坑。
49
+ - **示例图** [assets/examples/](./assets/examples/):17 张(8 风格 × 1200×675 主图 + 900×383 公众号中央裁剪版 + `overview.png` 8 宫格总览,约 7.5MB),随包发布,可直接拿去用/改(清单 + 安全区说明 + 复用声明见 [assets/examples/README.md](./assets/examples/README.md))。
33
50
  - **安全区铁律**:标题字与关键主体必须落在画面中央垂直 60% 安全区内(上下各预留 13%+ 不放标题字),否则公众号中央裁剪会切掉标题。
34
51
 
35
52
  ## 尺寸
@@ -29,6 +29,25 @@ updated: 2026-09-29
29
29
  标题/主题 → 风格模板 → 生成 → 检查 → 裁剪双尺寸 → 落盘命名
30
30
  ```
31
31
 
32
+ ## 风格样张
33
+
34
+ <p align="center">
35
+ <img src="https://github.com/topmindspace/tms-skills/raw/main/topmind-cover/assets/examples/overview.png" alt="topmind-cover · 8 封面风格总览" width="960" />
36
+ </p>
37
+
38
+ | 风格 | 适用场景 |
39
+ |------|----------|
40
+ | 爆款干货 `gan-huo` | 干货清单、评测、盘点、实测筛选;"我替你试完了/筛完了"类第一人称实测文默认选它 |
41
+ | 巨字宣言 `big-type` | 观点评论、深度长文、产品/版本发布宣言;"一句话立场"类文章默认选它 |
42
+ | 品牌发布 `brand-launch` | 产品发布、版本更新、官方最佳实践/白皮书;有明确品牌主体的内容首选 |
43
+ | 教程步骤 `tutorial-steps` | 教程、上手指南、分步实操、保姆级攻略 |
44
+ | IP 趣味 `ip-fun` | 实战案例、数据战报、复盘、系列连载(上/下篇) |
45
+ | 资讯快报 `news-flash` | 资讯、快讯、热点解读、人物专访预告、"祛魅/揭秘"类选题 |
46
+ | 极简留白 `minimal` | 随笔、书评、轻观点、生活感悟;公众号"轻阅读"类文章 |
47
+ | 杂志编辑 `magazine` | 深度访谈、人物特写、商业分析、年度盘点;需要"质感/信任感"时用它 |
48
+
49
+ 单风格大图:`assets/examples/<style>.png`;配方:`references/cover-styles.md`。
50
+
32
51
  ## 尺寸表
33
52
 
34
53
  | 平台 | 尺寸 | 比例 | 备注 |
@@ -41,7 +60,7 @@ updated: 2026-09-29
41
60
  ## 工作流
42
61
 
43
62
  0. **选风格(三步,必做)**:
44
- ① 按题材从 `references/cover-styles.md` 选 1 种风格(6 选 1);
63
+ ① 按题材从 `references/cover-styles.md` 选 1 种风格(8 选 1);
45
64
  ② 看 `assets/examples/<style>.png` 示例图,确认视觉语言符合预期;
46
65
  ③ 按该风格的 prompt 配方组 prompt(把 `{TITLE}` 换成实际标题)。
47
66
  示例清单见 `assets/examples/README.md`。
@@ -1,29 +1,37 @@
1
1
  # 封面风格示例图
2
2
 
3
- 6 种风格 × 2 种尺寸 = 12 张示例(共约 6.4MB,随 npm 包发布,npx 安装即得):
3
+ 8 种风格 × 2 种尺寸 = 16 张示例(共约 7.5MB,随 npm 包发布,npx 安装即得),
4
+ 另附 `overview.png`(8 宫格总览,2360×854)。
4
5
 
5
6
  - `<style>.png`(1200×675,X 长文封面 / 公众号共用主尺寸)
6
7
  - `<style>-wechat.png`(900×383,公众号封面大图,`scripts/crop-cover.py` 中央裁剪版)
8
+ - `overview.png`(8 宫格总览:2 行 × 4 列缩略图 + 风格名标注,选风格时先看它)
7
9
 
8
10
  | 文件 | 风格 | 适用场景(一句话) |
9
11
  |------|------|--------------------|
10
- | `big-poster.png` / `big-poster-wechat.png` | 震撼大字报 | 观点评论、行业观察、热点快评,"一句话立场"类文章默认选它 |
11
- | `tech-future.png` / `tech-future-wechat.png` | 科技未来感 | AI/大模型/智能体/前沿技术题材,X 长文科技类默认风格 |
12
- | `magazine.png` / `magazine-wechat.png` | 杂志编辑风 | 深度访谈、人物特写、商业分析,需要质感与信任感时用它 |
13
- | `minimal.png` / `minimal-wechat.png` | 极简留白 | 随笔、书评、轻观点,给版面"呼吸感"的穿插封面 |
14
- | `guochao.png` / `guochao-wechat.png` | 国潮插画 | 传统文化、历史、节气、非遗、国货品牌,节日特辑首选 |
15
- | `cyber-glitch.png` / `cyber-glitch-wechat.png` | 赛博故障艺术 | 网络文化、赛博朋克、前沿实验,年轻化/亚文化话题 |
12
+ | `gan-huo.png` / `gan-huo-wechat.png` | 爆款干货 | 干货清单、评测、盘点、实测筛选;"我替你试完了/筛完了"类第一人称实测文默认选它 |
13
+ | `big-type.png` / `big-type-wechat.png` | 巨字宣言 | 观点评论、深度长文、产品/版本发布宣言;"一句话立场"类文章默认选它 |
14
+ | `brand-launch.png` / `brand-launch-wechat.png` | 品牌发布 | 产品发布、版本更新、官方最佳实践/白皮书;有明确品牌主体的内容首选 |
15
+ | `tutorial-steps.png` / `tutorial-steps-wechat.png` | 教程步骤 | 教程、上手指南、分步实操、保姆级攻略 |
16
+ | `ip-fun.png` / `ip-fun-wechat.png` | IP 趣味 | 实战案例、数据战报、复盘、系列连载(上/下篇) |
17
+ | `news-flash.png` / `news-flash-wechat.png` | 资讯快报 | 资讯、快讯、热点解读、人物专访预告、"祛魅/揭秘"类选题 |
18
+ | `minimal.png` / `minimal-wechat.png` | 极简留白 | 随笔、书评、轻观点、生活感悟;公众号"轻阅读"类文章 |
19
+ | `magazine.png` / `magazine-wechat.png` | 杂志编辑 | 深度访谈、人物特写、商业分析、年度盘点;需要"质感/信任感"时用它 |
16
20
 
17
21
  详细配方(配色 hex / 字体 / 中英 prompt / 避坑)见 `../references/cover-styles.md`。
18
22
 
19
23
  ## 安全区说明(重要)
20
24
 
21
- 所有示例的标题字都落在**中央垂直 60% 安全区**内——这正是 `900×383` 中央裁剪版标题不被裁掉的原因。
25
+ 所有示例的标题字与关键元素都落在**中央垂直 60% 安全区**(画面垂直 20%~80%)内——
26
+ 这正是 `900×383` 中央裁剪版(保留画面垂直 21.6%~78.4%)标题不被裁掉的原因。
22
27
  自己组 prompt 时务必遵守:标题/关键主体不得超出上下各 13% 的禁区,否则公众号版会被切掉。
23
- 反例:标题压在顶部 15% 处时,`-wechat.png` 里只剩半截字(第一版 tech-future/guochao 示例即如此,已修正)。
28
+ 反例:胶囊标签条/副标题横条压在底部 85% 以下时,`-wechat.png` 里会只剩半截或完全消失
29
+ (本轮重制时 gan-huo / big-type / brand-launch / tutorial-steps 均因此返工过)。
24
30
 
25
31
  ## 复用声明
26
32
 
27
33
  **示例图可直接拿去用/改,作封面底图或风格参考。**
28
34
  拿去用时建议按 `scripts/crop-cover.py` 的流程重新裁剪双尺寸并按包规约命名落盘;
29
35
  改图时保留原风格的配色与版式语言,只换主体与标题字,以维持系列感。
36
+ 注意:示例标题均为虚构演示文案(如"星火最佳实践""100天"),直接复用前请换成自己的真实标题;
37
+ 凡封面上的数字必须在正文中有出处,严禁编造数据。
@@ -1,10 +1,11 @@
1
- # 封面风格库(6 种)
1
+ # 封面风格库(8 种)
2
2
 
3
3
  选风格先看题材,再看系列延续性。同一系列固定一个模板,只换主体与标题字。
4
4
  选风格三步走:**先选风格 → 看 `assets/examples/` 对应示例图 → 按本库配方组 prompt**。
5
5
 
6
- 每种风格的 prompt 配方都是中英双语模板:`{TITLE}` 为标题文字占位符(≤10 字,
7
- 示例图上用 2~6 字短标题),尺寸固定 1200×675、横构图 16:9。
6
+ 每种风格的 prompt 配方都是中英双语模板:`{TITLE}` 为标题文字占位符(短标题 4~8 字)、
7
+ `{KEYWORDS}` 为需要彩色突出的数字/关键词占位符,其余占位符见各风格说明。
8
+ 尺寸固定 1200×675、横构图 16:9。标题字逐字写进 prompt;生成后第一件事就是检查标题字。
8
9
 
9
10
  ## 安全区铁律(所有风格通用)
10
11
 
@@ -16,166 +17,305 @@
16
17
 
17
18
  ---
18
19
 
19
- ## 1. big-poster · 震撼大字报
20
+ ## 1. gan-huo · 爆款干货
20
21
 
21
- - **适用场景**:观点评论、行业观察、热点快评;X 长文首图、公众号头图都适用,
22
- 是"一句话立场"类文章的默认选择。
23
- - **配色方案**:主色深红 `#C8102E`(或墨黑 `#111111` 做深色版),
24
- 辅色明黄 `#FFC400`(点缀线条/印章),文字色纯白 `#FFFFFF`。
25
- - **字体建议**:中文标题用 Noto Sans SC Black / 思源黑体 Heavy,
26
- 标题字号占画面高度 28%~35%,字距紧凑,可做轻微倾斜或描边增强冲击力。
22
+ - **适用场景**:干货清单、评测、盘点、实测筛选类文章;"我替你试完了/筛完了"这类
23
+ 第一人称实测文的默认选择。参考样张:Muse 爆款干货、Manus 2.0 封面。
24
+ - **构图公式**:左右分区。左侧 60% 为文案堆叠区(自上而下:短引子行 → 巨型标题 →
25
+ 底部胶囊标签条);右侧 40% 为萌物/IP 形象(抱着主题物品,如帖子、产品),
26
+ 形象顶部不超过标题区、不遮挡任何文字。标题字占画面高度 25%~32%。
27
+ - **配色方案**:暖白底 `#FFF9F0`(或米白 `#FAF6EF`);主标题炭黑 `#1A1A1A`;
28
+ 数字/品牌词用亮蓝 `#2B7FFF`;篇数类数字可用橙红 `#FF4D2E`;
29
+ 关键词下垫黄色笔刷底 `#FFD23F`;底部标签条为蓝色胶囊 `#2B7FFF` 配白字。
30
+ - **标题写法规范**:
31
+ - 短标题 4~8 字,如"爆款干货""实测报告";上方加 1~2 行引子小字
32
+ ("刷了3天时间线/我从上百个帖子里"),引子字号约为标题的 55%。
33
+ - 数字必须放大并上色:"26篇"中的 26 用橙红,"3天"中的 3 用蓝色;
34
+ 品牌词(如 Muse、Manus)用蓝色。
35
+ - 底部标签条:蓝色圆角胶囊,内放 3 个标签,格式 `⚡四字词 | 📋四字词 | 📊四字词`
36
+ (如"实测筛选 | 长文精选 | 全流程实操"),字号约为标题的 30%。
27
37
  - **prompt 配方**:
28
38
  ```
29
- 中文:震撼中文大字报风格封面,纯深红底色配黑色斜切色块,纸张颗粒质感,
30
- 画面中央巨型白色粗黑标题"{TITLE}",占画面一半,极简构图,高对比,
31
- 横构图16:9,尺寸1200×675,除标题外无其他文字。
39
+ 中文:爆款干货风中文封面,暖白色干净背景,左侧文案区:上方小字引子行,
40
+ 中央巨型炭黑色粗黑标题"{TITLE}",其中数字与关键词"{KEYWORDS}"用亮蓝色与橙红色突出,
41
+ 关键词下方垫黄色笔刷底色;底部一条蓝色圆角胶囊标签条;右侧一只毛茸茸的可爱
42
+ IP 萌物抱着与主题相关的物品,萌物占画面右侧三分之一、不遮挡文字,
43
+ 画面中央垂直安全区内,星星小点缀,亲切活泼,横构图16:9,尺寸1200×675。
32
44
 
33
- EN: Bold Chinese big-character poster style cover, solid crimson red
34
- background with black diagonal bands, subtle paper grain. Giant bold white
35
- Chinese title "{TITLE}" dominates the center, half the frame. Minimal
36
- composition, high contrast, landscape 16:9, 1200x675, no other text.
45
+ EN: Chinese viral-listicle style cover, clean warm-white background. Left
46
+ text zone: small intro lines on top, giant bold charcoal-black Chinese
47
+ title "{TITLE}" at center, with numbers and keywords "{KEYWORDS}" highlighted
48
+ in bright blue and orange-red, a yellow brush stroke behind keywords; a blue
49
+ rounded capsule tag bar at the bottom. On the right third, a fluffy cute IP
50
+ mascot holding a theme-related item, never overlapping the text. All key
51
+ elements within the central vertical safe zone, tiny star accents, friendly
52
+ and lively, landscape 16:9, 1200x675.
37
53
  ```
54
+ 占位符:`{CHARACTER}` 可替换萌物描述(如"蓝色毛绒小怪物""戴墨镜的猫导演"),
55
+ 必须与文章主题相关。
38
56
  - **避坑**:
39
- - 标题超过 10 个字必翻车——大字报风格下长标题会被模型挤成小字或错字;
40
- 长标题先压缩再生成。
41
- - 忌加副标题/英文小字/日期:模型极易在小字上造错别字,且破坏冲击力。
42
- - 深色版(墨黑底)配白字时,检查文字与背景对比度,边缘加细描边防"糊"。
43
-
44
- ## 2. tech-future · 科技未来感
45
-
46
- - **适用场景**:AI/大模型/智能体/前沿技术题材;X 长文科技类默认风格,
47
- Manus / Cue / Agent 这类题材首选。
48
- - **配色方案**:主色深空藏青 `#0A1628`(近黑),辅色霓虹蓝 `#38BDF8`、
49
- 电光紫 `#A78BFA`(渐变光效),文字色纯白 `#FFFFFF`。
50
- - **字体建议**:中文标题用 Noto Sans SC Bold,字号占画面高度 18%~24%,
51
- 落在画面上部、中央垂直安全区内;英文/数字点缀可用 Rajdhani 或 DIN 风格细体(仅作装饰字,
52
- 必须人工核对拼写)。
57
+ - 萌物是配角:占画面不超过 40%,一旦挡住标题字整张作废。
58
+ - 彩色字不要超过 2 种颜色,三色以上立刻变杂。
59
+ - 胶囊标签条必须整体落在中央安全区内,上下留白防裁切。
60
+ - 元素总数 ≤5(引子+标题+标签条+萌物+小点缀),多一件都是负担。
61
+
62
+ ## 2. big-type · 巨字宣言
63
+
64
+ - **适用场景**:观点评论、深度长文、产品/版本发布宣言;"一句话立场"类文章的默认选择。
65
+ 参考样张:Skill 指南封面。
66
+ - **构图公式**:标题即画面。巨型标题字占画面高度 35%~45%,横跨画面三分之二以上,
67
+ 分两行:上行品牌词/关键词(白色或黑色),下行宣言(品牌色/红色,可做 3D 立体字);
68
+ 背景为场景化配图(巨型书、建筑、空间纵深),人物极小仅作比例参照;
69
+ 底部一条白色横条放问题式副标题,横条压在画面底部安全区内。
70
+ - **配色方案**:深底版:近黑 `#101014` 底 + 纯白 `#FFFFFF` 字 + 强调红 `#E63B2E`
71
+ (或品牌色);浅底版:白底 + 黑字 + 红字。同一系列固定一种底色。
72
+ - **标题写法规范**:
73
+ - 短标题 4~8 字,分两行断句,如"Skill指南:/从入门到精通";下行宣言用彩色。
74
+ - 底部白横条用问句引出内容:"如何从0开始构建一个属于自己的Skill?",
75
+ 字号约为标题的 35%,左对齐。
76
+ - 右侧可加竖排小字装饰(如一句 slogan),字号小、不抢戏。
53
77
  - **prompt 配方**:
54
78
  ```
55
- 中文:科技未来感封面,深空藏青近黑背景,霓虹蓝色电路线条与细颗粒星空,
56
- 中央主体为发光的抽象AI核心光球,边缘光干净,画面上部、中央垂直安全区内
57
- 白色粗黑中文标题"{TITLE}",电影感光影,极简不堆砌,横构图16:9,尺寸1200×675,
58
- 除标题外无其他文字。
79
+ 中文:震撼巨字宣言风中文封面,深色场景化背景({SCENE},如巨型书本/建筑纵深,
80
+ 一位小小人物作比例参照),画面中央巨型中文标题"{TITLE}"占画面近一半,
81
+ 上行白色下行红色粗黑体,可做轻微3D立体质感,极具冲击力;底部一条白色横条,
82
+ 内写黑色问句副标题;标题与横条均在中央垂直安全区内,高对比,
83
+ 横构图16:9,尺寸1200×675。
59
84
 
60
- EN: Futuristic tech cover, deep navy-black space background with glowing
61
- neon-blue circuit lines and fine starfield particles. A sleek abstract
62
- glowing AI core orb as central subject with clean rim light. Bold white
63
- Chinese title "{TITLE}" in the upper third. Cinematic lighting, minimal,
64
- landscape 16:9, 1200x675, no other text.
85
+ EN: Bold giant-type manifesto Chinese cover, dark scenic background
86
+ ({SCENE}, e.g. gigantic books / architectural depth, a tiny human figure for
87
+ scale). Enormous bold Chinese title "{TITLE}" dominates the center, nearly
88
+ half the frame, white on the first line and red on the second, subtle 3D
89
+ extruded type feel, maximum impact; a white horizontal bar at the bottom
90
+ with a black question-style subtitle. Title and bar inside the central
91
+ vertical safe zone, high contrast, landscape 16:9, 1200x675.
65
92
  ```
93
+ 占位符:`{SCENE}` 为场景化配图描述,必须与主题强相关(如 Skill 主题用"巨型操作手册")。
66
94
  - **避坑**:
67
- - 霓虹元素别超过 2 种颜色,三色以上画面立刻变"杀马特"。
68
- - 主体(光球/芯片/机器人)必须完整不被裁切,且占画面 40% 以上,
69
- 否则标题和背景会"各说各话"。
70
- - 星空颗粒开太大容易显脏:要求"细颗粒"而非"密集星空"。
95
+ - 标题超过 10 个字必翻车——先压缩成 4~8 字再生成。
96
+ - 3D 立体字与背景对比度不够会"糊":深底配白字、浅底配黑字,边缘加细描边。
97
+ - 背景人物只是比例参照,放大抢戏就喧宾夺主。
98
+ - 字不能顶到画面边缘:四周至少留 5% 空气,否则公众号裁剪会切字。
71
99
 
72
- ## 3. magazine · 杂志编辑风
100
+ ## 3. brand-launch · 品牌发布
73
101
 
74
- - **适用场景**:深度访谈、人物特写、商业分析、年度盘点;公众号长文首选,
75
- 需要"质感/信任感"时用它。
76
- - **配色方案**:主色暖灰 `#E8E4DC`(浅底)或墨黑 `#141414`(深底版),
77
- 辅色砖红 `#B03A2E`(细线/点缀),文字色炭黑 `#2B2B2B`(浅底)/
78
- 米白 `#F5F1E8`(深底)。
79
- - **字体建议**:中文标题用 Noto Serif SC Bold(宋体感)或思源黑体 Bold,
80
- 字号占画面高度 14%~20%,落在左侧下方、中央垂直安全区内;标题上方配一条细色线,
81
- 杂志感立刻出来。
102
+ - **适用场景**:产品发布、版本更新、官方最佳实践/白皮书;有明确品牌主体的内容首选。
103
+ 参考样张:typesafe AI Jev 封面、Manus 2.0 封面(品牌区部分)。
104
+ - **构图公式**:左文右图。左上品牌 logo 区(AI 不画 logo,prompt 里留空位、后期贴真实 logo);
105
+ 左侧大标题(品牌词用品牌色渐变 + 其余黑字),标题下手写感副标题 + 品牌色下划线;
106
+ 右侧 50% 为产品/界面展示(深色控制台、App 界面、产品渲染图);
107
+ 底部 3~4 个卖点图标条:图标 + 中文 + 英文小字。标题字占画面高度 20%~28%。
108
+ - **配色方案**:以品牌主色为准(示例:品红 `#E8408C` 渐变至 `#B02860`);
109
+ 浅底 `#FDF6F9`(或品牌浅色 tint);文字炭黑 `#1A1A1A`;
110
+ 图标底色用品牌色 10% 浅底。
111
+ - **标题写法规范**:
112
+ - 品牌词前置并上色:"Jev"用品牌色渐变,"最佳实践"用黑字;短标题 4~8 字。
113
+ - 副标题口语化、手写感,如"手把手教你改进现有工作流",下方加品牌色笔刷下划线。
114
+ - 卖点条格式:`图标 / 中文四字 / 英文小字`(如"更高效率 / Make it faster"),
115
+ 3~4 个,中文在上英文在下,英文仅装饰。
82
116
  - **prompt 配方**:
83
117
  ```
84
- 中文:杂志编辑风封面,暖灰色影棚背景,右侧三分之一处黑白质感人物肖像,
85
- 左侧大面积留白,左侧下方(中央垂直安全区内)炭黑色典雅粗体中文标题"{TITLE}",标题上方一条砖红
86
- 色细线,克制高级,杂志封面美学,横构图16:9,尺寸1200×675,除标题外无其他文字。
118
+ 中文:品牌发布风中文封面,品牌浅色背景({BRAND_TINT}),左上预留空白 logo 区,
119
+ 左侧大标题"{TITLE}",其中品牌词"{KEYWORDS}"用品牌主色({BRAND_COLOR})渐变突出、
120
+ 其余字炭黑色粗黑体;标题下方手写感副标题配品牌色下划线;
121
+ 右侧一半为产品展示({PRODUCT},深色界面、发光细节);底部 3~4 个卖点图标条
122
+ (图标+中文+英文小字);干净高级,横构图16:9,尺寸1200×675。
87
123
 
88
- EN: Editorial magazine style cover, warm light-gray studio background,
89
- dramatic black-and-white portrait in the right third, generous negative
90
- space on the left. Dark charcoal elegant bold Chinese title "{TITLE}" at
91
- lower left, with a thin brick-red rule line above it. Refined, minimal,
92
- magazine cover aesthetic, landscape 16:9, 1200x675, no other text.
124
+ EN: Brand-launch style Chinese cover, light brand-tinted background
125
+ ({BRAND_TINT}), empty logo area reserved at top-left. Large title "{TITLE}"
126
+ on the left, brand term "{KEYWORDS}" in gradient brand color
127
+ ({BRAND_COLOR}), remaining characters in bold charcoal black; handwritten-feel
128
+ subtitle below with a brand-color underline. Right half shows the product
129
+ ({PRODUCT}, dark UI with glowing details). Bottom row of 3-4 selling-point
130
+ icon chips (icon + Chinese + small English). Clean and premium, landscape
131
+ 16:9, 1200x675.
132
+ ```
133
+ 占位符:`{BRAND_COLOR}`/`{BRAND_TINT}` 为品牌色 hex,`{PRODUCT}` 为产品展示描述;
134
+ 真实 logo 必须后期贴图,绝不用 AI 生成 logo。
135
+ - **避坑**:
136
+ - 产品界面里的 UI 文字让 AI 生成必出乱码:要求"界面文字模糊/占位块",
137
+ 或只展示界面氛围不展示可读文字。
138
+ - 卖点条超过 4 个立刻变说明书;英文小字必须人工核对拼写。
139
+ - 品牌色渐变只用在品牌词上,全标题上色等于没重点。
140
+
141
+ ## 4. tutorial-steps · 教程步骤
142
+
143
+ - **适用场景**:教程、上手指南、分步实操、保姆级攻略。参考样张:Reddit 上手教程封面。
144
+ - **构图公式**:左文右卡。左侧:顶部彩色笔刷横条(写起点,如"从0到1")→
145
+ 大黑标题(4~8 字)→ 底部彩色笔刷横条(内容总结,如"搞懂规则×发帖实操");
146
+ 右侧:2~3 张步骤卡片纵向拼贴(撕纸/便签质感),每张含彩色圆章序号(01/02)+
147
+ 小图标 + 短句,卡片间用箭头连接;右上小字点睛(如"先懂规则,再动手")。
148
+ 标题字占画面高度 22%~30%。
149
+ - **配色方案**:纸白底 `#F7F4EC`;笔刷/序号章用强调红 `#E8401F`
150
+ (或品牌色);标题字炭黑 `#1A1A1A`;卡片描边浅灰。
151
+ - **标题写法规范**:
152
+ - 顶部笔刷条:白字写起点/承诺,"从0到1""7天上手",4 字以内最有力。
153
+ - 大标题 4~8 字,如"Reddit上手/保姆级教程",分两行断句。
154
+ - 底部笔刷条:白字总结全文骨架,"搞懂规则×发帖实操",用 × 连接两个关键词。
155
+ - 步骤卡片内文字极简:序号 + 8 字以内短句(如"看懂平台与社区规则")。
156
+ - **prompt 配方**:
157
+ ```
158
+ 中文:教程步骤风中文封面,纸白色温暖背景,左侧:顶部红色笔刷横条白字写"{HOOK}",
159
+ 中央大号炭黑色粗黑标题"{TITLE}",底部红色笔刷横条白字写"{SUMMARY}";
160
+ 右侧两张撕纸质感便签卡片纵向排列,卡片上有红色圆形序号章(01/02)、
161
+ 简笔画小图标与极简短句,卡片间黑色箭头连接;右上角小字点睛;
162
+ 红黑白三色,对比鲜明,横构图16:9,尺寸1200×675。
163
+
164
+ EN: Tutorial-steps style Chinese cover, warm paper-white background. Left
165
+ side: red brush-stroke banner with white text "{HOOK}" on top, large bold
166
+ charcoal-black Chinese title "{TITLE}" at center, red brush banner with white
167
+ text "{SUMMARY}" at the bottom. Right side: two torn-paper memo cards
168
+ stacked vertically, each with a red circular number badge (01/02), a small
169
+ line icon and minimal short text, connected by a black arrow; small accent
170
+ text at top-right. Red-black-white palette, crisp contrast, landscape 16:9,
171
+ 1200x675.
172
+ ```
173
+ 占位符:`{HOOK}` 顶部钩子(≤4 字)、`{SUMMARY}` 底部总结(≤10 字)、
174
+ 卡片短句直接写进 prompt 且每张 ≤8 字(模型小字易错,越短越安全)。
175
+ - **避坑**:
176
+ - 步骤卡片最多 3 张,第 4 张起画面必乱。
177
+ - 卡片内一个字都不能多:小字是 AI 错别字重灾区,生成后逐字核对。
178
+ - 箭头方向必须明确向下/向右,别让模型自由发挥画成回路。
179
+ - 笔刷横条别压住标题字,上下留 breathing room。
180
+
181
+ ## 5. ip-fun · IP 趣味
182
+
183
+ - **适用场景**:实战案例、数据战报、复盘、系列连载(上/下篇)。参考样张:AI 视频制作实战封面。
184
+ - **构图公式**:左文右图。左侧:巨型彩色数字行(数字占画面高度 20%+,如"600万播放",
185
+ 数字彩色、单位黑字)→ 大黑标题(4~8 字)→ 灰色副标题 + 署名(左下小字);
186
+ 右侧 50% 为趣味 IP 形象:拟人动物/角色 + 主题道具(如猫导演 + 放映机 + 胶片),
187
+ 形象生动、与主题强绑定。
188
+ - **配色方案**:纯白底 `#FFFFFF`;数字用亮蓝 `#2B7FFF`(或品牌色);
189
+ 标题炭黑 `#1A1A1A`;副标题/署名用中灰 `#9AA0A6`。
190
+ - **标题写法规范**:
191
+ - 数字前置造冲击:"600万播放"中数字放大 1.5 倍并上色,单位用黑字;
192
+ 数字必须真实,严禁编造数据。
193
+ - 大标题 4~8 字黑粗体,如"AI视频制作实战"。
194
+ - 副标题灰字说明结构:"从想法到成片 · 下篇";署名 "@Xanderwow" 放左下角小字。
195
+ - **prompt 配方**:
196
+ ```
197
+ 中文:IP 趣味风中文封面,纯白干净背景,左侧:巨型亮蓝色数字"{NUMBER}"
198
+ 配炭黑色单位字,下方大号炭黑色粗黑标题"{TITLE}",再下方灰色小字副标题与署名;
199
+ 右侧一半为趣味 IP 形象({CHARACTER},如戴墨镜的猫导演操作复古放映机、
200
+ 胶片环绕),形象生动、细节丰富但不遮挡文字;所有文字在中央垂直安全区内,
201
+ 横构图16:9,尺寸1200×675。
202
+
203
+ EN: Fun-IP style Chinese cover, clean pure-white background. Left side: huge
204
+ bright-blue number "{NUMBER}" with charcoal-black unit characters, large
205
+ bold charcoal-black Chinese title "{TITLE}" below, small gray subtitle and
206
+ byline underneath. Right half features a playful IP character ({CHARACTER},
207
+ e.g. a sunglasses-wearing cat director operating a vintage film projector
208
+ with film reels swirling around), vivid and detailed but never covering the
209
+ text. All text within the central vertical safe zone, landscape 16:9,
210
+ 1200x675.
93
211
  ```
212
+ 占位符:`{NUMBER}` 为真实数据("600万")、`{CHARACTER}` 为 IP 形象描述,
213
+ 必须与主题道具绑定(如视频主题 → 导演猫 + 放映机)。
94
214
  - **避坑**:
95
- - 人物肖像必须用"泛指"描述(商务人士/学者剪影),不得出现可识别的真实人物长相;
96
- 隐私红线。
97
- - 留白区别手痒加装饰字——杂志风的力量全在克制,加元素必俗。
98
- - 深底版和浅底版不要混用:同一系列固定一种底色。
215
+ - 数字造假是红线:封面上的每个数字必须在正文中有出处。
216
+ - IP 形象再可爱也不能抢字:右侧边界止于画面 55% 处。
217
+ - 白底最怕"脏":要求"纯白干净背景",防模型加渐变/纹理。
218
+ - 连载标注(上篇/下篇)放副标题里,别进大标题。
99
219
 
100
- ## 4. minimal · 极简留白
220
+ ## 6. news-flash · 资讯快报
221
+
222
+ - **适用场景**:资讯、快讯、热点解读、人物专访预告、"祛魅/揭秘"类选题。
223
+ 参考样张:算法工程师祛魅封面。
224
+ - **构图公式**:左文右图。左侧:两行大字标题(上行黑字 4 字、下行品牌色 4~5 字 +
225
+ 感叹号)→ 下方彩色胶囊副标题(问句/悬念);右侧 35%~50% 为人物或主题元素点缀
226
+ (二次元人物、产品小物、场景物件),点缀丰富但不进文字区。
227
+ 标题字占画面高度 22%~30%。
228
+ - **配色方案**:白底 `#FFFFFF`;标题黑 `#1A1A1A` + 品牌蓝 `#2B7FFF`
229
+ (或品牌色);胶囊副标题用品牌色底 + 白字。
230
+ - **标题写法规范**:
231
+ - 标题两行、上黑下彩,如"带你祛魅/算法工程师!",每行 4~6 字;
232
+ 感叹号是点睛,一个就够。
233
+ - 胶囊副标题用问句制造悬念:"薪资?日常?统统告诉你",问号 + 陈述收尾;
234
+ 问句必须在正文中有答案,不做无答案的标题党。
235
+ - 右侧点缀可加小标签云(如书脊上的"Machine Learning/PyTorch"),丰富主题氛围。
236
+ - **prompt 配方**:
237
+ ```
238
+ 中文:资讯快报风中文封面,纯白背景,左侧两行大字标题,上行炭黑色"{TITLE_TOP}"、
239
+ 下行品牌蓝色"{TITLE_BOTTOM}"加感叹号,粗黑体;标题下方蓝色圆角胶囊副标题,
240
+ 白字问句"{SUBTITLE}";右侧人物/主题元素点缀({CHARACTER},如专注的二次元
241
+ 少年、笔记本电脑、代码屏幕、书堆小物),生动但不遮挡文字;
242
+ 所有文字在中央垂直安全区内,横构图16:9,尺寸1200×675。
243
+
244
+ EN: News-flash style Chinese cover, white background. Left side: two-line
245
+ bold headline, charcoal-black "{TITLE_TOP}" on top and brand-blue
246
+ "{TITLE_BOTTOM}" with exclamation mark below; a blue rounded capsule
247
+ subtitle with a white question-style "{SUBTITLE}" underneath. Right side
248
+ decorative figure / theme elements ({CHARACTER}, e.g. a focused anime-style
249
+ youth, laptop, code screen, book stack props), lively but never covering the
250
+ text. All text within the central vertical safe zone, landscape 16:9,
251
+ 1200x675.
252
+ ```
253
+ 占位符:`{TITLE_TOP}` 上行(黑字)、`{TITLE_BOTTOM}` 下行(彩色)、
254
+ `{SUBTITLE}` 胶囊问句、`{CHARACTER}` 右侧点缀描述。
255
+ - **避坑**:
256
+ - 感叹号/问号各一个,多了变地摊文学。
257
+ - 右侧点缀元素别超过 4 件,多了就抢标题的风头。
258
+ - 胶囊问句的字数 ≤12 字,太长胶囊装不下会被模型挤小。
259
+ - 热点人物用"泛指"描述,不画可识别真人。
260
+
261
+ ## 7. minimal · 极简留白
101
262
 
102
263
  - **适用场景**:随笔、书评、轻观点、生活感悟;公众号"轻阅读"类文章,
103
264
  或系列中需要"呼吸感"的穿插封面。
265
+ - **构图公式**:大面积留白(≥60%)。一处微小点缀落在右侧中央安全区内
266
+ (如水墨笔触、孤鸟剪影);标题小字号放左下角安全区内,不与点缀打架。
267
+ 标题字占画面高度 8%~12%。
104
268
  - **配色方案**:主色米白 `#F7F4EC`(或冷白 `#F2F4F6`),
105
269
  辅色淡墨 `#9AA0A6`(小面积点缀),文字色深灰 `#3A3A3A`。
106
- - **字体建议**:中文标题用 Noto Sans SC Medium(不要用 Black,太重),
107
- 字号占画面高度 8%~12%,落在左下角、中央垂直安全区内,留白 ≥60%。
270
+ - **标题写法规范**:短标题 4~8 字即可,字体用 Noto Sans SC Medium(不用 Black,
271
+ 太重则极简感全失);不加副标题、不加标签条,克制到底。
108
272
  - **prompt 配方**:
109
273
  ```
110
274
  中文:极致极简主义封面,暖米白背景,大面积留白,一处微小的水墨笔触
111
275
  (如孤鸟剪影)点缀在画面右侧中央(中央垂直安全区内),左下角(中央垂直安全区内)
112
- 小字号深灰色中文标题"{TITLE}",呼吸感强,禅意,横构图16:9,尺寸1200×675,除标题外无其他文字。
276
+ 小字号深灰色中文标题"{TITLE}",呼吸感强,禅意,无其他元素,
277
+ 横构图16:9,尺寸1200×675,除标题外无其他文字。
113
278
 
114
279
  EN: Extreme minimalism cover, warm off-white background with vast empty
115
280
  space, one tiny ink-brush stroke (like a lone bird silhouette) near the
116
281
  center-right. Small dark-gray Chinese title "{TITLE}" in delicate bold type
117
- at the lower-left corner. Calm, airy, zen aesthetic, landscape 16:9,
118
- 1200x675, no other text.
282
+ at the lower-left corner. Calm, airy, zen aesthetic, no other elements,
283
+ landscape 16:9, 1200x675, no other text.
119
284
  ```
120
285
  - **避坑**:
121
- - 极简风对"杂物"零容忍:模型爱加云/山/多余笔触,prompt 里明确"一处""微小""无其他元素"。
122
- - 标题字别贪大:字一大立刻变"大字报",极简感全失。
123
- - 公众号 900×383 中央裁剪会吃掉左右留白——主体和标题尽量往中央安全区放。
124
-
125
- ## 5. guochao · 国潮插画
126
-
127
- - **适用场景**:传统文化、历史、节气、非遗、国货品牌题材;公众号文化类、
128
- 节日特辑首选。
129
- - **配色方案**:主色朱红 `#D43D2A`,辅色黛青 `#2F4F4F`、鎏金 `#C9A86A`
130
- (标题/纹样),文字色金 `#C9A86A` 或米白 `#F5EFE0`。
131
- - **字体建议**:中文标题用书法感粗体(站酷快乐体/演示佛系体风格描述,
132
- 或 Noto Serif SC Black),字号占画面高度 20%~28%,可竖排,
133
- 落在上方(中央垂直安全区内)或中央。
134
- - **prompt 配方**:
135
- ```
136
- 中文:国潮插画风封面,朱红与黛青大色块碰撞,祥云海浪传统纹样作暗纹背景,
137
- 中央主体为风格化国风人物或神兽插画,上方(中央垂直安全区内)鎏金书法感
138
- 中文标题"{TITLE}",浓烈鲜明,文化感,横构图16:9,尺寸1200×675,除标题外无其他文字。
286
+ - 对"杂物"零容忍:prompt 明确"一处""微小""无其他元素",防模型加云加山。
287
+ - 标题字别贪大:字一大立刻变大字报。
288
+ - 主体和标题尽量往中央安全区放,防公众号裁剪吃掉左右留白。
139
289
 
140
- EN: Guochao Chinese-trendy illustration cover, bold vermilion red and dark
141
- teal color blocks, traditional cloud-and-wave patterns as subtle background
142
- texture. Stylized Chinese-style figure or mythical beast illustration as
143
- central subject. Golden calligraphy-style Chinese title "{TITLE}" at the
144
- top. Vibrant, cultural, landscape 16:9, 1200x675, no other text.
145
- ```
146
- - **避坑**:
147
- - 忌用真实历史人物/文物高精度复刻做主体——一是版权风险,二是模型画不准;
148
- 用"风格化插画"表述。
149
- - 朱红+黛青+鎏金已是三色上限,别再加第四色。
150
- - 竖排标题时检查字序:模型偶发把竖排字写成横排或倒序,生成后逐字核对。
151
-
152
- ## 6. cyber-glitch · 赛博故障艺术
153
-
154
- - **适用场景**:网络文化、赛博朋克题材、前沿实验、数字艺术评论;
155
- X 长文年轻化/亚文化话题,公众号慎用(读者年龄层偏大时跳过)。
156
- - **配色方案**:主色深黑 `#0D0D12`,辅色品红 `#FF2E88`、电青 `#00E5FF`
157
- (RGB 分离故障色),文字色白 `#FFFFFF`(带品红/青色错位重影)。
158
- - **字体建议**:中文标题用 Noto Sans SC Black,字号占画面高度 18%~25%,
159
- 居中,允许轻微 RGB 错位/扫描线质感,但笔画必须完整可辨认。
290
+ ## 8. magazine · 杂志编辑风
291
+
292
+ - **适用场景**:深度访谈、人物特写、商业分析、年度盘点;需要"质感/信任感"时用它,
293
+ 公众号长文首选。
294
+ - **构图公式**:三分法。右侧三分之一为黑白质感人物肖像(泛指描述);
295
+ 左侧大面积留白;标题放左侧下方安全区内,标题上方一条品牌色/砖红细线。
296
+ 标题字占画面高度 14%~20%。
297
+ - **配色方案**:主色暖灰 `#E8E4DC`(浅底)或墨黑 `#141414`(深底版),
298
+ 辅色砖红 `#B03A2E`(细线/点缀),文字色炭黑 `#2B2B2B`(浅底)/
299
+ 米白 `#F5F1E8`(深底)。
300
+ - **标题写法规范**:短标题 4~8 字,字体用 Noto Serif SC Bold(宋体感)或思源黑体 Bold;
301
+ 标题上方一条细色线是杂志感的灵魂,别省略;深底/浅底同一系列只用一种。
160
302
  - **prompt 配方**:
161
303
  ```
162
- 中文:赛博故障艺术风封面,深黑背景,RGB通道分离错位、扫描线与数字噪点,
163
- 霓虹品红与电青色块碎裂,中央主体为像素化消散的全息人脸/城市剪影,
164
- 中央白色粗黑中文标题"{TITLE}"带轻微故障错位,笔画完整可辨认,
165
- 前卫,数字 decay 美学,横构图16:9,尺寸1200×675,除标题外无其他文字。
304
+ 中文:杂志编辑风封面,暖灰色影棚背景,右侧三分之一处黑白质感人物肖像,
305
+ 左侧大面积留白,左侧下方(中央垂直安全区内)炭黑色典雅粗体中文标题"{TITLE}",
306
+ 标题上方一条砖红色细线,克制高级,杂志封面美学,
307
+ 横构图16:9,尺寸1200×675,除标题外无其他文字。
166
308
 
167
- EN: Cyberpunk glitch art cover, dark black background with RGB channel-split
168
- distortion, scanlines and digital noise, neon magenta and cyan shards. A
169
- fragmented holographic face / city silhouette dissolving into pixels at
170
- center. Bold white Chinese title "{TITLE}" with slight glitch offset at the
171
- center, strokes complete and legible. Edgy, digital decay aesthetic,
172
- landscape 16:9, 1200x675, no other text.
309
+ EN: Editorial magazine style cover, warm light-gray studio background,
310
+ dramatic black-and-white portrait in the right third, generous negative
311
+ space on the left. Dark charcoal elegant bold Chinese title "{TITLE}" at
312
+ lower left, with a thin brick-red rule line above it. Refined, minimal,
313
+ magazine cover aesthetic, landscape 16:9, 1200x675, no other text.
173
314
  ```
174
315
  - **避坑**:
175
- - 故障特效开度要收:标题笔画一旦被" glitch" 吃掉变成乱码,整张图作废;
176
- 明确要求"笔画完整可辨认"。
177
- - 噪点/扫描线过密会在公众号小图上糊成一团——要求"适度噪点"。
178
- - 该风格视觉刺激强,连续多篇使用会疲劳:系列中最多穿插 1~2 次。
316
+ - 人物肖像必须用"泛指"描述(商务人士/学者剪影),不得出现可识别的真实人物长相。
317
+ - 留白处别手痒加装饰字——杂志风的力量全在克制。
318
+ - 深底版和浅底版不要混用。
179
319
 
180
320
  ---
181
321
 
@@ -191,3 +331,16 @@
191
331
  标题字逐字写进 prompt;生成后第一件事就是检查标题字。
192
332
  示例图在 `assets/examples/`(`<style>.png` 1200×675 主图 + `<style>-wechat.png`
193
333
  900×383 公众号裁剪版),选风格前先看图。
334
+
335
+ ## 风格速查
336
+
337
+ | 风格 | 一句话 | 标题字号占比 | 首选题材 |
338
+ |---|---|---|---|
339
+ | gan-huo | 萌物 + 巨型标题 + 彩色数字 + 胶囊标签条 | 25%~32% | 干货清单/评测/盘点 |
340
+ | big-type | 标题即画面,字占近半,分两行撞色 | 35%~45% | 观点/深度/发布宣言 |
341
+ | brand-launch | 品牌色大标题 + 产品展示 + 卖点图标条 | 20%~28% | 产品发布/版本更新 |
342
+ | tutorial-steps | 笔刷横条标题 + 步骤卡片拼贴 + 序号章 | 22%~30% | 教程/上手指南 |
343
+ | ip-fun | 巨型彩色数字 + 趣味 IP + 署名 | 数字 20%+ | 实战案例/数据战报 |
344
+ | news-flash | 两行大字 + 胶囊问句 + 人物点缀 | 22%~30% | 资讯/解读/快讯 |
345
+ | minimal | 大面积留白,一处点缀,小字标题 | 8%~12% | 随笔/书评/轻阅读 |
346
+ | magazine | 三分法 + 人物肖像 + 细线标题 | 14%~20% | 访谈/商业分析/盘点 |
@@ -880,6 +880,10 @@ def resolve_image(src, md_path, out_dir, assets, asset_root):
880
880
  if os.path.exists(candidate):
881
881
  abs_path = candidate
882
882
  if not os.path.exists(abs_path):
883
+ # 本地文件缺失:登记缺失记录再返回原 src(HTML 保留占位 <img>,
884
+ # embed 会跳过并提示"未内嵌",上传清单与计数也不会漏掉这一项)
885
+ assets.append({"src": src, "local": None, "remote": False,
886
+ "missing": True})
883
887
  return src
884
888
  img_dir = os.path.join(out_dir, "images")
885
889
  os.makedirs(img_dir, exist_ok=True)
@@ -1435,9 +1439,12 @@ def write_manifest(out_dir, slug, title, assets, diagrams, theme, footnotes,
1435
1439
  size = "%.0f KB" % kb if kb < 1024 else "%.1f MB" % (kb / 1024)
1436
1440
  if a.get("remote"):
1437
1441
  lines.append("| %d | %s(远程) | %s | `%s` |" % (idx, a["src"], size, a["src"]))
1442
+ elif a.get("missing"):
1443
+ lines.append("| %d | ⚠ 本地文件缺失:`%s` | — | `%s` |"
1444
+ % (idx, a["src"], a["src"]))
1438
1445
  else:
1439
1446
  lines.append("| %d | `%s` | %s | `%s` |"
1440
- % (idx, a.get("basename", ""), size, a["src"]))
1447
+ % (idx, a.get("basename") or "", size, a["src"]))
1441
1448
  lines.append("")
1442
1449
  lines.append("图片目录:`images/`(公众号单图建议 < 2 MB,宽度 1080 px 左右)")
1443
1450
  lines.append("")