@topmindspace/tms-skills 0.3.6 → 0.3.9

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 (54) hide show
  1. package/CHANGELOG.md +74 -0
  2. package/README.en.md +4 -4
  3. package/README.md +4 -4
  4. package/bin/tms-skills.js +9 -1
  5. package/package.json +1 -1
  6. package/top-ppt-html/README.en.md +2 -2
  7. package/top-ppt-html/README.md +1 -1
  8. package/top-ppt-html/assets/examples/2026-09-09-architecture-graphite-dark.html +43 -14
  9. package/top-ppt-html/assets/examples/2026-09-09-presentation-business-blue.html +43 -14
  10. package/top-ppt-html/assets/examples/2026-09-09-research-mckinsey.html +43 -14
  11. package/top-ppt-html/assets/examples/2026-09-26-topmind-tms-skills-showcase.html +43 -14
  12. package/top-ppt-html/assets/pptx-export.js +42 -13
  13. package/top-ppt-html/assets/style-gallery.html +1 -1
  14. package/top-ppt-html/assets/templates/architecture.html +45 -15
  15. package/top-ppt-html/assets/templates/presentation.html +45 -15
  16. package/top-ppt-html/assets/templates/research.html +45 -15
  17. package/top-ppt-html/scripts/audit_css.py +1 -1
  18. package/top-ppt-html/scripts/build_pptx.js +136 -25
  19. package/top-ppt-html/scripts/layout-constants.json +1 -1
  20. package/top-ppt-html/scripts/regression.py +3 -3
  21. package/top-ppt-html/scripts/render_compare.py +1 -1
  22. package/top-ppt-html/scripts/scaffold_report.py +1 -1
  23. package/top-ppt-html/scripts/sync_runtime.py +14 -14
  24. package/top-ppt-html/scripts/validate_report.py +4 -0
  25. package/topmind-cover/README.en.md +1 -1
  26. package/topmind-cover/README.md +1 -1
  27. package/topmind-cover/SKILL.md +3 -1
  28. package/topmind-cover/assets/examples/big-type-wechat.png +0 -0
  29. package/topmind-cover/assets/examples/big-type.png +0 -0
  30. package/topmind-cover/assets/examples/brand-launch-wechat.png +0 -0
  31. package/topmind-cover/assets/examples/brand-launch.png +0 -0
  32. package/topmind-cover/assets/examples/gan-huo-wechat.png +0 -0
  33. package/topmind-cover/assets/examples/gan-huo.png +0 -0
  34. package/topmind-cover/assets/examples/ip-fun-wechat.png +0 -0
  35. package/topmind-cover/assets/examples/ip-fun.png +0 -0
  36. package/topmind-cover/assets/examples/magazine-wechat.png +0 -0
  37. package/topmind-cover/assets/examples/magazine.png +0 -0
  38. package/topmind-cover/assets/examples/minimal-wechat.png +0 -0
  39. package/topmind-cover/assets/examples/minimal.png +0 -0
  40. package/topmind-cover/assets/examples/news-flash-wechat.png +0 -0
  41. package/topmind-cover/assets/examples/news-flash.png +0 -0
  42. package/topmind-cover/assets/examples/overview.png +0 -0
  43. package/topmind-cover/assets/examples/tutorial-steps-wechat.png +0 -0
  44. package/topmind-cover/assets/examples/tutorial-steps.png +0 -0
  45. package/topmind-cover/references/cover-styles.md +65 -22
  46. package/topmind-cover/references/impact-language.md +38 -0
  47. package/topmind-cover/scripts/crop-cover.py +19 -13
  48. package/topmind-wechat-post/README.en.md +2 -2
  49. package/topmind-wechat-post/README.md +2 -2
  50. package/topmind-wechat-post/SKILL.md +1 -1
  51. package/topmind-wechat-post/scripts/md2wechat.py +12 -3
  52. package/topmind-x-article/README.en.md +1 -1
  53. package/topmind-x-article/README.md +1 -1
  54. package/topmind-x-article/scripts/md2x.py +7 -2
@@ -48,9 +48,9 @@ prompt 配方为中英双语模板:`{TITLE}` 为标题文字占位符(短标
48
48
  示例(虚构演示):"实测18篇:避开7个坑"。
49
49
  - **prompt 配方**:
50
50
  ```
51
- 中文:爆款干货风中文封面。字体量级:全图只有一个视觉重心——中央米白色超粗黑中文标题"{TITLE}"(逐字准确),标题字高占画面 1/3,与深底形成最大明度差;顶部小字眉题"{EYEBROW}"(筛选口径,如"18篇 · 逐条实测")只做开场,字号约为标题的 1/3。配色系统:深炭灰 #2B2B30 全幅深底(沉稳可信,走极端明度);暖橙 #FF8A3D 只做细线框点缀;朱红 #E6392B 方形印章(右上角,内写白色小字"{NUMBER}")是全图唯一的跳色、唯一的记忆点。构图能量:一条纵向主阅读动线——眉题(为什么信)→ 大标题(这是什么)→ 印章(数据背书);左下角一只小巧原创小形象({CHARACTER},占画面约15%)做动线落点,绝不遮挡标题。质感细节:深底必须加一层细腻胶片噪点颗粒 + 一道极淡的斜向光影,拒绝死平纯色的塑料感。除标题、眉题、印章、形象外无其他文字;所有文字与关键元素落在中央垂直60%安全区内,横构图16:9,尺寸1200×675。
51
+ 中文:爆款干货风中文封面。字体量级:全图只有一个视觉重心——中央米白色超粗黑中文标题"{TITLE}"(逐字准确),标题字高占画面 1/3,与深底形成最大明度差;顶部小字眉题"{EYEBROW}"(筛选口径,如"18篇 · 逐条实测")只做开场,字号约为标题的 1/3。配色系统:深炭灰 #2B2B30 全幅深底(沉稳可信,走极端明度);暖橙 #FF8A3D 只做细线框点缀;朱红 #E6392B 方形印章(右上角,内写白色小字"{NUMBER}")是全图唯一的跳色、唯一的记忆点。构图能量:一条纵向主阅读动线——眉题(为什么信)→ 大标题(这是什么)→ 印章(数据背书);左下角一只小巧原创小形象({CHARACTER},占画面约15%)做动线落点,绝不遮挡标题。质感细节:深底必须加一层细腻胶片噪点颗粒 + 一道极淡的斜向光影,拒绝死平纯色的塑料感。文字特效:标题里挑钩子词做三处装饰,全句只用米白、朱红、暖橙三种颜色——①把一个钩子词(如“翻车”)换成朱红 #E6392B,其余字保持米白;②另一个钩子词下方垫一块朱红 #E6392B 实色矩形,色块高度为字高的 1.2 倍,米白字压在色块上、明暗对立(色块衬底的字不再换色);③用暖橙 #FF8A3D 马克笔笔触把标题里的数字钩子(如“7”)圈起来,圈略大于字、不压笔画,只圈一处。除标题、眉题、印章、形象外无其他文字;所有文字与关键元素落在中央垂直60%安全区内,横构图16:9,尺寸1200×675。
52
52
 
53
- EN: High-impact Chinese viral-listicle cover. Type scale: exactly one visual anchor — a centered off-white extra-bold Chinese title "{TITLE}" (exact), glyph height 1/3 of the frame, maximum brightness contrast against the dark ground; a small top eyebrow "{EYEBROW}" (selection criteria, e.g. "18 posts, tested one by one") opens the read at ~1/3 of the title size. Color system: full-bleed deep charcoal #2B2B30 ground (steady, credible, extreme-dark value); warm-orange #FF8A3D hairline frame accents only; one vermilion #E6392B square seal at top-right with white micro-text "{NUMBER}" — the single hot-color accent and the single memorable element on the page. Composition energy: one vertical reading path — eyebrow (why trust) → giant title (what it is) → seal (data proof); a tiny original mascot ({CHARACTER}, ~15% of frame) sits bottom-left as the path's landing point, never covering the title. Texture: the dark ground must carry one layer of fine film grain plus one faint diagonal light sweep — flat lifeless solid color is forbidden. No other text. All text and key elements within the central vertical 60% safe zone. Landscape 16:9, 1200×675.
53
+ EN: High-impact Chinese viral-listicle cover. Type scale: exactly one visual anchor — a centered off-white extra-bold Chinese title "{TITLE}" (exact), glyph height 1/3 of the frame, maximum brightness contrast against the dark ground; a small top eyebrow "{EYEBROW}" (selection criteria, e.g. "18 posts, tested one by one") opens the read at ~1/3 of the title size. Color system: full-bleed deep charcoal #2B2B30 ground (steady, credible, extreme-dark value); warm-orange #FF8A3D hairline frame accents only; one vermilion #E6392B square seal at top-right with white micro-text "{NUMBER}" — the single hot-color accent and the single memorable element on the page. Composition energy: one vertical reading path — eyebrow (why trust) → giant title (what it is) → seal (data proof); a tiny original mascot ({CHARACTER}, ~15% of frame) sits bottom-left as the path's landing point, never covering the title. Texture: the dark ground must carry one layer of fine film grain plus one faint diagonal light sweep — flat lifeless solid color is forbidden. Text effects: decorate the hook words with exactly three treatments — only off-white, vermilion, and warm orange in the sentence: ① recolor one hook word (e.g. “翻车”) in vermilion #E6392B, keep the rest off-white; ② slide a solid vermilion #E6392B rectangle under another hook word, block height 1.2× glyph height, off-white type over it with opposing light-dark contrast (block-backed words are not recolored); ③ circle the title's number hook (e.g. “7”) with a warm-orange #FF8A3D marker stroke, the circle slightly larger than the glyphs, never touching strokes, only one circle. No other text. All text and key elements within the central vertical 60% safe zone. Landscape 16:9, 1200×675.
54
54
  ```
55
55
  占位符:`{EYEBROW}` 眉题(≤10 字)、`{NUMBER}` 印章内数字(如"18篇",必须真实)、
56
56
  `{CHARACTER}` 原创小形象描述(如"纸飞机造型蓝色小机器人"),不得照抄任何现有 IP 形象。
@@ -60,6 +60,12 @@ prompt 配方为中英双语模板:`{TITLE}` 为标题文字占位符(短标
60
60
  - 绝不浅底:本风格必须是深底,浅底直接变味。
61
61
  - 绝不底部标签条/胶囊条:卖点只进眉题小字。
62
62
  - 绝不死平纯色底:无噪点无光影的"塑料底"一律重画。
63
+ - 绝不透视/扭曲/弧形排大标题:中文必乱码,要动感用色块和圈注代替。
64
+ - 绝不标题里超 3 种颜色:字色只许米白+朱红,暖橙圈注已是第三种,多一色就"吵"。
65
+ - 绝不竖排+旋转组合:大标题永远水平;旋转只许右上印章≤8°。
66
+ - 绝不色块吞字:色块高度≤1.3 倍字高,米白字压朱红块、明暗对立。
67
+ - 绝不装饰压笔画:圈注只圈标题里一个数字钩子、不压笔画。
68
+ - 绝不装饰超量:单图只用变色+色块+圈注 3 种,多一种即乱。
63
69
 
64
70
  ---
65
71
 
@@ -80,9 +86,9 @@ prompt 配方为中英双语模板:`{TITLE}` 为标题文字占位符(短标
80
86
  示例(虚构演示):"少,才是多"。
81
87
  - **prompt 配方**:
82
88
  ```
83
- 中文:巨字宣言风中文封面。字体量级:标题即画面——单行超大墨黑中文标题"{TITLE}"(逐字准确),横跨画面约85%宽度,字高占画面 1/3~2/5;{TYPE_STYLE}(墨黑书法体配烫金 #C9A227 描边 / 空心描边字 / 竖排大字三选一),字形本身就是情绪;标题下方深灰色陈述句副标题"{SUBTITLE}"只做注解,字号约为标题的 1/4。配色系统:明亮奶油 #FAF3E7 全幅亮底(宣言的从容感,走极端明度);墨黑标题字;烫金 #C9A227 只点缀一处笔画或一字,是全图唯一的强调。构图能量:一条横向主阅读动线——巨标题横扫全场(钩子与主题合一)→ 副标题收束落点;背景只留极淡的金色几何线条,全部给标题让路。质感细节:奶油底必须带细腻纸纹 + 书法笔锋的飞白质感,拒绝干净单调的平板底。除标题与副标题外无其他文字;所有文字在中央垂直60%安全区内,横构图16:9,尺寸1200×675。
89
+ 中文:巨字宣言风中文封面。字体量级:标题即画面——单行超大墨黑中文标题"{TITLE}"(逐字准确),横跨画面约85%宽度,字高占画面 1/3~2/5;{TYPE_STYLE}(墨黑书法体配烫金 #C9A227 描边 / 空心描边字 / 竖排大字三选一),字形本身就是情绪;标题下方深灰色陈述句副标题"{SUBTITLE}"只做注解,字号约为标题的 1/4。配色系统:明亮奶油 #FAF3E7 全幅亮底(宣言的从容感,走极端明度);墨黑标题字;烫金 #C9A227 只点缀一处笔画或一字,是全图唯一的强调。构图能量:一条横向主阅读动线——巨标题横扫全场(钩子与主题合一)→ 副标题收束落点;背景只留极淡的金色几何线条,全部给标题让路。质感细节:奶油底必须带细腻纸纹 + 书法笔锋的飞白质感,拒绝干净单调的平板底。文字特效:冲击力全在字形上,全句颜色不超过 3 种——①标题里的钩子词(如反常识断言词“暴跌”)字号放大到其余字的 1.5 倍,其余字保持原字号,不换行;②描边按 {TYPE_STYLE} 选型量化:“书法烫金”选型只给一处笔画或一字勾烫金 #C9A227 细描边(描边宽不超过笔画宽的 1/5,防笔画粘连);“空心描边字”选型用 2px 深灰描边、字内留白;③字后方加一层同字形、浅墨灰色、向右下错位 4px 的字,只错位一层,制造轻微立体感;描边与立体已是两种效果,绝不再加阴影。除标题与副标题外无其他文字;所有文字在中央垂直60%安全区内,横构图16:9,尺寸1200×675。
84
90
 
85
- EN: Giant-type manifesto Chinese cover. Type scale: the title IS the image — one single-line oversized ink-black Chinese title "{TITLE}" (exact), spanning ~85% of frame width, glyph height 1/3 to 2/5 of the frame; {TYPE_STYLE} (ink-black calligraphy with gold #C9A227 edge accents / outlined hollow type / vertical type) — the letterforms carry the emotion; a small dark-gray declarative subtitle "{SUBTITLE}" below only annotates, at ~1/4 of the title size. Color system: full-bleed bright cream #FAF3E7 ground (extreme-light value, the calm of a manifesto); ink-black title; gold #C9A227 accents exactly one stroke or one character — the single emphasis on the page. Composition energy: one horizontal reading path — the giant title sweeps the frame (hook and theme in one) → the subtitle lands the read; the background keeps only whisper-faint gold geometric lines, everything yields to the title. Texture: the cream ground must carry fine paper grain plus dry-brush flying-white texture in the calligraphy strokes — a clean flat ground is forbidden. No other text. All text within the central vertical 60% safe zone. Landscape 16:9, 1200×675.
91
+ EN: Giant-type manifesto Chinese cover. Type scale: the title IS the image — one single-line oversized ink-black Chinese title "{TITLE}" (exact), spanning ~85% of frame width, glyph height 1/3 to 2/5 of the frame; {TYPE_STYLE} (ink-black calligraphy with gold #C9A227 edge accents / outlined hollow type / vertical type) — the letterforms carry the emotion; a small dark-gray declarative subtitle "{SUBTITLE}" below only annotates, at ~1/4 of the title size. Color system: full-bleed bright cream #FAF3E7 ground (extreme-light value, the calm of a manifesto); ink-black title; gold #C9A227 accents exactly one stroke or one character — the single emphasis on the page. Composition energy: one horizontal reading path — the giant title sweeps the frame (hook and theme in one) → the subtitle lands the read; the background keeps only whisper-faint gold geometric lines, everything yields to the title. Texture: the cream ground must carry fine paper grain plus dry-brush flying-white texture in the calligraphy strokes — a clean flat ground is forbidden. Text effects: all impact lives in the letterforms — at most 3 colors in the line: ① enlarge the hook word (e.g. the contrarian claim word) to 1.5× the other glyphs, keep the rest at base size, no line break; ② quantify the outline per {TYPE_STYLE}: the “gold calligraphy” option outlines only one stroke or one glyph in a gold #C9A227 hairline (outline width ≤ 1/5 of stroke width, no stroke merging); the “hollow outline” option uses 2px dark-gray outline with empty interior; ③ add one same-glyph layer behind the type in light ink-gray, offset 4px down-right, a single offset only, for a subtle 3D lift; outline plus 3D is already two effects — never add a drop shadow. No other text. All text within the central vertical 60% safe zone. Landscape 16:9, 1200×675.
86
92
  ```
87
93
  占位符:`{TYPE_STYLE}` 字形处理三选一(书法烫金 / 描边空心 / 竖排),
88
94
  `{SUBTITLE}` 陈述句副标题(≤10 字,禁止问句)。
@@ -92,6 +98,12 @@ prompt 配方为中英双语模板:`{TITLE}` 为标题文字占位符(短标
92
98
  - 绝不问句/煽动式副标题:副标题只能是陈述句注解。
93
99
  - 绝不标题字高不足 1/4:字一小,宣言感全失。
94
100
  - 绝不出现第二处烫金:强调色只给一处,多一处就"吵"。
101
+ - 绝不透视变形大标题:要动感用轻微立体代替。
102
+ - 绝不一句话超 3 种颜色(含描边色、立体层颜色)。
103
+ - 绝不描边+阴影+立体三重叠加:本风格只用描边+轻微立体两种,绝不再加阴影。
104
+ - 绝不竖排+旋转组合:竖排字形不叠加任何旋转;旋转只许印章/标签类小元素≤8°,单行大标题永远水平。
105
+ - 绝不描边过粗:描边宽≤笔画宽 1/5,粗了笔画粘连。
106
+ - 绝不装饰超量:字号对比+描边+轻微立体 3 种封顶。
95
107
 
96
108
  ---
97
109
 
@@ -113,9 +125,9 @@ prompt 配方为中英双语模板:`{TITLE}` 为标题文字占位符(短标
113
125
  示例(虚构演示):"曙光 5.0:快三倍"。
114
126
  - **prompt 配方**:
115
127
  ```
116
- 中文:品牌发布风中文封面。字体量级:品牌名就是标题——顶部居中大号白色粗黑中文标题"{TITLE}"(逐字准确),字高占画面 1/4~1/3,其中品牌词"{KEYWORDS}"用荧光绿描边发光、其余纯白,是全图唯一的视觉重心;标题下一条荧光绿细线收束视觉,紧跟一排浅灰白分隔符小字卖点"{SELLING_POINTS}"(如"更快 · 更稳 · 更懂你")做背书。配色系统:深海军蓝 #0A1F44 全幅深底(深邃专业,走极端明度);荧光绿 #3DFF88 是唯一的强调色(发光描边、细线、卖点小字都用它,别处不再出现第二种颜色)。构图能量:一条纵向主阅读动线——品牌大标题(定调)→ 细线+卖点小字(背书)→ 中央下方荧光绿发光线条勾勒的抽象产品氛围({PRODUCT},线框/光影、无可读文字)做氛围落点;左上预留空白 logo 区。质感细节:深蓝底必须加一层细腻星尘噪点 + 中央一团柔和的荧光绿光晕渐变,拒绝死黑平板底。除标题、卖点小字外无其他文字;所有文字在中央垂直60%安全区内,横构图16:9,尺寸1200×675。
128
+ 中文:品牌发布风中文封面。字体量级:品牌名就是标题——顶部居中大号白色粗黑中文标题"{TITLE}"(逐字准确),字高占画面 1/4~1/3,其中品牌词"{KEYWORDS}"做色块衬底(见"文字特效"段)、其余纯白,是全图唯一的视觉重心;标题下一条荧光绿细线收束视觉,紧跟一排浅灰白分隔符小字卖点"{SELLING_POINTS}"(如"更快 · 更稳 · 更懂你")做背书。配色系统:深海军蓝 #0A1F44 全幅深底(深邃专业,走极端明度);荧光绿 #3DFF88 是唯一的强调色(色块衬底、细线、卖点小字都用它,别处不再出现第二种颜色)。构图能量:一条纵向主阅读动线——品牌大标题(定调)→ 细线+卖点小字(背书)→ 中央下方荧光绿发光线条勾勒的抽象产品氛围({PRODUCT},线框/光影、无可读文字)做氛围落点;左上预留空白 logo 区。质感细节:深蓝底必须加一层细腻星尘噪点 + 中央一团柔和的荧光绿光晕渐变,拒绝死黑平板底。文字特效:贵气来自克制,全句只用纯白、荧光绿、深海军蓝三种颜色——①品牌词“{KEYWORDS}”下方垫一块荧光绿 #3DFF88 实色矩形,色块高度为字高的 1.2 倍,字换成深海军蓝 #0A1F44 粗体压在色块上、明暗对立(色块替代原荧光绿发光描边写法,不叠加);②其余纯白标题字加一层向右下 45° 的柔和投影,投影偏移为字高的 1/10,黑色 30% 不透明度、柔和不脏;阴影不加在品牌词上,同一字不同时叠加描边和阴影。除标题、卖点小字外无其他文字;所有文字在中央垂直60%安全区内,横构图16:9,尺寸1200×675。
117
129
 
118
- EN: Brand-launch Chinese cover. Type scale: the brand name IS the title — a large white extra-bold Chinese title "{TITLE}" (exact) centered at top, glyph height 1/4 to 1/3 of the frame; the brand term "{KEYWORDS}" glows in fluorescent-green outline, the rest pure white — the single visual anchor of the page; one thin fluorescent-green rule cinches the eye below the title, followed by one row of light-gray separator-style selling points "{SELLING_POINTS}" (e.g. "更快 · 更稳 · 更懂你") as proof. Color system: full-bleed deep navy #0A1F44 ground (deep, professional, extreme-dark value); fluorescent green #3DFF88 is the ONLY accent color (glowing outlines, hairlines, selling-point micro-text all use it — no second color anywhere). Composition energy: one vertical reading path — brand title (sets the tone) → rule plus selling points (proof) → an abstract product atmosphere drawn in glowing fluorescent-green lines ({PRODUCT}, wireframe and light, no readable text) lower-center as the atmospheric landing; empty logo area reserved top-left. Texture: the navy ground must carry fine stardust grain plus one soft fluorescent-green halo glow at center — a dead flat black ground is forbidden. No other text. All text within the central vertical 60% safe zone. Landscape 16:9, 1200×675.
130
+ EN: Brand-launch Chinese cover. Type scale: the brand name IS the title — a large white extra-bold Chinese title "{TITLE}" (exact) centered at top, glyph height 1/4 to 1/3 of the frame; the brand term "{KEYWORDS}" glows in fluorescent-green outline, the rest pure white — the single visual anchor of the page; one thin fluorescent-green rule cinches the eye below the title, followed by one row of light-gray separator-style selling points "{SELLING_POINTS}" (e.g. "更快 · 更稳 · 更懂你") as proof. Color system: full-bleed deep navy #0A1F44 ground (deep, professional, extreme-dark value); fluorescent green #3DFF88 is the ONLY accent color (glowing outlines, hairlines, selling-point micro-text all use it — no second color anywhere). Composition energy: one vertical reading path — brand title (sets the tone) → rule plus selling points (proof) → an abstract product atmosphere drawn in glowing fluorescent-green lines ({PRODUCT}, wireframe and light, no readable text) lower-center as the atmospheric landing; empty logo area reserved top-left. Texture: the navy ground must carry fine stardust grain plus one soft fluorescent-green halo glow at center — a dead flat black ground is forbidden. Text effects: premium comes from restraint — only pure white, fluorescent green, and deep navy in the line: ① slide a solid fluorescent-green #3DFF88 rectangle under the brand term “{KEYWORDS}”, block height 1.2× glyph height, type set in deep-navy #0A1F44 bold over it with opposing light-dark contrast (the block replaces the glowing-outline treatment — never stacked); ② the remaining pure-white title glyphs get one soft drop shadow at 45° down-right, offset 1/10 of glyph height, black at 30% opacity, soft and clean; no shadow on the brand term — one glyph never carries outline and shadow together. No other text. All text within the central vertical 60% safe zone. Landscape 16:9, 1200×675.
119
131
  ```
120
132
  占位符:`{KEYWORDS}` 品牌词、`{PRODUCT}` 产品氛围描述、`{SELLING_POINTS}` 分隔符小字(≤12 字);
121
133
  真实 logo 必须后期贴图,绝不用 AI 生成 logo。
@@ -125,6 +137,12 @@ prompt 配方为中英双语模板:`{TITLE}` 为标题文字占位符(短标
125
137
  - 绝不图标式卖点条:卖点只用一排分隔符小字。
126
138
  - 绝不 AI 生成 logo:真实 logo 必须后期贴图。
127
139
  - 绝不死黑无光影的底:无星尘无光晕的平板深底一律重画。
140
+ - 绝不透视变形大标题:要动感用轻微阴影代替。
141
+ - 绝不一句话超 3 种颜色:本风格只有纯白、荧光绿、深海军蓝三种。
142
+ - 绝不描边+阴影+立体三重叠加:品牌词用色块(无阴影),纯白字用阴影(无描边),同一字不同时叠加。
143
+ - 绝不竖排+旋转组合:大标题永远水平;旋转只许小元素≤8°。
144
+ - 绝不色块吞字:色块高度≤1.3 倍字高,深蓝字压荧光绿块、明暗对立。
145
+ - 绝不装饰超量:色块+轻微阴影 2 种封顶。
128
146
 
129
147
  ---
130
148
 
@@ -146,9 +164,9 @@ prompt 配方为中英双语模板:`{TITLE}` 为标题文字占位符(短标
146
164
  示例(虚构演示):"3步做出小程序"。
147
165
  - **prompt 配方**:
148
166
  ```
149
- 中文:教程步骤风中文封面。字体量级:标题做视觉锚——顶部中央墨色毛笔书法体大字标题"{TITLE}"(逐字准确),字高占画面约 1/3,一字千钧镇住全场;底部时间线上三个线框空心大数字"{N1}""{N2}""{N3}"是节奏钩子,字号约为标题的 1/2,每数字下方配极简短句"{S1}""{S2}""{S3}"(每句≤4字);右上角小字点睛"{TIP}"(≤8字)只做注脚。配色系统:宣纸米 #F2EDE0 全幅底(温润,走极端浅明度);墨黑书法标题;赭石 #B5651D 只给时间线细线与线框数字,是全图唯一的强调色。构图能量:一条"镇场→展开"动线——顶部书法大标题定调 → 右上点睛提示 → 底部横向时间线横向展开三步;大面积宣纸留白,步骤区只占底部一条。质感细节:宣纸底必须带淡墨晕染纹理 + 细腻纸纤维质感,拒绝死白平板底。除上述文字外无其他文字;所有文字在中央垂直60%安全区内,文人气、克制,横构图16:9,尺寸1200×675。
167
+ 中文:教程步骤风中文封面。字体量级:标题做视觉锚——顶部中央墨色毛笔书法体大字标题"{TITLE}"(逐字准确),字高占画面约 1/3,一字千钧镇住全场;底部时间线上三个线框空心大数字"{N1}""{N2}""{N3}"是节奏钩子,字号约为标题的 1/2,每数字下方配极简短句"{S1}""{S2}""{S3}"(每句≤4字);右上角小字点睛"{TIP}"(≤8字)只做注脚。配色系统:宣纸米 #F2EDE0 全幅底(温润,走极端浅明度);墨黑书法标题;赭石 #B5651D 只给时间线细线与线框数字,是全图唯一的强调色。构图能量:一条"镇场→展开"动线——顶部书法大标题定调 → 右上点睛提示 → 底部横向时间线横向展开三步;大面积宣纸留白,步骤区只占底部一条。质感细节:宣纸底必须带淡墨晕染纹理 + 细腻纸纤维质感,拒绝死白平板底。文字特效:教程风靠“划重点”指路,全句只用墨黑、赭石两种颜色——①标题里的关键词(如动词“做出”)换成赭石 #B5651D,其余字保持墨黑;②在关键词下方画一条手绘感波浪下划线,赭石 #B5651D,线宽为笔画宽度的 1/2,略带抖动、不压笔画;装饰只用这 2 种,不再加箭头。除上述文字外无其他文字;所有文字在中央垂直60%安全区内,文人气、克制,横构图16:9,尺寸1200×675。
150
168
 
151
- EN: Tutorial-steps Chinese cover. Type scale: the title is the visual anchor — a large ink-brush calligraphy title "{TITLE}" (exact) top-center, glyph height ~1/3 of the frame, one stroke worth a thousand words holding the whole page; on the bottom timeline, three large wireframe hollow numbers "{N1}" "{N2}" "{N3}" act as rhythm hooks at ~1/2 the title size, each with a minimal short phrase below ("{S1}" "{S2}" "{S3}", max 4 characters each); a small accent note "{TIP}" (max 8 characters) top-right as footnote only. Color system: full-bleed rice-paper beige #F2EDE0 ground (warm, extreme-light value); ink-black calligraphy title; ochre #B5651D reserved for the timeline hairline and hollow numbers — the single accent color on the page. Composition energy: one "command then unfold" path — the calligraphy title sets the tone → the top-right note hints → the horizontal timeline unfolds three steps across the bottom; vast rice-paper negative space, the steps occupy only one bottom band. Texture: the paper ground must carry faint ink-bleed texture plus fine paper-fiber grain — a dead flat white ground is forbidden. No other text. All text within the central vertical 60% safe zone. Scholarly, restrained. Landscape 16:9, 1200×675.
169
+ EN: Tutorial-steps Chinese cover. Type scale: the title is the visual anchor — a large ink-brush calligraphy title "{TITLE}" (exact) top-center, glyph height ~1/3 of the frame, one stroke worth a thousand words holding the whole page; on the bottom timeline, three large wireframe hollow numbers "{N1}" "{N2}" "{N3}" act as rhythm hooks at ~1/2 the title size, each with a minimal short phrase below ("{S1}" "{S2}" "{S3}", max 4 characters each); a small accent note "{TIP}" (max 8 characters) top-right as footnote only. Color system: full-bleed rice-paper beige #F2EDE0 ground (warm, extreme-light value); ink-black calligraphy title; ochre #B5651D reserved for the timeline hairline and hollow numbers — the single accent color on the page. Composition energy: one "command then unfold" path — the calligraphy title sets the tone → the top-right note hints → the horizontal timeline unfolds three steps across the bottom; vast rice-paper negative space, the steps occupy only one bottom band. Texture: the paper ground must carry faint ink-bleed texture plus fine paper-fiber grain — a dead flat white ground is forbidden. Text effects: the tutorial voice “marks the key point” — only ink black and ochre in the line: ① recolor the title's keyword (e.g. the verb) in ochre #B5651D, keep the rest ink black; ② draw one hand-drawn wavy underline beneath the keyword in ochre #B5651D, line width 1/2 of stroke width, slightly wobbly, never touching strokes; only these 2 treatments — no arrows. No other text. All text within the central vertical 60% safe zone. Scholarly, restrained. Landscape 16:9, 1200×675.
152
170
  ```
153
171
  占位符:`{N1..N3}` 线框数字(01/02/03)、`{S1..S3}` 短句(每句 ≤4 字,越短越安全)、
154
172
  `{TIP}` 右上点睛(≤8 字)。
@@ -158,6 +176,11 @@ prompt 配方为中英双语模板:`{TITLE}` 为标题文字占位符(短标
158
176
  - 绝不实心圆形序号章:数字只用线框空心。
159
177
  - 绝不步骤超过 3 个:超过 3 个立刻变说明书。
160
178
  - 绝不无纹理的死白底:无墨韵无纸纤维的平板底一律重画。
179
+ - 绝不透视变形大标题。
180
+ - 绝不标题超 3 种颜色:本风格只用墨黑+赭石两种,多一色就杂。
181
+ - 绝不竖排+旋转组合:大标题永远水平。
182
+ - 绝不装饰压笔画:下划线线宽≤笔画宽 1/2,不压字。
183
+ - 绝不装饰超量:变色+手绘下划线 2 种封顶,不再加箭头。
161
184
 
162
185
  ---
163
186
 
@@ -183,9 +206,9 @@ prompt 配方为中英双语模板:`{TITLE}` 为标题文字占位符(短标
183
206
  示例(虚构演示):"21天接单挑战"。
184
207
  - **prompt 配方**:
185
208
  ```
186
- 中文:IP 趣味风中文封面。字体量级:标题压阵——顶部叠放深棕色(#4A2C0A)超大粗黑中文标题"{TITLE}"(逐字准确),字高占画面 1/4~1/3;下方深棕色小字副标题"{SUBTITLE}"(≤12字)只做注解;标题与 IP 形象上下叠放,禁止左右对半分区。配色系统:橙黄暖色 #FF9E2C → #FFC53D 全幅主色(阳光热闹,走高饱和暖色);深棕 #4A2C0A 标题在暖底上形成对比重心;右下角圆形印章内"{NUMBER}"小字(必须真实)用朱红 #E6392B,是全图唯一的跳色注脚。构图能量:一条对角线动线——顶部大标题(情绪钩子)→ 下半部原创趣味 IP 形象({CHARACTER},如戴贝雷帽的狐狸画家在画架前作画,暖色调,约占画面40%)做记忆点舞台 → 右下印章(数据注脚)收束;左下角竖排小字署名"{BYLINE}"做边角点缀,不进主视觉流。质感细节:暖色底必须加一层细腻纸纹颗粒 + 一团柔和的阳光光晕,拒绝塑料感平滑渲染。除上述文字外无其他文字;所有文字在中央垂直60%安全区内,横构图16:9,尺寸1200×675。
209
+ 中文:IP 趣味风中文封面。字体量级:标题压阵——顶部叠放深棕色(#4A2C0A)超大粗黑中文标题"{TITLE}"(逐字准确),字高占画面 1/4~1/3;下方深棕色小字副标题"{SUBTITLE}"(≤12字)只做注解;标题与 IP 形象上下叠放,禁止左右对半分区。配色系统:橙黄暖色 #FF9E2C → #FFC53D 全幅主色(阳光热闹,走高饱和暖色);深棕 #4A2C0A 标题在暖底上形成对比重心;右下角圆形印章内"{NUMBER}"小字(必须真实)用朱红 #E6392B,是全图唯一的跳色注脚。构图能量:一条对角线动线——顶部大标题(情绪钩子)→ 下半部原创趣味 IP 形象({CHARACTER},如戴贝雷帽的狐狸画家在画架前作画,暖色调,约占画面40%)做记忆点舞台 → 右下印章(数据注脚)收束;左下角竖排小字署名"{BYLINE}"做边角点缀,不进主视觉流。质感细节:暖色底必须加一层细腻纸纹颗粒 + 一团柔和的阳光光晕,拒绝塑料感平滑渲染。文字特效:潮玩感来自“贴纸+徽章”,全句颜色不超过 3 种——①标题里的关键词(如挑战词“接单”)原位下方垫一块深棕 #4A2C0A 实色矩形(色块在字下方、标题总字数不变,严禁把关键词复制一份做成独立元素),色块高度为字高的 1.2 倍,字换成米白色压在色块上、明暗对立;②标题字后方加一层同字形、朱红 #E6392B、向右下错位 4px 的字,只错位一层,做出徽章凸起的轻微立体感;色块与立体已是两种效果,不再加描边和阴影。除上述文字外无其他文字;所有文字在中央垂直60%安全区内,横构图16:9,尺寸1200×675。
187
210
 
188
- EN: Fun-IP Chinese cover. Type scale: the title holds the fort — a stacked top dark-brown (#4A2C0A) extra-bold Chinese title "{TITLE}" (exact), glyph height 1/4 to 1/3 of the frame, with a small dark-brown subtitle "{SUBTITLE}" (max 12 characters) below as annotation only; title and IP character stack vertically — a left-right split layout is forbidden. Color system: warm orange-yellow #FF9E2C → #FFC53D full-bleed ground (sunny, high-saturation warmth); the dark-brown #4A2C0A title forms the contrast anchor on the warm ground; a small round seal bottom-right with "{NUMBER}" micro-text (must be factual) in vermilion #E6392B — the single accent footnote on the page. Composition energy: one diagonal reading path — top title (emotion hook) → an original playful IP character ({CHARACTER}, e.g. a beret-wearing fox painter at an easel, warm tones, ~40% of frame) staging the lower half as the memorable element → bottom-right seal (data footnote) closes the read; a small vertical byline "{BYLINE}" bottom-left as a corner garnish, kept out of the main visual flow. Texture: the warm ground must carry fine paper-grain plus a soft sunlight halo — plasticky smooth rendering is forbidden. No other text. All text within the central vertical 60% safe zone. Landscape 16:9, 1200×675.
211
+ EN: Fun-IP Chinese cover. Type scale: the title holds the fort — a stacked top dark-brown (#4A2C0A) extra-bold Chinese title "{TITLE}" (exact), glyph height 1/4 to 1/3 of the frame, with a small dark-brown subtitle "{SUBTITLE}" (max 12 characters) below as annotation only; title and IP character stack vertically — a left-right split layout is forbidden. Color system: warm orange-yellow #FF9E2C → #FFC53D full-bleed ground (sunny, high-saturation warmth); the dark-brown #4A2C0A title forms the contrast anchor on the warm ground; a small round seal bottom-right with "{NUMBER}" micro-text (must be factual) in vermilion #E6392B — the single accent footnote on the page. Composition energy: one diagonal reading path — top title (emotion hook) → an original playful IP character ({CHARACTER}, e.g. a beret-wearing fox painter at an easel, warm tones, ~40% of frame) staging the lower half as the memorable element → bottom-right seal (data footnote) closes the read; a small vertical byline "{BYLINE}" bottom-left as a corner garnish, kept out of the main visual flow. Texture: the warm ground must carry fine paper-grain plus a soft sunlight halo — plasticky smooth rendering is forbidden. Text effects: the collectible-toy feel comes from “sticker plus badge” — at most 3 colors in the line: ① slide a solid dark-brown #4A2C0A rectangle under the title's keyword in place (e.g. the challenge word; block sits beneath the glyphs, total character count unchanged — never duplicate the keyword as a separate element), block height 1.2× glyph height, off-white type over it with opposing light-dark contrast; ② add one same-glyph layer behind the title in vermilion #E6392B, offset 4px down-right, a single offset only, for a badge-like subtle 3D lift; block plus 3D is already two effects — never add outline or shadow. No other text. All text within the central vertical 60% safe zone. Landscape 16:9, 1200×675.
189
212
  ```
190
213
  占位符:`{SUBTITLE}` 副标题(≤12 字)、`{NUMBER}` 印章内数字(如"30天",必须真实)、
191
214
  `{BYLINE}` 边角署名(如"@阿狐画画")、`{CHARACTER}` 原创趣味 IP 形象描述,
@@ -196,6 +219,12 @@ prompt 配方为中英双语模板:`{TITLE}` 为标题文字占位符(短标
196
219
  - 绝不冷色调主色:本风格必须是暖色,冷底直接变味。
197
220
  - 绝不形象遮挡标题字:形象是记忆点舞台,占比可到 40%,但吃字就作废。
198
221
  - 绝不塑料感平滑渲染:无纸纹无颗粒的"CG 塑料感"一律重画。
222
+ - 绝不透视变形大标题:要动感用轻微立体代替。
223
+ - 绝不一句话超 3 种颜色。
224
+ - 绝不描边+阴影+立体三重叠加:本风格只用色块+轻微立体,不再加描边和阴影。
225
+ - 绝不竖排+旋转组合:左下竖排署名保持不转;旋转只许右下印章≤8°,大标题永远水平。
226
+ - 绝不色块吞字:色块高度≤1.3 倍字高,米白字压深棕块、明暗对立。
227
+ - 绝不装饰超量:色块+立体 2 种封顶。
199
228
 
200
229
  ---
201
230
 
@@ -209,25 +238,30 @@ prompt 配方为中英双语模板:`{TITLE}` 为标题文字占位符(短标
209
238
  右下角落生活静物(给"正在发生"的现场感)。
210
239
  - 点缀手法:俯视桌面静物(报纸/咖啡/闹钟)给氛围,点缀不进文字区。
211
240
  - 纸感来自质感:纸纹米底 + 大面积空旷,留白就是呼吸感。
212
- - **配色故事**:纸纹米 `#F4F1E8` 做主色(纸感、阅读感);标题纯黑单色
213
- (快讯的干脆,单色是本风格的魂);静物保留真实色彩(红闹钟是唯一跳色,小面积)。
241
+ - **配色故事**:纸纹米 `#F4F1E8` 做主色(纸感、阅读感);标题以纯黑为主打底、爆点关键词做朱红点睛
242
+ (快讯的干脆来自纯黑的利落,朱红只给爆点词一处);静物保留真实色彩(红闹钟是唯一跳色,小面积)。
214
243
  - **标题写法规范**:
215
244
  - 短标题 4~6 字,纯黑粗黑单行,如"今日AI速览",字高占画面约 1/3。
216
245
  - 顶部眉题小字交代栏目/时效(如"晨间快讯 · 每日更新"),字号约为标题的 25%。
217
- - 感叹号/问号至多一个;标题里不出现彩色字。
246
+ - 感叹号/问号至多一个;标题里彩色只给爆点关键词一处(朱红)。
218
247
  - **标题文案提炼公式**:时间范围 + 领域 + "速览/必看"。
219
248
  示例(虚构演示):"一周AI大事"。
220
249
  - **prompt 配方**:
221
250
  ```
222
- 中文:资讯快报风中文封面。字体量级:标题是绝对视觉重心——左上纯黑色单行超大粗黑中文标题"{TITLE}"(逐字准确),字高占画面 1/3;单色即干脆,标题里不出现任何彩色字;标题上方顶部眉题小字"{EYEBROW}"(栏目/时效,如"晨间快讯 · 每日更新",必须真实)交代上下文,字号约为标题的 1/4。配色系统:纸纹米 #F4F1E8 全幅主色(纸感、阅读感,走极端浅明度);标题纯黑单色——单色是本风格的魂;右下角俯视桌面静物({PROPS},如一叠报纸、一杯冒热气的咖啡、一只红色小闹钟,2~3件)保留真实色彩,其中红色小闹钟是全图唯一的跳色。构图能量:一条"时效→主题→现场"动线——眉题(时效)→ 大标题(主题)→ 右下静物("正在发生"的现场感落点);静物只做氛围点缀,绝不进文字区。质感细节:纸底必须带干净细腻的纸纹 + 一处真实的纸张折痕或柔和阴影,拒绝死平无质感的白底,也拒绝做旧脏污。除标题、眉题、静物外无其他文字;所有文字与关键元素落在中央垂直60%安全区内,横构图16:9,尺寸1200×675。
251
+ 中文:资讯快报风中文封面。字体量级:标题是绝对视觉重心——左上纯黑色单行超大粗黑中文标题"{TITLE}"(逐字准确),字高占画面 1/3;标题以纯黑为主打底,爆点关键词做朱红点睛(见“文字特效”段),其余字一律纯黑;标题上方顶部眉题小字"{EYEBROW}"(栏目/时效,如"晨间快讯 · 每日更新",必须真实)交代上下文,字号约为标题的 1/4。配色系统:纸纹米 #F4F1E8 全幅主色(纸感、阅读感,走极端浅明度);标题纯黑单色——单色是本风格的魂;右下角俯视桌面静物({PROPS},如一叠报纸、一杯冒热气的咖啡、一只红色小闹钟,2~3件)保留真实色彩,其中红色小闹钟是全图唯一的跳色。构图能量:一条"时效→主题→现场"动线——眉题(时效)→ 大标题(主题)→ 右下静物("正在发生"的现场感落点);静物只做氛围点缀,绝不进文字区。质感细节:纸底必须带干净细腻的纸纹 + 一处真实的纸张折痕或柔和阴影,拒绝死平无质感的白底,也拒绝做旧脏污。文字特效:突发感靠“爆点词炸出来”,标题里只用纯黑、朱红两种颜色——①标题里的爆点关键词(如“暴跌”)换成朱红 #E6392B,其余字保持纯黑;②爆点词字号放大到其余字的 1.5 倍,其余字保持原字号,不换行;③从标题向右下静物方向画一条朱红 #E6392B 手绘箭头,只画一条,线条粗细均匀、不压字,制造“正在发生”的现场感。除标题、眉题、静物外无其他文字;所有文字与关键元素落在中央垂直60%安全区内,横构图16:9,尺寸1200×675。
223
252
 
224
- EN: News-flash Chinese cover. Type scale: the title is the absolute visual anchor — a huge solid-black single-line extra-bold Chinese title "{TITLE}" (exact) at upper-left, glyph height 1/3 of the frame; monochrome IS the attitude, zero colored characters inside the title; a small top eyebrow "{EYEBROW}" (column/timeliness, e.g. "晨间快讯 · 每日更新", must be factual) sets context above the title at ~1/4 of the title size. Color system: full-bleed paper-beige #F4F1E8 ground (extreme-light value); pure-black monochrome title; a top-down desk still life bottom-right ({PROPS}, e.g. a stack of newspapers, a steaming coffee cup, a small red alarm clock, 2–3 items), the small red alarm clock the single accent color on the page. Composition energy: one "timeliness → theme → scene" path — eyebrow (timeliness) → big title (theme) → bottom-right still life (the "happening now" landing); the still life is atmosphere only, never entering the text zone. Texture: the paper ground must carry clean fine paper grain plus one real paper crease or soft shadow — a dead flat textureless ground is forbidden, and so is grimy distressed aging. No other text. All text and key elements within the central vertical 60% safe zone. Landscape 16:9, 1200×675.
253
+ EN: News-flash Chinese cover. Type scale: the title is the absolute visual anchor — a huge solid-black single-line extra-bold Chinese title "{TITLE}" (exact) at upper-left, glyph height 1/3 of the frame; monochrome IS the attitude, zero colored characters inside the title; a small top eyebrow "{EYEBROW}" (column/timeliness, e.g. "晨间快讯 · 每日更新", must be factual) sets context above the title at ~1/4 of the title size. Color system: full-bleed paper-beige #F4F1E8 ground (extreme-light value); pure-black monochrome title; a top-down desk still life bottom-right ({PROPS}, e.g. a stack of newspapers, a steaming coffee cup, a small red alarm clock, 2–3 items), the small red alarm clock the single accent color on the page. Composition energy: one "timeliness → theme → scene" path — eyebrow (timeliness) → big title (theme) → bottom-right still life (the "happening now" landing); the still life is atmosphere only, never entering the text zone. Texture: the paper ground must carry clean fine paper grain plus one real paper crease or soft shadow — a dead flat textureless ground is forbidden, and so is grimy distressed aging. Text effects: breaking-news energy comes from the “exploding” keyword — only pure black and vermilion in the title: ① recolor the title's breaking keyword (e.g. “暴跌”) in vermilion #E6392B, keep the rest pure black; ② enlarge the keyword to 1.5× the other glyphs, keep the rest at base size, no line break; ③ draw one vermilion hand-drawn arrow from the title toward the bottom-right still life, a single arrow with even line weight, never covering glyphs, for the “happening now” feel. No other text. All text and key elements within the central vertical 60% safe zone. Landscape 16:9, 1200×675.
225
254
  ```
226
255
  占位符:`{EYEBROW}` 眉题(栏目/时效,≤10 字)、`{PROPS}` 桌面静物描述(2~3 件,
227
256
  与主题相关,如报纸/咖啡/闹钟)。
228
257
  - **绝不清单**:
229
- - 绝不两行撞色标题:标题必须单行纯黑,撞色+感叹号是别人的版式。
230
- - 绝不标题里出现彩色字:单色是铁律。
258
+ - 绝不两行撞色标题:标题必须单行(纯黑打底、爆点词朱红点睛),撞色+感叹号是别人的版式。
259
+ - 绝不标题里出现第二个彩色:彩色只给爆点关键词一处(朱红),多一处就“吵”。
260
+ - 绝不透视变形大标题:要动感用字号对比+箭头。
261
+ - 绝不一句话超 3 种颜色:标题里只许纯黑+朱红两种。
262
+ - 绝不竖排+旋转组合:大标题永远水平;旋转只许小元素≤8°。
263
+ - 绝不箭头压字或超过 1 条:只画一条手绘箭头,不压笔画。
264
+ - 绝不装饰超量:变色+字号对比+箭头 3 种封顶。
231
265
  - 绝不胶囊形副标题条:时效只进眉题小字。
232
266
  - 绝不静物进文字区:静物超过 3 件或压字,整张作废。
233
267
  - 绝不做旧脏纸纹:要干净纸纹 + 一处真实折痕,拒绝"脏"和"死平"两个极端。
@@ -257,9 +291,9 @@ prompt 配方为中英双语模板:`{TITLE}` 为标题文字占位符(短标
257
291
  示例(虚构演示):"慢煮生活"。
258
292
  - **prompt 配方**:
259
293
  ```
260
- 中文:极简留白风中文封面。字体量级:克制中的张力——深灰色(#3A3A38,不用纯黑)中文标题"{TITLE}"(逐字准确),字高约占画面 1/6,字重用 Bold(比 Medium 重一级,用字重而非字号制造分量),字距拉宽,"慢"的味道全在字距里;标题置于左下安全区内。配色系统:冷白 #F5F6F4 全幅主色(干净冷静,≥85% 留白,留白本身就是构图);淡墨只做一处水墨点缀;一枚朱红(#C73E2C)印泥圆点(直径约画面 2%)是全图唯一的点睛色、唯一的记忆点。构图能量:一条极简动线——朱红点睛(第一眼)→ 淡墨银杏叶(呼吸)→ 宽字距标题(落点);元素总数 ≤3(点睛+点缀+标题),多一件都是负担。质感细节:冷白底必须带一层极淡的宣纸纤维纹理,拒绝死白平板底;水墨笔触保留飞白的手工感。除标题外无其他文字;所有元素在中央垂直60%安全区内,横构图16:9,尺寸1200×675。
294
+ 中文:极简留白风中文封面。字体量级:克制中的张力——深灰色(#3A3A38,不用纯黑)中文标题"{TITLE}"(逐字准确),字高约占画面 1/6,字重用 Bold(比 Medium 重一级,用字重而非字号制造分量),字距拉宽,"慢"的味道全在字距里;标题置于左下安全区内。配色系统:冷白 #F5F6F4 全幅主色(干净冷静,≥85% 留白,留白本身就是构图);淡墨只做一处水墨点缀;一枚朱红(#C73E2C)印泥圆点(直径约画面 2%)是全图唯一的点睛色、唯一的记忆点。构图能量:一条极简动线——朱红点睛(第一眼)→ 淡墨银杏叶(呼吸)→ 宽字距标题(落点);元素总数 ≤3(点睛+点缀+标题),多一件都是负担。质感细节:冷白底必须带一层极淡的宣纸纤维纹理,拒绝死白平板底;水墨笔触保留飞白的手工感。文字特效:克制到底——标题字本身不加任何装饰(不变色、不描边、不加阴影、不旋转、不下划线);全图唯一的装饰就是那枚朱红 #C73E2C 印泥圆点点睛(直径约画面 2%,见“配色系统”段),与深灰标题字形成明暗对立;装饰种类只许这 1 种,多一种即破功。除标题外无其他文字;所有元素在中央垂直60%安全区内,横构图16:9,尺寸1200×675。
261
295
 
262
- EN: Minimalist negative-space Chinese cover. Type scale: tension inside restraint — a dark-gray (#3A3A38, never pure black) Chinese title "{TITLE}" (exact), glyph height ~1/6 of the frame, set in Bold weight (one step heavier than Medium — weight, not size, carries the presence), letter-spacing stretched wide; the "slow" feeling lives in the spacing; title sits in the lower-left safe zone. Color system: full-bleed cool white #F5F6F4 ground (clean, calm, at least 85% negative space — the emptiness IS the composition); light ink wash for one brush accent only; one vermilion (#C73E2C) seal-paste dot (~2% of frame diameter) — the single accent color and the single memorable element on the page. Composition energy: one minimal path — vermilion dot (first glance) → light-ink ginkgo leaf (breathing room) → wide-tracked title (landing); at most 3 elements total (dot, accent, title), one more is a burden. Texture: the cool-white ground must carry one whisper-faint layer of rice-paper fiber texture — a dead flat white ground is forbidden; the ink stroke keeps dry-brush flying-white handmadeness. No text besides the title. All elements within the central vertical 60% safe zone. Landscape 16:9, 1200×675.
296
+ EN: Minimalist negative-space Chinese cover. Type scale: tension inside restraint — a dark-gray (#3A3A38, never pure black) Chinese title "{TITLE}" (exact), glyph height ~1/6 of the frame, set in Bold weight (one step heavier than Medium — weight, not size, carries the presence), letter-spacing stretched wide; the "slow" feeling lives in the spacing; title sits in the lower-left safe zone. Color system: full-bleed cool white #F5F6F4 ground (clean, calm, at least 85% negative space — the emptiness IS the composition); light ink wash for one brush accent only; one vermilion (#C73E2C) seal-paste dot (~2% of frame diameter) — the single accent color and the single memorable element on the page. Composition energy: one minimal path — vermilion dot (first glance) → light-ink ginkgo leaf (breathing room) → wide-tracked title (landing); at most 3 elements total (dot, accent, title), one more is a burden. Texture: the cool-white ground must carry one whisper-faint layer of rice-paper fiber texture — a dead flat white ground is forbidden; the ink stroke keeps dry-brush flying-white handmadeness. Text effects: restraint to the end — the title glyphs carry zero decoration (no recolor, no outline, no shadow, no rotation, no underline); the single decorative accent on the page is that vermilion #C73E2C seal-paste dot (~2% of frame diameter, defined in the color system above), set against the dark-gray title with opposing light-dark contrast; exactly 1 decoration type allowed — one more breaks the style. No text besides the title. All elements within the central vertical 60% safe zone. Landscape 16:9, 1200×675.
263
297
  ```
264
298
  - **绝不清单**:
265
299
  - 绝不元素超过 3 个:对"杂物"零容忍,prompt 明确"一处""微小",防模型加云加山。
@@ -267,6 +301,11 @@ prompt 配方为中英双语模板:`{TITLE}` 为标题文字占位符(短标
267
301
  - 绝不两种以上的颜色:冷白+淡墨+一处朱红,多一色就"吵"。
268
302
  - 绝不标题贴边:留白即构图,标题必须悬在呼吸感里。
269
303
  - 绝不死白平板底:无纸纤维纹理的底一律重画。
304
+ - 绝不使用变色/旋转/手绘装饰:标题字本身零装饰,唯一的装饰是朱红印泥圆点点睛。
305
+ - 绝不装饰超量:装饰种类只许 1 种,多一种即破功。
306
+ - 绝不透视变形大标题。
307
+ - 绝不一句话超 3 种颜色:标题字色只用深灰一种。
308
+ - 绝不竖排+旋转组合:大标题永远水平;本风格连小元素旋转也不用。
270
309
 
271
310
  ---
272
311
 
@@ -289,9 +328,9 @@ prompt 配方为中英双语模板:`{TITLE}` 为标题文字占位符(短标
289
328
  示例(虚构演示):"投资人:别追风口"。
290
329
  - **prompt 配方**:
291
330
  ```
292
- 中文:杂志编辑风中文封面。字体量级:标题压前景——炭黑色典雅粗体中文标题"{TITLE}"(逐字准确,Noto Serif SC Bold 宋体感),字高占画面 1/4~1/3,居中偏下压在人物氛围之上,是全图唯一的视觉重心;标题上方一条砖红色(#A63A2A)细线定调,是杂志感的灵魂。配色系统:暖灰 #E9E5DB 全幅主色(影棚质感,走克制的中间偏浅明度);砖红 #A63A2A 只做细线,是全图唯一的强调色;标题炭黑沉稳。构图能量:一条"氛围→定调→主题"动线——全幅低对比黑白人物侧脸剪影({SUBJECT},泛指描述,如穿西装的人物侧脸剪影)退为背景氛围、不抢戏 → 砖红细线(定调)→ 大标题(主题);标题与人物上下叠放,禁止左右分区。质感细节:暖灰底必须带影棚级的细腻胶片颗粒 + 人物区一处真实的柔光阴影,拒绝塑料平滑的人像渲染。除标题外无其他文字;所有文字在中央垂直60%安全区内,克制高级,横构图16:9,尺寸1200×675。
331
+ 中文:杂志编辑风中文封面。字体量级:标题压前景——炭黑色典雅粗体中文标题"{TITLE}"(逐字准确,Noto Serif SC Bold 宋体感),字高占画面 1/4~1/3,居中偏下压在人物氛围之上,是全图唯一的视觉重心;标题上方一条砖红色(#A63A2A)细线定调,是杂志感的灵魂。配色系统:暖灰 #E9E5DB 全幅主色(影棚质感,走克制的中间偏浅明度);砖红 #A63A2A 只给细线和标题关键词两处,是全图唯一的强调色;标题炭黑沉稳。构图能量:一条"氛围→定调→主题"动线——全幅低对比黑白人物侧脸剪影({SUBJECT},泛指描述,如穿西装的人物侧脸剪影)退为背景氛围、不抢戏 → 砖红细线(定调)→ 大标题(主题);标题与人物上下叠放,禁止左右分区。质感细节:暖灰底必须带影棚级的细腻胶片颗粒 + 人物区一处真实的柔光阴影,拒绝塑料平滑的人像渲染。文字特效:杂志封面的强调全在标题排印上,标题里只用炭黑、砖红两种颜色——①标题里的关键词(如反常识断言词“别追”)换成砖红 #A63A2A,其余字保持炭黑;②关键词字号放大到其余字的 1.5 倍,其余字保持原字号,不换行;装饰只用这 2 种,留白处不加任何装饰字。除标题外无其他文字;所有文字在中央垂直60%安全区内,克制高级,横构图16:9,尺寸1200×675。
293
332
 
294
- EN: Editorial magazine-style Chinese cover. Type scale: the title presses the foreground — an elegant charcoal-black bold Chinese title "{TITLE}" (exact, Noto Serif SC Bold with serif character), glyph height 1/4 to 1/3 of the frame, centered-lower, layered over the portrait atmosphere as the single visual anchor of the page; one thin brick-red (#A63A2A) rule above the title sets the tone — the soul of the magazine feel. Color system: full-bleed warm gray #E9E5DB ground (studio texture, restrained light-mid value); brick red #A63A2A reserved for the rule line only — the single accent color on the page; charcoal-black title, composed. Composition energy: one "atmosphere → tone → theme" path — a full-bleed low-contrast black-and-white profile silhouette ({SUBJECT}, generic description, e.g. a suited figure in profile) recedes as background atmosphere, never stealing the show → brick-red rule (tone) → big title (theme); title and figure stack vertically, a left-right split is forbidden. Texture: the warm-gray ground must carry studio-grade fine film grain plus one patch of real soft-light shadow in the figure zone — plasticky smooth portrait rendering is forbidden. No text besides the title. All text within the central vertical 60% safe zone. Restrained, premium. Landscape 16:9, 1200×675.
333
+ EN: Editorial magazine-style Chinese cover. Type scale: the title presses the foreground — an elegant charcoal-black bold Chinese title "{TITLE}" (exact, Noto Serif SC Bold with serif character), glyph height 1/4 to 1/3 of the frame, centered-lower, layered over the portrait atmosphere as the single visual anchor of the page; one thin brick-red (#A63A2A) rule above the title sets the tone — the soul of the magazine feel. Color system: full-bleed warm gray #E9E5DB ground (studio texture, restrained light-mid value); brick red #A63A2A reserved for the rule line only — the single accent color on the page; charcoal-black title, composed. Composition energy: one "atmosphere → tone → theme" path — a full-bleed low-contrast black-and-white profile silhouette ({SUBJECT}, generic description, e.g. a suited figure in profile) recedes as background atmosphere, never stealing the show → brick-red rule (tone) → big title (theme); title and figure stack vertically, a left-right split is forbidden. Texture: the warm-gray ground must carry studio-grade fine film grain plus one patch of real soft-light shadow in the figure zone — plasticky smooth portrait rendering is forbidden. Text effects: a magazine cover's emphasis lives in the title typography — only charcoal black and brick red in the title: ① recolor the title's keyword (e.g. the contrarian claim) in brick red #A63A2A, keep the rest charcoal black; ② enlarge the keyword to 1.5× the other glyphs, keep the rest at base size, no line break; only these 2 treatments — no decorative words in the negative space. No text besides the title. All text within the central vertical 60% safe zone. Restrained, premium. Landscape 16:9, 1200×675.
295
334
  ```
296
335
  占位符:`{SUBJECT}` 人物泛指描述(职业/姿态,不得出现可识别的真实人物长相)。
297
336
  - **绝不清单**:
@@ -300,6 +339,10 @@ prompt 配方为中英双语模板:`{TITLE}` 为标题文字占位符(短标
300
339
  - 绝不浅底深底混用:同一色调只用一种底。
301
340
  - 绝不留白处加装饰字:杂志风的力量全在克制。
302
341
  - 绝不塑料平滑的人像渲染:无胶片颗粒无真实光影一律重画。
342
+ - 绝不透视变形大标题。
343
+ - 绝不标题超 3 种颜色:只用炭黑+砖红两种。
344
+ - 绝不竖排+旋转组合:大标题永远水平。
345
+ - 绝不装饰超量:变色+字号对比 2 种封顶。
303
346
 
304
347
  ---
305
348
 
@@ -312,6 +355,6 @@ prompt 配方为中英双语模板:`{TITLE}` 为标题文字占位符(短标
312
355
  | brand-launch | 深海军蓝 + 荧光绿唯一强调,品牌大标题压阵 | 1/4~1/3 | 产品发布/版本更新 |
313
356
  | tutorial-steps | 宣纸书法 1/3 镇场 + 底部赭石时间线,三步即上手 | ~1/3 | 教程/上手指南 |
314
357
  | ip-fun | 暖橙舞台 + 深棕叠放巨标题 + 趣味 IP 记忆点 | 1/4~1/3 | 实战案例/数据战报 |
315
- | news-flash | 纸纹米底 + 纯黑 1/3 单色大标题,快讯的干脆 | ~1/3 | 资讯/快讯/热点解读 |
358
+ | news-flash | 纸纹米底 + 纯黑大标题 + 朱红爆点词点睛,快讯的干脆 | ~1/3 | 资讯/快讯/热点解读 |
316
359
  | minimal | 85% 留白 + 一处朱红点睛 + 宽字距深灰标题,张力拉满 | ~1/6(字重补) | 随笔/书评/轻观点 |
317
360
  | magazine | 暖灰影棚颗粒 + 人像氛围 + 砖红细线,标题压阵 | 1/4~1/3 | 访谈/人物特写/商业分析 |
@@ -51,3 +51,41 @@
51
51
  | 6 | 质感不敢加(纯色底一片死平) | 至少加一层纸纹/噪点/光影,放在背景层 |
52
52
  | 7 | 情绪不敢给(断言、感叹全磨平) | 在标题或背书层保留一处情绪支点(断言/感叹/反问三选一),只一处 |
53
53
  | 8 | 配色求稳(全用安全中性色) | 主色敢选有情绪的颜色;要克制的是"颜色数量",不是"颜色性格" |
54
+
55
+ ## 七、文字装饰系统(第九轮新增:文字排印与装饰)
56
+
57
+ **总原则:中文正确性永远优先于花样。**图像模型对中文大字的渲染能力有限,任何装饰不得导致错字、乱码、笔画粘连。装饰是"放大记忆点"的手段,不是"堆花样"的目的——每张图选 2~3 种装饰,用到就够,多一种就问自己一次"删掉它会损失什么"(参见第四条规则)。
58
+
59
+ ### 7.1 六种可靠装饰(按优先级从高到低)
60
+
61
+ | # | 装饰 | 效果 | 风险 | 适用风格 | 提示词写法(具体可执行) |
62
+ |---|---|---|---|---|---|
63
+ | 1 | 关键词变色高亮 | 1~2 个关键词换强调色,成为全图视觉锚点;3 秒内眼睛先被"有色"字抓住 | 一句话超 3 色会吵;低对比配色(浅灰底白字)直接隐身 | gan-huo、news-flash、tutorial-steps、magazine | 把"翻车"两字换成朱红 #E6392B,其余字米白 #FAF6EC;整句只用这两种颜色 |
64
+ | 2 | 字号对比 | 关键词放大 1.3~1.6 倍,信息层级瞬间拉开,钩子词拥有最大视觉权重 | 放大超 1.6 倍易挤占构图、导致换行断裂;数字放大优先于文字放大 | big-type、gan-huo、news-flash、magazine | 标题中"暴跌"二字字号放大到其余字的 1.5 倍,其余字保持原字号,不换行 |
65
+ | 3 | 文字底部色块/描边 | 色块衬底:关键词下垫一块实色矩形,街头海报感,远距离可读;描边:深底浅字时勾勒字形,字更"跳" | 色块过厚会吞掉字下半部;浅色字+浅色色块对比不足;描边过粗导致笔画粘连 | brand-launch(色块)、big-type(描边)、ip-fun(色块) | "暴跌"两字下方垫一块朱红 #E6392B 实色矩形,矩形高度为字高的 1.2 倍,字为米白压在色块上;描边写法:米白字加 2px 深灰描边,描边宽度不超过笔画宽度的 1/5 |
66
+ | 4 | 轻微阴影/立体 | 字从底色上"浮"起来,增加纵深;轻微立体(1~2 层错位)有质感 | 三重叠加(描边+阴影+立体)必糊;阴影过重显脏;深色底+深色阴影等于没加 | big-type、brand-launch、ip-fun | 标题字加一层向右下 45° 的柔和投影,投影颜色 #000000 不透明度 30%,偏移距离为字高的 1/10;立体写法:字后方加一层同字形、朱红 #E6392B、向右下错位 4px 的色块字,只错位一层 |
67
+ | 5 | 手绘下划线/圈注/箭头 | 手绘感=人味(参见第 20 条),划线给关键词"划重点",圈注给数据"画圈强调",箭头给动线"指路" | 线条过粗会压住字;圈注套住整句等于没强调;箭头超过 2 个画面变流程图 | gan-huo(圈注)、news-flash(箭头)、tutorial-steps(下划线/箭头) | 在"翻车"两字下方画一条手绘感波浪下划线,朱红 #E6392B,线宽为笔画宽度的 1/2,略带抖动不压字;圈注写法:用朱红马克笔笔触把"23.2%"圈起来,圈略大于字、不压笔画;箭头写法:从标题指向配图的红色手绘箭头,一条,线条粗细均匀 |
68
+ | 6 | 适度旋转 | 印章/标签/角标类小元素倾斜 ≤8°,打破呆板,制造"贴上去"的真实感 | 大标题旋转必乱码;竖排+旋转组合必翻车;旋转超 8° 显廉价 | 仅用于印章/标签/角标小元素(如"实测""必看"角标),不用于大标题 | 右上角"实测"角标整体顺时针旋转 6°,字不转、整体转;大标题保持水平,一个字都不许倾斜 |
69
+
70
+ ### 7.2 八风格装饰指定(每风格 2~3 种必用)
71
+
72
+ | 风格 | 必用装饰 | 理由 |
73
+ |---|---|---|
74
+ | gan-huo(干货) | ①关键词变色高亮 ②色块衬底 ③手绘圈注 | 干货风靠"划重点"建立信任:变色定锚点、色块给海报感、圈注圈住关键数据,三件套=把"值得收藏"写在脸上 |
75
+ | big-type(大字报) | ②字号对比 ③描边 ④轻微立体 | 大字报的全部冲击力来自字本身:字号对比拉层级、描边让字跳、轻微立体给纵深,三者都作用于字形、不引入外部元素,字即画面 |
76
+ | brand-launch(品牌发布) | ③色块衬底 ④轻微阴影 | 品牌发布要"贵气+仪式感":色块衬底是发布会主视觉的经典语言,轻微阴影给字高级的浮起感,克制不用手绘元素以免掉价 |
77
+ | tutorial-steps(教程步骤) | ①关键词变色高亮 ⑤手绘下划线/箭头 | 教程风需要"指路感":变色标出每步关键词,下划线/箭头串起步骤动线,读者一眼知道先看哪、后看哪 |
78
+ | ip-fun(IP 趣味) | ③色块衬底 ④轻微立体 | IP 趣味风要"潮玩感":色块衬底像贴纸,轻微立体像徽章凸起,两者叠加出潮玩包装的质感,忌用严肃的手绘批注 |
79
+ | news-flash(新闻快讯) | ①关键词变色高亮 ②字号对比 ⑤手绘箭头 | 快讯风=突发感:变色+放大双管齐下让爆点词在信息流里"炸"出来,一条箭头指向配图、制造"正在发生"的现场感 |
80
+ | minimal(极简) | 只用一点睛色块(③的克制版) | 极简的冲击力来自克制本身:只允许一处色块衬底点睛,多一种装饰就破功;变色、旋转、手绘一律不用 |
81
+ | magazine(杂志风) | ①关键词变色高亮 ②字号对比 | 杂志封面语言就是"大标题+关键词强调":变色给情绪、字号对比给层级,两种都作用于标题排印本身,不加外部装饰以保编辑感 |
82
+
83
+ ### 7.3 装饰禁令清单(Worker B:写入各风格"绝不"清单)
84
+
85
+ 1. **禁透视变形大标题**——大标题做透视/扭曲/弧形排列,中文必乱码;要动感用轻微立体代替。
86
+ 2. **禁一句话超 3 种颜色**——标题内颜色种类(含字色、色块色、描边色)不得超过 3 种,超了画面就"吵"。
87
+ 3. **禁描边+阴影+立体三重叠加**——三种效果最多同时用一种(big-type 可用描边+轻微立体两种,但不得再加阴影)。
88
+ 4. **禁竖排+旋转组合**——竖排文字不得再叠加任何旋转;旋转只允许用于印章/标签类小元素,且 ≤8°,大标题永远水平。
89
+ 5. **禁色块吞字**——色块衬底高度不得超过字高的 1.3 倍,色块与字色必须明暗对立(深底浅字或浅底深字),对比不足宁可不用。
90
+ 6. **禁装饰压笔画**——手绘下划线/圈注/箭头不得压住文字笔画;圈注只圈 1~2 个词或一个数字,圈住整句等于没强调。
91
+ 7. **禁装饰超 3 种**——单张图装饰种类不得超过 7.2 表中该风格指定的数量(minimal 只许 1 种);多一种就问"删掉它会损失什么"。
@@ -31,7 +31,10 @@ def main() -> None:
31
31
 
32
32
  src = Path(args.src)
33
33
  out_dir = Path(args.out_dir)
34
- out_dir.mkdir(parents=True, exist_ok=True)
34
+ try:
35
+ out_dir.mkdir(parents=True, exist_ok=True)
36
+ except OSError as e:
37
+ sys.exit(f"错误:无法创建输出目录 {out_dir}({e})")
35
38
 
36
39
  if not src.is_file():
37
40
  sys.exit(f"错误:找不到输入图片 {src}")
@@ -50,18 +53,21 @@ def main() -> None:
50
53
  x0, y0 = (w - cw) // 2, (h - ch) // 2
51
54
  base = img.crop((x0, y0, x0 + cw, y0 + ch))
52
55
 
53
- for name, (tw, th) in TARGETS.items():
54
- ratio = tw / th
55
- bw, bh = base.size
56
- if bw / bh > ratio:
57
- cw2, ch2 = int(bh * ratio), bh
58
- else:
59
- cw2, ch2 = bw, int(bw / ratio)
60
- x1, y1 = (bw - cw2) // 2, (bh - ch2) // 2
61
- out = base.crop((x1, y1, x1 + cw2, y1 + ch2)).resize((tw, th), Image.LANCZOS)
62
- dest = out_dir / name
63
- out.save(dest)
64
- print(f"OK {dest} ({tw}x{th})")
56
+ try:
57
+ for name, (tw, th) in TARGETS.items():
58
+ ratio = tw / th
59
+ bw, bh = base.size
60
+ if bw / bh > ratio:
61
+ cw2, ch2 = int(bh * ratio), bh
62
+ else:
63
+ cw2, ch2 = bw, int(bw / ratio)
64
+ x1, y1 = (bw - cw2) // 2, (bh - ch2) // 2
65
+ out = base.crop((x1, y1, x1 + cw2, y1 + ch2)).resize((tw, th), Image.LANCZOS)
66
+ dest = out_dir / name
67
+ out.save(dest)
68
+ print(f"OK {dest} ({tw}x{th})")
69
+ except OSError as e:
70
+ sys.exit(f"错误:写入封面图失败({e})")
65
71
 
66
72
 
67
73
  if __name__ == "__main__":
@@ -4,7 +4,7 @@
4
4
 
5
5
  Full lifecycle for WeChat articles: delivery package, review & rewrite, three quality gates, status sync, WeChat inline typography, and publish checklist.
6
6
 
7
- - Version: **v0.1.0** (same tag as `@topmindspace/tms-skills@0.3.6`)
7
+ - Version: **v0.1.0** (same tag as `@topmindspace/tms-skills@0.3.9`)
8
8
 
9
9
  ## Install
10
10
 
@@ -60,7 +60,7 @@ Output `demo/demo-公众号版.html` (open in a browser → click "复制正文"
60
60
 
61
61
  ```html
62
62
  <!-- h2 auto-numbered; closing chapters like "总结" get ∞ -->
63
- <h2 ...><span ...>01</span>Chapter One</h2>
63
+ <h2 ...><span ...>1</span>Chapter One</h2>
64
64
  <!-- images inlined as base64, pasted along with the text -->
65
65
  <img src="data:image/png;base64,iVBORw0KGgo..." ...>
66
66
  ```
@@ -4,7 +4,7 @@
4
4
 
5
5
  公众号文章全生命周期:交付包、审校改写、质量三关、状态同步、微信内联排版与发布清单。
6
6
 
7
- - 版本:**v0.1.0**(与 `@topmindspace/tms-skills@0.3.6` 同 tag)
7
+ - 版本:**v0.1.0**(与 `@topmindspace/tms-skills@0.3.9` 同 tag)
8
8
 
9
9
  ## 安装
10
10
 
@@ -59,7 +59,7 @@ python3 scripts/md2wechat.py --input demo.md --out-dir demo --slug demo --embed-
59
59
 
60
60
  ```html
61
61
  <!-- 二级标题自动编号;"总结"类末章编号为 ∞ -->
62
- <h2 ...><span ...>01</span>第一章</h2>
62
+ <h2 ...><span ...>1</span>第一章</h2>
63
63
  <!-- 图片 base64 内嵌,粘贴即带图 -->
64
64
  <img src="data:image/png;base64,iVBORw0KGgo..." ...>
65
65
  ```
@@ -50,7 +50,7 @@ updated: 2026-09-29
50
50
  | `scripts/scan_ai_flavor.py` | 中文去 AI 味扫描(与 `qu-aiwei-zh` 同源) |
51
51
 
52
52
  ```bash
53
- # 路径解析:CLI --base/--workspace → env TOPMIND_WECHAT_BASE / TOPMIND_WORKSPACE / TOPSTREAM_ROOT → 惯例
53
+ # 路径解析:CLI --base → env TOPMIND_WECHAT_BASE / TOPMIND_WORKSPACE / TOPSTREAM_ROOT → 惯例
54
54
  export TOPMIND_WORKSPACE=/path/to/workspace # 推荐
55
55
  python3 scripts/new-article.py --slug demo --title "标题" --direction reverse
56
56
  python3 scripts/lint-wechat.py --input <包>/公众号稿.md --fix
@@ -920,7 +920,10 @@ def resolve_image(src, md_path, out_dir, assets, asset_root):
920
920
  "missing": True})
921
921
  return src
922
922
  img_dir = os.path.join(out_dir, "images")
923
- os.makedirs(img_dir, exist_ok=True)
923
+ try:
924
+ os.makedirs(img_dir, exist_ok=True)
925
+ except OSError as e:
926
+ sys.exit("错误:无法创建图片目录 %s(%s)" % (img_dir, e))
924
927
  base = os.path.basename(abs_path)
925
928
  target = os.path.join(img_dir, base)
926
929
  n = 1
@@ -929,7 +932,10 @@ def resolve_image(src, md_path, out_dir, assets, asset_root):
929
932
  target = os.path.join(img_dir, "%s-%d%s" % (stem, n, ext))
930
933
  n += 1
931
934
  if not os.path.exists(target):
932
- shutil.copy2(abs_path, target)
935
+ try:
936
+ shutil.copy2(abs_path, target)
937
+ except OSError as e:
938
+ sys.exit("错误:复制图片失败 %s → %s(%s)" % (abs_path, target, e))
933
939
  rel = os.path.relpath(target, out_dir)
934
940
  assets.append({"src": src, "local": rel, "remote": False,
935
941
  "basename": os.path.basename(target),
@@ -1609,7 +1615,10 @@ def main():
1609
1615
  except OSError as e:
1610
1616
  sys.exit("错误:无法读取输入文件 %s(%s)" % (args.input, e))
1611
1617
 
1612
- os.makedirs(args.out_dir, exist_ok=True)
1618
+ try:
1619
+ os.makedirs(args.out_dir, exist_ok=True)
1620
+ except OSError as e:
1621
+ sys.exit("错误:无法创建输出目录 %s(%s)" % (args.out_dir, e))
1613
1622
  body, assets, diagrams, footnotes = convert(
1614
1623
  md_text, os.path.abspath(args.input), args.out_dir, theme,
1615
1624
  args.link_mode, args.render_mermaid, args.asset_root or None,
@@ -4,7 +4,7 @@
4
4
 
5
5
  Turn a Markdown draft into a "copy → paste → publish" X long-form (Article) package.
6
6
 
7
- - Version: **v0.1.0** (same tag as `@topmindspace/tms-skills@0.3.6`)
7
+ - Version: **v0.1.0** (same tag as `@topmindspace/tms-skills@0.3.9`)
8
8
 
9
9
  ## Install
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  把 Markdown 原稿变成"复制 → 粘贴 → 发"的 X 长文(Article)发布包。
6
6
 
7
- - 版本:**v0.1.0**(与 `@topmindspace/tms-skills@0.3.6` 同 tag)
7
+ - 版本:**v0.1.0**(与 `@topmindspace/tms-skills@0.3.9` 同 tag)
8
8
 
9
9
  ## 安装
10
10
 
@@ -281,6 +281,8 @@ def main() -> None:
281
281
 
282
282
  inp = Path(args.input)
283
283
  if not inp.is_file():
284
+ if inp.is_dir():
285
+ sys.exit(f"错误:输入是目录不是文件 {inp}")
284
286
  sys.exit(f"错误:找不到输入文件 {inp}")
285
287
  try:
286
288
  md = inp.read_text(encoding="utf-8-sig")
@@ -291,8 +293,11 @@ def main() -> None:
291
293
  text, images = convert(md)
292
294
 
293
295
  out = Path(args.out)
294
- out.parent.mkdir(parents=True, exist_ok=True)
295
- out.write_text(text, encoding="utf-8")
296
+ try:
297
+ out.parent.mkdir(parents=True, exist_ok=True)
298
+ out.write_text(text, encoding="utf-8")
299
+ except OSError as e:
300
+ sys.exit(f"错误:无法写入输出文件 {out}({e})")
296
301
 
297
302
  chars = len(text.replace("\n", ""))
298
303
  print(f"OK {out}")