
Wechat Article Writer
- 318 installs
- 2.5k repo stars
- Updated July 19, 2026
- xstongxue/best-skills
wechat-article-writer is a Claude agent skill that drafts and structures WeChat Official Account articles for developers publishing technical or product content to Chinese WeChat readers.
About
wechat-article-writer is an xstongxue/best-skills agent skill for composing WeChat Official Account articles when teams publish technical updates, product announcements, or educational content to Chinese WeChat subscribers. Developers and developer advocates reach for it to turn notes, release highlights, or blog drafts into WeChat-friendly article structure—titles, section flow, call-to-action blocks, and formatting conventions suited to the WeChat reader experience. The skill supports content growth workflows where WeChat remains a primary distribution channel alongside GitHub or domestic developer communities. Use wechat-article-writer when a release note or tutorial needs adaptation into WeChat article voice and layout without manually reformatting every paragraph for mobile reading. Pair it with broader content skills when the same story also ships as Markdown docs or newsletter HTML, but WeChat-specific tone and section pacing are the focus here.
- wechat-article-writer
- Backend & APIs
Wechat Article Writer by the numbers
- 318 all-time installs (skills.sh)
- +13 installs in the week ending Jul 27, 2026 (Skillselion tracking)
- Ranked #1,287 of 4,347 Backend & APIs skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/xstongxue/best-skills --skill wechat-article-writerAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 318 |
|---|---|
| repo stars | ★ 2.5k |
| Last updated | July 19, 2026 |
| Repository | xstongxue/best-skills ↗ |
How do you write WeChat Official Account articles?
Use wechat-article-writer to assist with backend
Who is it for?
Developers and advocates publishing technical or product content to WeChat Official Accounts who need structured article drafts from notes or release material.
Skip if: Teams distributing content only in English blogs or newsletters without WeChat Official Account publishing requirements.
When should I use this skill?
A developer asks to write a WeChat article, format content for WeChat Official Accounts, or adapt technical notes into WeChat publishing drafts.
What you get
WeChat article draft with title, section structure, CTA blocks, and formatting suited to Official Account publishing.
- WeChat article draft
- Section and CTA structure
- Mobile formatting notes
Files
公众号/自媒体创作
一、任务识别
根据用户需求选择执行路径:
| 任务类型 | 触发词 | 执行 |
|---|---|---|
| 仅封面/结尾图 | 封面图、公众号封面、B站封面、小红书配图 | 读取 cover_guide.md |
| 仅正文插图 | 插图、步骤图、演示图、流程示意、前后对比 | 读取 illustration_guide.md |
| 撰写文章 | 写公众号、写文章、自媒体写作、爆款文章、内容创作 | 执行 Step 2–6 |
| 风格提取 | 分析写作风格、克隆文风、模仿某篇、提取风格、范文转风格指南 | 执行「四、风格提取流程」 |
二、写作风格
撰写文章时,按用户指定选择风格文件;未指定则用默认风格。
| 序号 | 风格 | 触发词(互不重复) | 参考文件 | 篇幅 |
|---|---|---|---|---|
| 1 | 默认 | (未指定时) | writing_style.md | 2000–4000 字 |
| 2 | 高流量/爆款 | 高流量、爆款、像 Skills 那篇 | viral_style.md | 2500–4000 字 |
| 3 | 清单体/方法论 | 清单体、方法论、干货、步骤 | checklist_methodology_style.md | 2000–4000 字 |
| 4 | 资源盘点 | 盘点、替代方案、合集 | resource_roundup_style.md | 3000–6000 字 |
| 5 | 个人实测推荐 | 个人实测、亲身推荐 | personal_tool_review_style.md | 4000–7000 字 |
| 6 | 认知颠覆 | 认知颠覆、反常识、观点文 | contrarian_opinion_style.md | 2000–3500 字 |
| 7 | 身份共鸣/逆袭 | 身份共鸣、逆袭、你也行、转行经历 | identity_transformation_style.md | 2500–4000 字 |
| 8 | 故事化/情感共鸣 | 故事化、情感共鸣、人物故事 | story_emotional_style.md | 2500–4500 字 |
| 9 | 深度随笔 | 深度思考、随笔、像日记那篇、个人感悟 | personal_essay_style.md | 4000–7000 字 |
三、撰写流程(Step 2–6)
Step 2:搜索资料
- 并行搜索多来源(官方文档、X/Twitter、Reddit、技术论坛等)
- 优先当月/当季最新资料
- 深度总结后再进入撰写
Step 3:撰写文章
1. 读取风格文件:按「二、写作风格」选择对应 reference 文件,严格遵循其写作规范与结尾语 2. 通用要求:故事化开头、带情感色彩、准备 2–3 个备选标题
Step 4:生成标题
生成 5 个爆款风格标题:痛点明确、数字吸引、结果导向、情绪调动、悬念设置。
Step 5:排版优化
输出排版与配图建议:段落结构、配图位置(封面/正文/结尾)、代码块留白、金句单独成段。
Step 6:生成配图(可选)
用户要求或排版建议中标注配图时:
1. 读取指南:
- 封面/结尾图 → 读取
reference/cover_guide.md - 正文插图 → 读取
reference/illustration_guide.md
2. 生成并保存 .drawio 文件:
- 必须保存:生成完整的 mxGraph XML 内容并保存为文件
- 封面图保存为
images/covers/source/主题关键词-cover.drawio - 正文插图保存为
images/illustrations/source/主题关键词-图序号.drawio - 配色与文章统一
- 保存成功后告知用户文件路径
3. 自动转换为 PNG(可选):
- 检查是否安装 draw.io CLI 工具
- 如已安装:自动运行
bash scripts/export-drawio.sh covers,将 drawio 转为 PNG - 如未安装:提示用户手动导出或安装 draw.io CLI
- PNG 保存到
images/covers/export/或images/illustrations/export/
4. 输出使用说明:
- 封面说明:布局用途与风格(1-2 句)
- 文件路径:已保存的 .drawio 文件位置
- 如果自动转换成功:PNG 文件位置
- 如果需要手动导出:导出步骤说明
图片文件夹结构:
images/
├── covers/source/ # 封面 .drawio 文件(自动保存)✅
├── covers/export/ # 封面 PNG/JPG(自动或手动导出)
├── illustrations/source/ # 正文 .drawio 文件(自动保存)✅
└── illustrations/export/ # 正文 PNG/JPG(自动或手动导出)导出 PNG 方式(三选一): 1. 自动导出(推荐):如果已安装 draw.io CLI,系统会自动转换 2. 脚本导出:手动运行 bash scripts/export-drawio.sh covers 3. 手动导出:用 Draw.io 打开 → 文件 → 导出为 → PNG(2x 分辨率)
Step 7:上传到微信公众号(可选)
用户要求上传到草稿箱时执行,支持手动和自动两种模式。
前置准备
1. 确保图片已导出为 PNG/JPG 格式(Step 6) 2. 配置微信公众号凭证(仅自动模式需要):
# .env 文件
WECHAT_APPID=your_app_id
WECHAT_SECRET=your_app_secret模式 A:手动上传(零代码,推荐新手)
1. 读取已生成的文件:
- 文章路径:
drafts/日期-主题.md(Step 3 已保存) - 标题路径:
drafts/备选标题.txt(Step 4 已保存) - 封面图:
images/covers/source/主题-cover.drawio(Step 6 已保存)
2. 导出封面图:
- 用 Draw.io 打开
.drawio文件 - 文件 → 导出为 → PNG(2x 分辨率)
- 保存到
images/covers/export/
3. 转换 Markdown 为微信格式:
- 打开 Doocs MD 编辑器
- 打开
drafts/日期-主题.md,复制全部内容 - 粘贴到 Doocs MD 左侧编辑区
- 选择主题样式(默认、橙心、姹紫等)
- 右侧实时预览微信格式
4. 复制到公众号:
- 点击"复制"按钮
- 打开公众号后台 → 新建图文 → 粘贴内容
- 上传封面图(从
images/covers/export/) - 从
备选标题.txt中选择标题 - 保存为草稿或直接发布
优点:无需技术配置,即开即用,样式丰富,所有文件已自动生成 适用场景:偶尔发文、注重样式调整
模式 B:自动上传(API 调用,推荐频繁发文)
1. 读取已生成的文件:
- 文章:
drafts/日期-主题.md(Step 3 已保存) - 封面:
images/covers/export/主题-cover.png(需先导出) - 标题:从
drafts/备选标题.txt中选择
2. 自动执行流程:
# 方式 1: 使用现成工具(推荐)
npx wechat-article-publisher \
--markdown drafts/2026-03-19-ai-tools.md \
--cover images/covers/export/ai-tools-cover.png \
--images images/illustrations/export/ \
--auto-upload
# 方式 2: 使用自定义脚本
node scripts/upload-to-wechat.js \
--title "2026 最全 AI 编程工具盘点:30+ 神器让代码写得飞起" \
--content drafts/2026-03-19-ai-tools.md \
--cover images/covers/export/ai-tools-cover.png2. 自动化步骤(脚本内部执行):
- 获取微信 access_token(自动缓存 7200 秒)
- 上传封面图到素材库 → 获取
thumb_media_id - 上传正文图片 → 替换 Markdown 中的图片链接
- 转换 Markdown → 微信 HTML(内联样式)
- 调用草稿箱 API 创建草稿
- 返回草稿 ID 和预览链接
3. 输出示例:
✅ 草稿已上传成功!
✅ 草稿 media_id: Mzg5MjQ3NTg2Mg==_1234567890
✅ 请在公众号后台查看并发布
⏱️ 耗时: 3.2 秒优点:全自动化,批量发布,节省时间 适用场景:频繁发文、团队协作、内容矩阵
注意事项
⚠️ 限制条件:
- 必须是已认证的公众号(个人号无法使用发布 API)
- 封面图 < 10MB,格式 JPG/PNG
- 正文图 < 2MB,格式 JPG/PNG/GIF
⚠️ 安全提醒:
- 不要将 AppSecret 提交到 Git 仓库
- 使用
.env文件或环境变量存储凭证 - Token 缓存后提前 5 分钟刷新,避免 40001 错误
⚠️ 发布限制(2025年7月起):
- 个人未认证账号:只能创建草稿,需手动发布
- 已认证账号:可调用发布 API 自动发布
四、风格提取流程
当用户提供样本文章(全文粘贴或本地路径),希望分析风格、克隆文风、将范文转为风格指南时执行。
先读取 extraction_dimensions.md,按统一维度提取。
Step 1:任务确认
- 样本数量(1 篇或多篇)
- 使用目标(模仿写作 / 团队风格规范 / Prompt 固化)
- 是否保留作者口头禅、品牌词
Step 2:结构拆解
提取:开头钩子模式、行文骨架、段落节奏、结尾动作。
Step 3:语言与修辞拆解
提取:语气人称、句式与标点、高频词/过渡词/口头禅、修辞手法。
Step 4:产出风格规则包
输出必须包含:风格画像(100–200 字)、可执行规则(15–30 条,必须/优先/避免)、风格复刻 Prompt、反向自检清单、边界声明。
Step 5:验证与回放(可选)
若用户需要:同主题试写大纲、100–200 字试写段落、相似点/差异点说明。
输出顺序:样本概况 → 风格画像 → 风格规则包 → Prompt 模板 → 自检清单 → 边界声明
五、示例
| 用户请求 | 执行 |
|---|---|
| 生成这篇文章的封面 | 读取 cover_guide.md,默认生成合并封面(1283×383) |
| 生成 Cursor 启用四步骤的步骤图 | 读取 illustration_guide.md 并生成 |
| 帮我写一篇关于 Cursor Skills 的公众号文章 | Step 2–6 完整流程 |
| 用高流量风格写一篇关于 Vibe Coding 的文章,并上传到草稿箱 | 读取 viral_style.md,按爆款风格撰写 + Step 7 自动上传 |
| 用资源盘点风格写免费传大文件替代方案 | 读取 resource_roundup_style.md,按盘点风格撰写 |
| 用深度随笔风格写 AI 时代记日记 | 读取 personal_essay_style.md,按随笔风格撰写 |
| 用个人实测风格写软件推荐 | 读取 personal_tool_review_style.md,按实测推荐风格撰写 |
| 用清单体写提升效率的 5 个习惯 | 读取 checklist_methodology_style.md,按方法论风格撰写 |
| 用故事化风格写职场转型经历 | 读取 story_emotional_style.md,按情感共鸣风格撰写 |
| 用认知颠覆风格写「努力是最被高估的品质」 | 读取 contrarian_opinion_style.md,按反常识观点撰写 |
| 用身份共鸣风格写 30 岁转行做自媒体 | 读取 identity_transformation_style.md,按逆袭叙事撰写 |
| 写完后帮我转换成微信格式 | 执行 Step 7A(手动模式),输出 Doocs MD 使用指引 |
| 自动上传这篇文章到公众号 | 执行 Step 7B(自动模式),调用微信 API 上传 |
| 分析这篇公众号文章的写作风格、提取可复用规则 | 执行「四、风格提取流程」 |
# 微信公众号配置
# 复制此文件为 .env,并填入你的真实凭证
# 微信公众号 AppID(在公众号后台"开发-基本配置"中获取)
WECHAT_APPID=your_app_id_here
# 微信公众号 AppSecret(在公众号后台"开发-基本配置"中获取)
WECHAT_SECRET=your_app_secret_here
# 注意事项:
# 1. 此文件包含敏感信息,请勿提交到 Git 仓库
# 2. 确保 .gitignore 中包含 .env
# 3. 仅支持已认证的公众号
# 4. AppSecret 重置后需要更新此配置
# 可选配置
# WECHAT_AUTHOR=你的笔名
# WECHAT_AUTO_PUBLISH=false # 是否自动发布(仅认证号支持){
"name": "wechat-article-writer",
"version": "1.0.0",
"description": "公众号/自媒体全流程创作工具:AI 写作 + 自动上传草稿箱",
"main": "scripts/upload-to-wechat.js",
"scripts": {
"upload": "node scripts/upload-to-wechat.js",
"export-images": "bash scripts/export-drawio.sh",
"export-covers": "bash scripts/export-drawio.sh covers",
"export-illustrations": "bash scripts/export-drawio.sh illustrations"
},
"keywords": [
"wechat",
"公众号",
"markdown",
"ai写作",
"自动化"
],
"author": "",
"license": "MIT",
"dependencies": {
"axios": "^1.6.0",
"dotenv": "^16.3.0",
"form-data": "^4.0.0",
"markdown-it": "^14.0.0"
},
"devDependencies": {},
"repository": {
"type": "git",
"url": ""
}
}
微信公众号文章创作 SKILL
公众号/自媒体全流程解决方案:AI 写作 + 配图生成 + 自动上传草稿箱
功能特性
智能写作
- 9 种写作风格:默认、爆款、清单体、资源盘点、个人实测、认知颠覆、身份共鸣、故事化、深度随笔
- AI 搜索资料:自动搜索最新资料,深度总结
- 爆款标题生成:5 个备选标题,痛点明确、情绪调动
- 排版优化建议:段落结构、配图位置、代码块留白
配图生成
- 封面图:16:9、1:1、9:16 等多种比例
- 正文插图:步骤图、演示图、流程图、前后对比
- Draw.io 格式:可编辑、可导出 PNG/JPG
- 风格统一:配色与文章主题一致
自动上传
- 手动模式:Doocs MD 在线编辑器,零代码
- 自动模式:API 调用,一键上传草稿箱
- 图片处理:自动上传封面和正文图片
- Markdown 转换:自动转为微信 HTML 格式
风格提取
- 分析范文:提取写作风格、语言特征
- 生成规则包:15-30 条可执行规则
- Prompt 模板:可直接复用的风格 Prompt
快速开始
1. 安装依赖
cd wechat-article-writer
npm install2. 配置微信公众号(可选,仅自动上传需要)
复制 .env.example 为 .env,填入你的公众号凭证:
cp .env.example .env编辑 .env:
WECHAT_APPID=你的AppID
WECHAT_SECRET=你的AppSecret获取凭证:公众号后台 → 设置与开发 → 基本配置 → 开发者ID(AppID) 和 开发者密码(AppSecret)
3. 使用 SKILL
在 Claude Code 中使用此 SKILL:
/wechat-article-writer
帮我写一篇关于 AI 写作工具的公众号文章,用爆款风格使用示例
示例 1:写文章(不上传)
用清单体风格写一篇「提升效率的 10 个习惯」执行流程: 1. 搜索相关资料 2. 按清单体风格撰写 2000-4000 字文章 3. 生成 5 个爆款标题 4. 提供排版优化建议 5. 生成封面图和正文插图(.drawio 文件)
示例 2:写文章并上传(自动模式)
用高流量风格写一篇关于 Cursor 的文章,并自动上传到草稿箱执行流程: 1. 完成 Step 1-6(写作+配图) 2. 导出图片为 PNG 格式 3. 调用微信 API 上传封面图 4. 转换 Markdown 为微信 HTML 5. 创建草稿并返回 media_id
示例 3:仅生成封面图
生成这篇文章的封面,16:9 比例,科技风格示例 4:风格提取
分析这篇文章的写作风格,提取可复用规则:
[粘贴文章全文]高级用法
手动导出 Draw.io 图片
在 Draw.io 中打开 .drawio 文件:
1. 文件 → 导出为 → PNG 2. 选择缩放:200% (推荐) 3. 勾选"透明背景"(如需要) 4. 保存到 images/covers/export/ 或 images/illustrations/export/
批量导出图片(自动)
使用提供的导出脚本:
# 导出所有图片
npm run export-images
# 仅导出封面
npm run export-covers
# 仅导出正文插图
npm run export-illustrations前置要求:需要安装 draw.io 命令行工具
- macOS: brew install --cask drawio- Linux: snap install drawio- Windows: choco install drawio手动上传到公众号
使用 Doocs MD 在线编辑器:
1. 打开 https://md.openwrite.cn/ 2. 左侧粘贴 Markdown 内容 3. 选择主题样式 4. 点击"复制"按钮 5. 在公众号后台新建图文,粘贴内容
自动上传到公众号
使用命令行工具:
npm run upload -- \
--title "文章标题" \
--content drafts/article.md \
--cover images/covers/export/cover.png \
--author "你的笔名"或直接使用 Node.js 脚本:
node scripts/upload-to-wechat.js \
--title "文章标题" \
--content drafts/article.md \
--cover images/covers/export/cover.png目录结构
wechat-article-writer/
├── SKILL.md # SKILL 主文件
├── README.md # 本文件
├── package.json # 依赖配置
├── .env.example # 环境变量模板
├── .env # 环境变量(勿提交)
│
├── reference/ # 写作风格参考
│ ├── writing_style.md # 默认风格
│ ├── viral_style.md # 爆款风格
│ ├── checklist_methodology_style.md # 清单体
│ ├── resource_roundup_style.md # 资源盘点
│ ├── personal_tool_review_style.md # 个人实测
│ ├── contrarian_opinion_style.md # 认知颠覆
│ ├── identity_transformation_style.md # 身份共鸣
│ ├── story_emotional_style.md # 故事化
│ ├── personal_essay_style.md # 深度随笔
│ ├── cover_guide.md # 封面图生成指南
│ ├── illustration_guide.md # 正文插图生成指南
│ └── extraction_dimensions.md # 风格提取维度
│
├── scripts/ # 自动化脚本
│ ├── upload-to-wechat.js # 上传脚本
│ └── export-drawio.sh # 图片导出脚本
│
├── drafts/ # 文章草稿(用户创建)
├── images/ # 图片资源(用户创建)
│ ├── covers/source/ # 封面 .drawio
│ ├── covers/export/ # 封面 PNG/JPG
│ ├── illustrations/source/ # 插图 .drawio
│ └── illustrations/export/ # 插图 PNG/JPG
│
└── published/ # 已发布归档(用户创建)配置说明
支持的写作风格
| 风格 | 触发词 | 篇幅 | 特点 |
|---|---|---|---|
| 默认 | (未指定) | 2000-4000字 | 平衡、通用 |
| 高流量/爆款 | 高流量、爆款 | 2500-4000字 | 吸睛、传播力强 |
| 清单体/方法论 | 清单体、方法论、干货 | 2000-4000字 | 结构化、实用 |
| 资源盘点 | 盘点、替代方案、合集 | 3000-6000字 | 信息密集 |
| 个人实测推荐 | 个人实测、亲身推荐 | 4000-7000字 | 真实、可信 |
| 认知颠覆 | 认知颠覆、反常识 | 2000-3500字 | 观点犀利 |
| 身份共鸣/逆袭 | 身份共鸣、逆袭 | 2500-4000字 | 情感共鸣 |
| 故事化/情感共鸣 | 故事化、情感共鸣 | 2500-4500字 | 故事性强 |
| 深度随笔 | 深度思考、随笔 | 4000-7000字 | 深度、个人化 |
封面图比例
- 16:9(推荐):1920×1080,公众号默认比例
- 1:1:900×900,朋友圈分享
- 9:16:1080×1920,竖屏视频封面
- 4:3:1200×900,传统比例
- 2.35:1:1920×817,电影比例
注意事项
使用限制
- 已认证公众号:可使用所有功能,包括自动发布
- 个人未认证号:只能创建草稿,需手动发布(2025年7月起)
- 测试号:不支持永久素材上传
图片要求
- 封面图:< 10MB,格式 JPG/PNG
- 正文图:< 2MB,格式 JPG/PNG/GIF
- 推荐分辨率:封面 1920×1080,插图 1200×900
安全建议
- 不要将
.env文件提交到 Git - 不要在代码中硬编码 AppSecret
- 定期更换 AppSecret(在公众号后台)
- 使用
.gitignore忽略敏感文件
相关资源
官方文档
开源工具
- Doocs MD - 微信 Markdown 编辑器
- wechat-format - Markdown 转微信 HTML
- md2wechat-skill - Claude AI 集成
在线编辑器
更新日志
v1.0.0 (2026-03-19)
- 初始版本
- 支持 9 种写作风格
- Draw.io 封面图和正文插图生成
- 手动和自动两种上传模式
- 风格提取功能
贡献
欢迎提交 Issue 和 Pull Request!
许可证
MIT License
清单体 / 方法论写作风格
参考「10 个工作习惯让效率提升两倍」「解决 XX 问题的 5 个步骤」等高流量干货清单类文章。当用户要求「清单体」「方法论」「干货」「步骤」「像 XX 那篇那种」时使用本指南。
核心原则(来自爆款分析)
- Why-What-How 结构:先建立连接,再给方案,读者看完能立刻用上
- 数字具体化:标题和正文用具体数字(5 个、10 步、3 个技巧),增强可信度
- 简单易懂:清单式呈现,便于总结归纳,特别容易传播
- 素材支撑:每个要点有案例/数据支撑,避免空洞说教
开头结构(Why)
1. 典型场景:描述读者常见的情况(如「每天打开电脑,消息弹窗一堆,不知道先处理哪个」) 2. 典型冲突:指出问题或挑战(如「明明很努力,为什么升职加薪的却是别人」) 3. 核心疑问:激发好奇心(如「有没有一套可复制的方法?」) 4. 承诺:今天这篇,给你 X 个具体步骤/方法,照着做就行
正文结构(What + How)
- 总分总或递进式:先给框架,再逐条展开
- 每点格式:小标题 + 1–2 段解释 + 可操作建议/案例
- 推理法/归纳法/步骤法:层层推进找到根源,或分类总结要点,或给出具体操作步骤
- 小节分隔:用数字标题(1、2、3 或 1.1、1.2)增强节奏感
标题公式
- 数字 + 结果:如「5 个技巧让写作效率翻倍」
- 痛点 + 提问:如「27 岁开始做自媒体,还晚不晚?」
- 场景 + 共鸣:如「开工第 2 天,已经想退休了」
- 组合公式:故事 + 痛点 + 数字,威力更强
语气与用词
- 第二人称:以「你」为主,直接对话
- 实用导向:拿来就用、照着做、第一步、第二步
- 短句:每点不宜过长,便于扫读
- 避免:喊口号式空洞表达、堆砌术语
金句与记忆点
- 每小节可有一句收束金句
- 单独成段或加粗,便于转发
结尾结构
1. 总结清单:用 1–2–3 或表格复述核心要点 2. 行动号召:从今天开始,先做第一步 3. 邀请反馈:有更好方法欢迎评论区补充
篇幅与排版
- 建议 2000–4000 字,干货密度高
- 字体 14–16 号,行距 1.5–1.75 倍
- 图胜于表,表胜于文,重要数据可加粗
适用场景
- 效率提升、习惯养成、职场方法论
- 工具使用教程、操作步骤拆解
- 某类问题的解决方案合集(如「解决拖延的 5 个方法」)
认知颠覆 / 反常识写作风格
参考「你以为的 XX,其实是 XX」「戳破常识」等高流量观点类文章。当用户要求「认知颠覆」「反常识」「观点文」「像 XX 那篇那种」时使用本指南。
核心原则(来自爆款分析)
- 戳破常识:你以为的 XX + 其实是 XX + 原因是 XX
- 制造冲突感:与大众认知形成反差,激发好奇心
- Bold 开头:0–3 秒内用大胆陈述、意外数字、反常识观点抓住注意力
- 好奇心缺口:让读者产生「为什么?」的追问欲
标题公式
- 认知颠覆式:「你以为 XX,其实 XX」
- 反常识提问:「为什么 XX 的人反而更 XX?」
- 戳破型:「别再信 XX 了,真相是 XX」
- 数字+反差:「90% 的人不知道的 XX 真相」
开头结构(Hook)
1. 大胆陈述:直接抛出反常识结论(如「努力是最被高估的品质」) 2. 意外数字:用数据颠覆认知(如「调查显示 70% 的成功者并不早起」) 3. 反常识提问:为什么 XX 的人反而更 XX? 4. 承诺:今天这篇,给你一个不一样的视角
正文结构(Problem 20% + Solution 60% + CTA 20%)
- 问题陈述(20%):大众普遍相信什么、为什么错
- 洞察/解决方案(60%):真正的逻辑是什么、证据是什么、案例佐证
- 行动号召(20%):读者可以怎么做
论证方式
- 案例佐证:具体人物、公司、事件
- 数据支撑:研究、调查、统计
- 逻辑推演:层层递进,戳破每一层误解
- 预判反驳:「我知道有人会说…」→ 正面回应
语气与用词
- 自信但不傲慢:用「其实」「真相是」「很少有人意识到」
- 第二人称:直接对话读者
- 短句:观点句单独成段,增强冲击力
- 避免:绝对化表述、人身攻击
金句与记忆点
- 核心颠覆观点单独成段、加粗
- 每小节可有一句收束金句
结尾结构
1. 重申核心观点:用一句话概括颠覆性结论 2. 行动建议:读者可以如何应用新认知 3. 邀请讨论:不同观点欢迎评论区见
篇幅与排版
- 建议 2000–3500 字,观点密度高
- 重要观点、数据可加粗
- 短段落、视觉分隔,防止读者流失
适用场景
- 行业认知、职场误区、学习方法
- 打破刻板印象、常识纠偏
- 热点事件的深度解读(与主流观点不同角度)
公众号封面图 Draw.io 生成指南
供 wechat-article-writer 生成封面/结尾图时参考。用户要求「生成封面」「封面图」或排版建议中包含【封面图】时使用。
使用时机
- 用户需要公众号文章封面图、结尾总结图
- 用户需要技术博客配图、B 站封面、小红书图文
- 排版建议中标注【封面图】【结尾图】需求
Step 1:收集输入
从用户消息或文章内容提取:用途(封面图/结尾图)、比例(默认合并封面)、主题/主标题/副标题、配色偏好。
公众号封面尺寸规范
| 用途 | 比例 | 画布尺寸 |
|---|---|---|
| 大封面(文章列表展示) | 2.35:1 | 900×383 px |
| 小封面(订阅号消息) | 1:1 | 383×383 px |
| 合并封面(推荐) | — | 1283×383 px(左侧 900 大封面 + 右侧 383 小封面) |
默认生成合并封面:1283×383 px,左侧大封面区域(0–900)放主视觉,右侧小封面区域(900–1283)放方形构图。用户可按需裁剪导出两张。
Step 2:生成 Draw.io XML
- 画布尺寸:
- 合并封面(默认)→ 1283×383
- 仅大封面 2.35:1 → 900×383
- 仅小封面 1:1 → 383×383
- 16:9(B 站/PPT)→ 1920×1080
- 9:16(竖版/小红书)→ 1080×1920
- 合并封面布局:
- 全画布背景矩形(1283×383)
- 左区(x:0 w:900):主标题大字(56–72pt)+ 副标题(24–32pt)+ 装饰元素
- 右区(x:900 w:383):方形构图,主标题缩小版(36–48pt)+ 核心视觉,无副标题
- 两区颜色一致,右区可加深背景或加边框以区分裁剪区域
- 装饰元素边界约束(严格执行):
- 所有装饰元素(圆形、图标、色块等)的 x、y、width、height 必须使 x ≥ 0、y ≥ 0、x+width ≤ 画布宽、y+height ≤ 画布高
- 禁止任何元素超出画布边缘,包括用负坐标或过大尺寸制造"溢出"效果
- 圆形装饰半径不超过画布高度的 60%(合并封面中 ≤ 230px)
- 配色:科技/教程/暖色/商务/清新/极简/活力/品牌色,用户未指定时根据主题推断
- XML:标签正确闭合、vertex="1"、id 从 0 递增、特殊字符转义
Step 3:输出
1. 完整 mxGraph XML,可保存为 .drawio 文件 2. 封面说明:1–2 句布局用途与风格 3. 使用说明:保存为 .drawio → Draw.io 打开 → 编辑 → 导出 PNG/JPG
推荐风格:明亮活力风(默认首选)
参考样式:亮色渐变背景 + 大字混排 + 笔刷装饰,整体轻快明亮,避免深色背景。
配色方案
| 配色 | 背景渐变 | 强调色 |
|---|---|---|
| 清新青绿(默认) | #B8F0D8 → #A8E6CF → #C8F0C0(左青绿到右薄荷) | #FF8C00(橙) |
| 活力黄橙 | #FFF0A0 → #FFD060 → #FFB030 | #E63C00(深橙红) |
| 粉紫梦幻 | #F8D0F0 → #E8B8F8 → #C8A8FF | #8800CC(紫) |
| 天蓝清爽 | #B8E8FF → #90D0FF → #C0F0F8 | #0060CC(蓝) |
布局要素
1. 背景:双色或三色斜向渐变矩形,填满画布;可叠加一个半透明大圆(直径 220–300px,opacity 60–80%,颜色取渐变亮色) 2. 笔刷底纹:2–3 条倾斜矩形(旋转 -5°~-8°,白色 fillColor,opacity 70–85%,height 60–90px),叠在标题文字下方作底板 3. 主标题:英文用粗黑体(fontStyle=1,fontSize 64–80px,黑色),中文用大字(fontStyle=1,fontSize 52–68px,强调色);两行错落叠放在笔刷上 4. 装饰:2–4 个四角星(★ 或 ✦,fontSize 18–28px,黑色或强调色),散布在标题周围;右上角可放小圆形 logo 区(直径 60px,白色边框) 5. 署名:画布底部居中,fontSize 22–26px,深灰色(#444444)
禁止事项
- 禁止深色背景(
#000000、#1a1a2e、#0d0d0d等深色系),除非用户明确要求 - 装饰圆不超过 3 个,且全部在画布内(边界约束见上方规则)
注意事项
- 主标题需足够大,确保公众号小图预览可辨识
- 配色与正文插图保持一致,便于整体风格统一
- 用户未指定风格时,默认使用「清新青绿」明亮活力风
风格提取维度
用以下维度提取写作风格。目标是复用「表达方法」,不是复用「原文内容」。
1. 开头策略
检查项:
- 是否先抛痛点/冲突
- 是否有反转句(如「问题不在 X,而在 Y」)
- 是否给出阅读承诺
输出示例:
- 开头模板:痛点场景 -> 反转归因 -> 本文承诺
2. 行文结构
检查项:
- 常用章节组织(并列/递进/时间线/问题-方案)
- 是否使用编号层级(一、二、三 / 1.1、1.2)
- 是否有固定「中段动作」(步骤、清单、案例)
输出示例:
- 主体骨架:定义 -> 对比 -> 步骤 -> 风险 -> 总结
3. 段落节奏
检查项:
- 平均段落长度(短段/长段)
- 是否单句成段强化重点
- 是否使用分隔符(如
---、···)
输出示例:
- 节奏规则:每节 2-4 段;关键句单独成段
4. 语气与人称
检查项:
- 主人称偏好(你/我/我们)
- 正式度(口语、半正式、学术)
- 情绪强度(克制、强烈、煽动)
输出示例:
- 语气规则:以「你」为主,口语化但不低俗
5. 句法特征
检查项:
- 短句比例
- 反问句、祈使句频率
- 括号、破折号、冒号等标点偏好
输出示例:
- 句法规则:优先短句;每节可包含 1-2 个反问句
6. 词汇与口头禅
检查项:
- 高频词与连接词
- 标志性短语
- 禁用词或慎用词
输出示例:
- 高频词:先说结论、但说实话、你一定遇到过
7. 修辞手法
检查项:
- 类比(工具比喻、生活场景比喻)
- 对比(旧方式 vs 新方式)
- 故事片段(个人经历/案例)
输出示例:
- 修辞规则:每 800 字至少 1 个类比 + 1 个对比
8. 信息密度
检查项:
- 是否定期出现可执行信息(步骤、表格、清单)
- 观点与行动建议比例
输出示例:
- 密度规则:每 600-800 字至少一个「可执行块」
9. 标题风格
检查项:
- 标题句式(痛点型、结果型、对比型、数字型、悬念型)
- 情绪词强度
输出示例:
- 标题模板:为什么你用了同样工具,结果却差 10 倍
10. 结尾动作
检查项:
- 是否有价值总结句
- 是否有行动号召
- 是否有互动引导(收藏、评论、转发)
输出示例:
- 结尾模板:一句话收束 -> 下一步建议 -> 互动引导
规则书写标准
将提取结果写成三类规则:
- 必须:强约束,违背会明显失真
- 优先:高概率提升相似度
- 避免:典型跑偏模式
每条规则使用动词开头,长度控制在 12-30 字。
身份共鸣 / 逆袭叙事写作风格
参考「我是谁 + 做了什么 + 得到什么」「传递你也行」等高流量身份共鸣类文章。当用户要求「身份共鸣」「逆袭」「你也行」「转行经历」「像 XX 那篇」时使用本指南。
核心原则(来自爆款分析)
- 身份共鸣:我是谁 + 做了什么 + 得到什么,传递「你也行」的信号
- 对号入座:让读者觉得「说的就是我」
- 低门槛逆袭:普通人能做到的转变,而非天才故事
- 情感 + 干货:既有共鸣,又有可借鉴的方法
标题公式
- 身份 + 结果:「27 岁转行做 XX,一年后我做到了 XX」
- 痛点 + 逆袭:「从月薪 5K 到 XX,我做了这 3 件事」
- 对号入座:「如果你也 XX,这篇是写给你的」
- 数字 + 身份:「30 岁零基础学 XX,3 个月后我 XX」
开头结构(建立身份连接)
1. 身份锚定:我是谁(普通人、转行者、新手、曾经和你一样) 2. 痛点共鸣:我曾经也 XX(焦虑、迷茫、踩坑) 3. 转折:直到我做了 XX / 遇到了 XX 4. 承诺:如果你也 XX,这篇可能对你有用
正文结构(做了什么 + 得到什么)
- 时间线/阶段:分阶段讲述转变过程(如「第 1 个月…第 3 个月…」)
- 具体动作:我做了哪几件事(可操作、可复制)
- 踩坑与避坑:我犯过的错、你可以少走的弯路
- 数据/结果:用具体数字呈现变化(收入、粉丝、能力)
情感与干货平衡
- 情感段落:低谷时的感受、突破时的喜悦,激发共鸣
- 干货段落:具体步骤、工具、方法,读者能照着做
- 穿插进行:避免纯鸡汤或纯干货,保持节奏
语气与用词
- 第一人称:以「我」为主线
- 真诚:不夸大、不装、承认不足
- 口语化:像跟朋友分享经验
- 第二人称穿插:「你也可以」「如果你…」
金句与记忆点
- 「你也行」类金句单独成段
- 核心方法论可加粗或列点
结尾结构
1. 回到读者:如果你也 XX,不妨试试 2. 轻行动号召:从一件小事开始 3. 邀请连接:有问题欢迎评论区交流
篇幅与排版
- 建议 2500–4000 字
- 时间线、步骤可用小标题分隔
- 关键数据、结果可加粗
适用场景
- 转行经历、副业起步、技能学习
- 普通人逆袭、从 0 到 1
- 职场/生活困境的突破分享
公众号正文插图 Draw.io 生成指南
供 wechat-article-writer 在 Step 5 生成正文插图时参考。用户要求「生成插图」「步骤图」「流程图」或排版建议中包含【正文插图】时使用。
使用时机
- 步骤图:教程步骤说明、操作流程、配置步骤
- 演示图:效果展示、功能演示、界面示意、数据/结果呈现
- 流程示意:节点+箭头
- 前后对比:修改前后、方案对比
- 截图占位:矩形+图注
Step 1:收集输入
从用户消息或文章内容提取:用途、插入位置、比例(默认 4:3)、插图类型、主题/内容、配色偏好(与封面一致)、步骤要点(步骤图时)。
Step 2:生成 Draw.io XML
- 画布尺寸:4:3→1200×900,16:9→1920×1080,1:1→900×900
- 插图类型:步骤说明图(编号+标题+说明)、演示图(效果框)、流程示意(节点+箭头)、前后对比(分栏)、截图占位(矩形+图注)
- 布局:步骤编号 24–36pt,说明文字 14–20pt,留白充足
- 配色:与封面保持一致(科技/教程/暖色/极简等)
- XML:vertex="1"、edge="1"、id 递增、特殊字符转义
Step 3:输出
1. 完整 mxGraph XML,可保存为 .drawio 文件 2. 插图说明:1–2 句用途与插入位置 3. 使用说明:保存为 .drawio → Draw.io 打开 → 编辑 → 导出 PNG/JPG
注意事项
- 配色需与文章封面风格统一
- 步骤图时可按用户提供的步骤要点生成编号与说明
深度随笔 / 个人感悟写作风格
参考「AI 时代记日记」「巴塞罗那出差记日记」等高流量深度思考类文章。当用户要求「深度思考风格」「随笔风格」「像日记那篇那种」「个人感悟风格」时使用本指南。
核心原则
- 第一人称:以「我」的亲身经历和思考为主线,真诚、不端着
- 故事托起观点:先讲具体场景、再抽象出道理,避免空谈
- 哲学思辨:在个人经历基础上,追问「为什么」「意味着什么」
- 引用加持:名人名言、经典著作、哲学家观点,增强说服力
开头结构
1. 个人场景:这两天人在 XX、终于把 XX 坚持了好几天 2. 过往对比:之前断断续续做过,但没坚持下来 3. 触发者:真正让我重新思考的,是两个人/一件事 4. 名人/事件引入:马伯庸、罗振宇等具体例子,他们的选择与理由 5. 核心观点:我想说一个观点——XX 就是你存在于这个世界的真实锚定
个人反思段落
- 数据/现象:过去三年经历了太多,但真正被留下来的少得可怜
- 自查:翻聊天记录、朋友圈、备忘录,碎片寥寥无几
- 比喻:大部分日子像水一样流走了,连个水渍都没留下
- 矛盾:你说我忙吗?可太忙了。每天都在产出,但那是给别人看的
- 追问:我自己的呢?那些凌晨肝的夜晚、面红耳赤后的发呆、被留言击中的瞬间——哪里都没有
- 认知转变:恰恰是那些你觉得太日常的东西,才是你这辈子真正活过的证据
具体故事(重要)
- 选一个有画面感的现场:时间、地点、细节(巴塞罗那周日、商店关门、遛狗的人、诺坎普球场、头顶飞过的海鸥)
- 情绪拐点:那一瞬间,忽然觉得有一种久违的宁静感
- 金句:那种感受,不是任何一张照片、任何一段文字、任何一个 AI 生成的内容能给我的
- 行动触发:那一刻,我觉得需要把今天看到的和感受记录下来
方法论段落
- 核心原则:一条简单可执行的原则(如「口述,不要写」)
- 破除心理障碍:很多人一听到 XX 就想到 XX,这个画面本身就有巨大心理压力——别这样
- 具体步骤:打开备忘录、语音输入、想到什么说什么
- 工具推荐:可顺带提具体工具(如豆包输入法),说明理由
- 本质区别:打字 vs 口述——打字时大脑里有编辑在实时工作,会润色、修剪、美化;口述来不及编辑,话已出口
反驳与边界
- 预判疑问:我知道到这一步可能有人会说,你说的道理我都懂,但我就是懒
- 坦诚:说实话我也担心自己坚持不下去
- 边界说明:仪式感是 XX 最大的敌人;不要用 AI 润色,日记的价值在于真实
- 正确用法:AI 的正确用法是回顾,帮你发现规律,但前提是原始材料必须是你自己的
哲学升华
- 时代命题:在 AI 时代,XX 可能不只是好习惯,而是必需品
- 名人引用:刘恒、柏格森等,用他们的概念解释你的观点
- 追问链:你的观点是你自己想出来的,还是 AI 帮你整理的?你的文风是你自己的,还是 AI 润色出来的?——这些问题越来越难回答
- 压缩比喻:大脑跟大模型一样有压缩算法,日子越来越同质化,一年过完空空荡荡;日记能对抗这种压缩
结尾结构
1. 行动号召:所以从今天开始 XX 吧 2. 三个对象:说给你自己听、说给十年后的你听、说给这个很快就要被 AI 填满的世界听 3. 存在宣言:在 2026 年的这一天,这里曾经站过一个真实的人,他有过一些微不足道的烦恼、说不清楚的感动、也许到死都没想明白的困惑 4. 收束金句:但他活过。并且他记得。
语气与用词
- 真诚:非常坦诚地讲、说实话、我其实
- 口语化:我靠、那可太忙了、忙到起飞、煞笔(可替换为更克制的表达)
- 短句:单句成段、追问句单独一行
- 第二人称穿插:在升华段落用「你」拉近距离
篇幅与排版
- 建议 4000–7000 字,长文深度
- 金句单独成段,可加粗
- 可穿插配图(日记截图、街头照片等)
适用场景
- 个人习惯/生活方式(记日记、读书、运动)
- AI 时代下的自我认同、存在意义
- 从个人经历抽象出普世道理的深度思考
个人实测 / 软件推荐写作风格
参考「软件推荐」「工具盘点」等高流量个人实测类文章。当用户要求「个人实测」「亲身推荐」时使用本指南。
核心原则
- 个人经历驱动:用真实经历(健康问题、踩坑、需求触发)作为开头,增强共鸣
- 坦诚实测:推荐旧版不推荐新版、推荐某渠道不推荐官网,说明具体原因
- 背景科普:在推荐前简要科普原理/依据(如防蓝光原理、医生建议、行业标准)
- 实用落地:每个推荐都有官网、下载方式、操作技巧
开头结构
1. 个人经历:最近 XX 出了点问题,去做了详细检查,这次才真正下定决心… 2. 过往努力:尽管我早在两年前就已经做了很多(列举 2–4 项具体措施及依据) 3. 转折:但可能这些做的都还是不足够… 4. 背景科普:XX 这个词相信大家都不陌生(简要原理、研究/医生建议) 5. 个人痛点:我自己经常会…再加之…所以各种问题都会更容易出现 6. 引出主题:所以最近又加上了 XX,这次也顺便来给大家推荐一下
背景科普(可选但加分)
- 用 1–2 段简要说明原理、标准、建议
- 示例:防蓝光(蓝光危害、偏暖色温)、医生建议(短暂频繁休息)、行业标准(环境光与工作区亮度比 1:3)
- 增强可信度,让读者理解「为什么需要」
推荐结构
- 按数字编号:1、2、3… 每项一个软件/工具
- 每项 5–8 个子项,按推荐优先级排序
- 可标注「阿虚自己选择用的是 XX」突出个人偏好
单项推荐格式
每个软件/工具包含:
1. 标题:软件名 2. 官网链接:放在开头 3. 一句话介绍:谁家的、特点(免费/付费、国内外出名等) 4. 核心功能:4 种模式、定时提醒、冷暖色调节等 5. 操作技巧:坐标填写、百度地图拾取、需手动辅助调整等 6. 版本/渠道建议:推荐旧版不推荐新版、推荐某渠道不推荐官网,说明原因(新版阉割了 XX、旧版可自定义 XX) 7. 缺点:只有英文界面、延迟时间固定、功能欠缺等 8. 下载方式:官网 / 储物间 X–X 栏 / 搜索关键词
排除说明(文末)
- 在正文推荐后,用一段话列出不推荐的软件及原因
- 格式:软件 A:有 XX 功能,但缺点是不能…;软件 B:多种模式,但休息间隔不能自定义…
- 收束:为了文章不废话,优中取优,上面省略了很多不推荐的
- 可加「↕上下滑动查看更多↕」等提示
结尾结构
1. 健康/行动提醒:无论软件能起到多大的辅助,最关键的都是要 XX+XX 2. 情感收束:大家可要好好保护 XX 啊
语气与用词
- 第一人称:阿虚、我、我自己
- 坦诚:可能这些做的都还是不足够、阿虚自己选择用的是、阿虚认为非常重要的
- 实用导向:好在软件还内置、最关键是可以、缺点就是
篇幅与排版
- 建议 4000–7000 字,长文可读性强
- 可穿插配图(软件界面、设置截图)
- 重要操作步骤可单独成段
适用场景
- 健康/护眼类软件推荐
- 个人实测的工具盘点(有真实使用经历)
- 需要背景科普 + 差异化建议的软件合集
Reference 目录说明
本目录存放 wechat-article-writer 的写作风格与配图指南,撰写/生成配图时按 SKILL.md 的规则读取对应文件。
写作风格(9 种,按序号排序)
| 序号 | 文件 | 用途 | 典型场景 |
|---|---|---|---|
| 1 | writing_style.md | 默认风格 | 教程、测评、经验分享 |
| 2 | viral_style.md | 高流量/爆款 | 概念科普、行业观察 |
| 3 | checklist_methodology_style.md | 清单体/方法论 | 干货步骤、效率提升、方法论 |
| 4 | resource_roundup_style.md | 资源盘点 | 工具替代方案、合集推荐 |
| 5 | personal_tool_review_style.md | 个人实测推荐 | 软件、工具、亲身实测盘点 |
| 6 | contrarian_opinion_style.md | 认知颠覆 | 反常识观点、戳破误区 |
| 7 | identity_transformation_style.md | 身份共鸣/逆袭 | 转行经历、普通人逆袭、你也行 |
| 8 | story_emotional_style.md | 故事化/情感共鸣 | 人物经历、困境突破、情感共鸣 |
| 9 | personal_essay_style.md | 深度随笔 | 个人感悟、AI 时代思考 |
配图指南(2 种)
| 文件 | 用途 |
|---|---|
| cover_guide.md | 封面图、结尾总结图(Draw.io) |
| illustration_guide.md | 正文插图(步骤图、流程示意、前后对比等) |
风格提取(1 种)
| 文件 | 用途 |
|---|---|
| extraction_dimensions.md | 从样本文章提取写作风格的维度与规则 |
资源盘点 / 工具推荐写作风格
参考「奶牛快传停服替代方案」「免费传大文件选择」等高流量资源盘点类文章。当用户要求「盘点」「替代方案」「合集」时使用本指南。
核心原则
- 实用至上:读者看完能立刻用上,每个推荐都有链接、有数据
- 坦诚排除:先说不推荐什么、为什么,增强可信度
- 分类清晰:按读者真实使用场景(如需登录 vs 免登录)分块
- 数据具体:容量、有效期、下载速度用具体数字(如 10GB、14 天、60 MB/s)
开头结构
1. 行业事件/痛点:前有 XX 关闭,现有 XX 停服(可加「没能和 XX 谈拢实属可惜」等) 2. 行业感慨:只能说 XX 这个业务是真不好做,基本是做一个垮一个 3. 刚需转折:但「给 XX 传大文件」始终是日常刚需 4. 引出主题:我们还有哪些免费选择呢?
排除说明(重要)
- 在正文推荐前,用一段话明确列出不推荐的服务及原因
- 格式:服务 A 不好注册;服务 B 国内无法下载;服务 C、D、E 下载过慢;服务 F、G 太小众易倒闭
- 收束:下方就不推荐这些服务了
- 作用:体现作者做过功课、帮读者避坑、增强信任
分类结构
- 按读者使用门槛或核心维度分块(如:需登录 vs 免登录)
- 每块用数字标题:1、2 或 1.1、1.2、2.1、2.2
- 每块内 5–10 个子项,按推荐优先级排序
单项推荐格式
每个工具/服务包含:
1. 标题:服务名 + 可选 👍 推荐标记 2. 一句话介绍:谁家的、什么时候上线、官网链接 3. 核心参数:最大文件、最长有效期、下载速度(具体数字) 4. 操作技巧:若有易踩坑点,单独说明(如「要进预览页再点分享」「不要点分享到微信,要复制链接」) 5. 缺点:坦诚说明限制(如「有效时长仅 30 分钟」「今后怎么收费不得而知」)
语气与用词
- 口语化:相当 Nice、无敌、良心的不得了、还是相当老牌了、轻轻松松、无可挑剔
- 数据驱动:搭配 IDM 能跑到 60–70 MB/s、多线程跑满宽带
- 实用导向:没啥好说的、使用上需要注意的就是、主要缺点就是
结尾结构
1. 总结表格:按分类列出所有推荐,表头含「最大文件」「最长时间」「下载速度」 2. 表格说明:可加「左右滑动查看表格」等提示 3. 邀请补充:有更好用的服务也欢迎在评论区分享
篇幅与排版
- 建议 3000–6000 字,长文可读性强
- 重要数据(容量、速度)可单独成段或加粗
- 表格作为收尾,方便读者按需选择
适用场景
- 工具/服务替代方案盘点(某产品停服后的选择)
- 某类资源/软件合集(免费 XX 推荐)
- 按场景分类的实用清单(需登录 vs 免登录、国内 vs 海外)
故事化 / 情感共鸣写作风格
参考「攒 300 万去云南躺平,越躺越心慌」「人物经历对比强烈」等高流量故事类文章。当用户要求「故事化」「情感共鸣」「人物故事」「像 XX 那篇」时使用本指南。
核心原则(来自爆款分析)
- 露、联、钩:暴露情绪与经历(露)、与读者相关(联)、指出痛点/痒点(钩)
- 细节决定质感:具体数字、场景、动作、对话,增强可信度
- 情感最能感染人:用「噩梦」「心慌」「被骂」等情绪词,激发同频情绪
- 阅读成本低:故事好读,人物经历对比强烈,细节丰富
故事骨架(一句话概括)
- 用一句话找到故事主心骨:困境 + 转机 + 顿悟 + 结果
- 整篇结构围绕这句话展开,表达不可磨灭的意义
开头结构(钩子)
1. 冲突/反差:美好与焦虑对立(如「攒 300 万去云南躺平,越躺越心慌」) 2. 情绪词:心慌、噩梦、网暴、被骂——情绪最能感染人 3. 好奇心:制造悬念,读者想知道「后来呢?」
细节写作(重要)
- 现场环境:时间、地点、光线、声音,提供沉浸式场景感
- 人物动作与状态:在特定时刻的真实反应,而非概括性描述
- 人物互动:对话、眼神、肢体语言,体现关系与感情
- 具体数字:年龄、金额、天数,增强冲击力
- 观察与采访 8:2:通过观察获得的信息远比提问多
人物经历处理
- 时空折叠:将人生不同时期的重要片段重新组织,实现能量共振
- 缺陷的转化:刻意暴露真实困境,将脆弱性转化为可信能量
- 情感压强:具体参数、情感峰值、价值跃迁
情感共鸣触发点
- 激发同频情绪、强社交属性、有参与感
- 场景化、贴近生活、干货有用
- 考虑读者转发朋友圈时的心理负担
结构模板
1. 困境:人物面临的挑战、低谷 2. 转机:某个契机、决定、遇见的人 3. 顿悟:那一瞬间的认知转变 4. 结果:现在的状态 + 对读者的启示
语气与用词
- 第一人称或第三人称:根据故事主角选择
- 口语化:像朋友讲故事,不端着
- 短句:情绪高潮处单句成段
- 避免:说教式总结、空洞升华
金句与记忆点
- 顿悟时刻的金句单独成段
- 可加粗,便于读者截图转发
结尾结构
1. 回到读者:这个故事对你有什么启示? 2. 轻行动号召:不必强求,有感而发即可 3. 留白:不把话说满,让读者自己回味
篇幅与排版
- 建议 2500–4500 字,故事完整即可
- 金句、情绪高潮处可单独成段
- 可配人物/场景图增强代入感
适用场景
- 人物经历、逆袭故事、人生选择
- 职场/生活困境与突破
- 情感类、共鸣类内容(如「为什么越努力越焦虑」)
高流量公众号写作风格
参考「Skills 爆款文」等高传播文章的写作风格。当用户要求「高流量风格」「爆款风格」「像 Skills 那篇那种」时使用本指南。
核心原则
- 人话:用大白话讲清楚,不堆术语,像朋友当面唠嗑
- 共鸣先行:开头直击「你一定在各种地方见过」「大部分人看完还是不知道」
- 比喻驱动:用接地气比喻解释抽象概念(如「AI 的 APP」「岗位手册」「门禁卡」)
- 反驳式推进:预判读者疑问(「这不就是 Prompt 模板吗?」)并正面回应
开头结构
1. 钩子:你/大家一定在…反反复复看到/听到/遇到… 2. 数据/现象:有多火?GitHub star 几万、某市场 16 万、三个月前还是零 3. 痛点:但说实话,大部分人看完还是不知道… 4. 承诺:今天这篇,我争取用人话,一次给你讲明白
段落分隔
- 使用固定分隔符作为小节分隔,增强节奏感。可选:
···、◆◆◆、———、或简洁 emoji(如🌊、●) - 每小节聚焦一个核心点,小节内 2–4 个短段
比喻与类比
- 一级比喻:先给结论(如「Skills = AI 的 APP」)
- 展开类比:手机装 APP 才有用 → AI 装 Skill 才有用
- 二级比喻:公司招新员工 → Prompt 是当面说的话,Skills 是岗位手册,MCP 是门禁卡
- 金句收束:Prompt 是嘴巴,Skills 是大脑里的知识,MCP 是手和脚
结构模板
1. 先说结论:一句话定义核心概念 2. 比喻展开:用 2–3 个递进比喻讲清楚 3. 反驳误解:「我知道这时候肯定有人要说了…」→ 解释差别 4. 场景举例:自媒体人、职场人、学生等具体场景,各 1–2 段 5. 时间线/数据:拉一条时间线、列数据佐证「这事有多猛」 6. 行动指南:三种方式/步骤,选一个适合你的 7. 升华感悟:从工具升级到人和 AI 关系的变化 8. 结尾行动号召:今天你就可以去试…做完这一个,你就会懂
语气与用词
- 第二人称:以「你」为主,直接对话
- 口语化:人话、白搭、真香、回不去了、唬人、手搓、从零到一
- 短句:单句成段、强调句单独一行
- 反问/设问:这玩意跟我有什么关系?我又不是程序员。
金句与记忆点
- 单独成段,加粗或强调
- 示例:「你的经验,你的流程,你的判断标准——以前这些东西只存在你脑子里,换个人就没了。现在它可以变成一个 Skill,被执行,被复制,被传承。」
- 结尾金句:如「你的 AI,你定义」「你身后,站着一支按你想法运转的 AI 团队」
篇幅
- 建议 2500–4000 字,长文可读性强
- 小节可多,每节不宜过长
结尾语
- 行动导向:今天你就可以去试…做完这一个,当它运行起来的那一瞬间,你就会懂
- 情感升华:你不再是一个人在战斗。你身后,站着一支按你想法运转的 AI 团队
- 品牌/口号收束:这就是 Skills。你的 AI,你定义
适用场景
- 概念科普(新名词、新趋势)
- 工具/方法论介绍
- 需要高传播、强共鸣的行业观察
公众号写作风格说明
供 AI 撰写公众号文章时参考。撰写前请先读取本文件并遵循以下约定。
涉及方向
公众号「小帅随笔」主要覆盖以下方向,撰文时可据此选角度、举例子:
- 软件测评:各类软件/工具的使用体验、优缺点、适用场景
- 黑科技分享:新奇、小众或前沿的用法、技巧、方案
- 冷门资源收集:不常见但实用的资源、链接、渠道整理
- 编程随笔:与编程、开发、效率相关的经验与笔记
目标读者
- 人群:不限定某一类,凡对上述方向感兴趣的人均可(可能是学生、职场人、开发者、效率党等),按单篇主题灵活面向对应读者
- 阅读场景:有明确问题时的搜索阅读、收藏后反复翻看的实用型内容(适合需要时细读或按步骤操作)
语气与风格
- 整体语气:偏「经验分享型」,兼顾专业与接地气,像学长/朋友一边唠嗑一边认真讲干货
- 人称:以「你」为主,适度出现「小帅」「我」来增强亲近感和信任感
- 是否可用网络梗、表情符号:适度,可以偶尔用「真香」「白嫖」「强烈推荐」等,但不过度堆砌,不刻意卖萌
禁止与慎用
- 禁止词汇/表述:明显攻击性或低俗用语(如:骂人词汇、低俗梗等)
- 慎用:过于夸张的标题党表达(如「震惊」「颠覆认知」「不看后悔一辈子」等),可以偶尔调侃式使用,但正文中保持理性、克制
常用结尾语
- 希望结尾带上的话术或引导:根据内容给出行动号召,例如「后台回复:某某关键词 获取工具 / 下载链接」「觉得有用可以收藏转发给需要的同学」「有其他需求可以在留言区告诉小帅」
示例:「觉得有用点个赞」「关注不迷路」「评论区聊聊你的做法」等,或留空由 AI 自由发挥
篇幅与结构
- 单篇字数偏好:2000–4000 字的长文教程型内容,允许图文较多,讲清楚为第一优先
- 小标题风格:常用「一、二、三」「1.1、1.2」这类分层结构,标题偏说明型/场景型(如「1.1 插件和脚本」「二. 安卓端」),适合读者快速扫读
其他说明
- 默认使用较多截图与箭头说明,文中可以主动提示「如下图所示」「具体界面见截图」等,引导读者跟着操作
- 善用加粗、高亮、列表和引用块,把「前提条件」「注意事项」「容易踩坑的点」单独拎出来讲清楚
(以上下划线处请按需填写,留空则表示不限定、由 AI 合理发挥。)
#!/bin/bash
###############################################################################
# Draw.io 批量导出脚本
# 功能:将 .drawio 文件批量导出为 PNG 图片
#
# 使用方法:
# ./export-drawio.sh # 导出所有 .drawio 文件
# ./export-drawio.sh covers # 仅导出封面图
# ./export-drawio.sh illustrations # 仅导出正文插图
###############################################################################
set -e # 遇到错误立即退出
# 颜色输出
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# 检查 draw.io 是否已安装
check_drawio() {
if command -v drawio &> /dev/null; then
echo -e "${GREEN}✓${NC} 检测到 draw.io 命令行工具"
return 0
elif command -v /Applications/draw.io.app/Contents/MacOS/draw.io &> /dev/null; then
echo -e "${GREEN}✓${NC} 检测到 draw.io Mac 应用"
DRAWIO_CMD="/Applications/draw.io.app/Contents/MacOS/draw.io"
return 0
else
echo -e "${RED}✗${NC} 未检测到 draw.io 工具"
echo ""
echo "请安装 draw.io:"
echo " macOS: brew install --cask drawio"
echo " Linux: snap install drawio"
echo " Windows: choco install drawio"
echo ""
echo "或手动下载:https://github.com/jgraph/drawio-desktop/releases"
exit 1
fi
}
# 导出单个文件
export_file() {
local input_file="$1"
local output_file="$2"
echo -e "${YELLOW}→${NC} 导出: $(basename "$input_file")"
${DRAWIO_CMD:-drawio} --export --format png --scale 2 \
--output "$output_file" "$input_file" &> /dev/null
if [ $? -eq 0 ]; then
echo -e "${GREEN}✓${NC} 成功: $output_file"
return 0
else
echo -e "${RED}✗${NC} 失败: $input_file"
return 1
fi
}
# 批量导出
batch_export() {
local source_dir="$1"
local export_dir="$2"
# 确保导出目录存在
mkdir -p "$export_dir"
local count=0
local success=0
for file in "$source_dir"/*.drawio; do
if [ -f "$file" ]; then
count=$((count + 1))
local filename=$(basename "$file" .drawio)
local output_file="$export_dir/${filename}.png"
if export_file "$file" "$output_file"; then
success=$((success + 1))
fi
fi
done
echo ""
echo -e "${GREEN}完成!${NC} 成功导出 $success/$count 个文件"
}
# 主函数
main() {
echo "Draw.io 批量导出工具"
echo "================================"
echo ""
check_drawio
local base_dir="../images"
local mode="${1:-all}"
case "$mode" in
covers)
echo "📁 模式: 仅导出封面图"
echo ""
batch_export "$base_dir/covers/source" "$base_dir/covers/export"
;;
illustrations)
echo "📁 模式: 仅导出正文插图"
echo ""
batch_export "$base_dir/illustrations/source" "$base_dir/illustrations/export"
;;
all)
echo "📁 模式: 导出所有图片"
echo ""
echo "【1/2】导出封面图..."
batch_export "$base_dir/covers/source" "$base_dir/covers/export"
echo ""
echo "【2/2】导出正文插图..."
batch_export "$base_dir/illustrations/source" "$base_dir/illustrations/export"
;;
*)
echo -e "${RED}✗${NC} 未知模式: $mode"
echo ""
echo "使用方法:"
echo " $0 # 导出所有"
echo " $0 covers # 仅封面"
echo " $0 illustrations # 仅插图"
exit 1
;;
esac
}
main "$@"/**
* 微信公众号自动上传脚本
* 功能:上传文章和图片到微信公众号草稿箱
*
* 使用方法:
* node upload-to-wechat.js --title "文章标题" --content article.md --cover cover.png
*/
const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs');
const path = require('path');
const MarkdownIt = require('markdown-it');
require('dotenv').config();
class WechatPublisher {
constructor(appId, appSecret) {
this.appId = appId;
this.appSecret = appSecret;
this.tokenCache = null;
this.tokenExpireTime = 0;
}
// 获取 access_token(带缓存)
async getAccessToken() {
const now = Date.now();
if (this.tokenCache && now < this.tokenExpireTime) {
console.log('📦 使用缓存的 access_token');
return this.tokenCache;
}
console.log('🔑 获取新的 access_token...');
const url = 'https://api.weixin.qq.com/cgi-bin/token';
const res = await axios.get(url, {
params: {
grant_type: 'client_credential',
appid: this.appId,
secret: this.appSecret
}
});
if (res.data.errcode) {
throw new Error(`获取 Token 失败: ${res.data.errmsg}`);
}
this.tokenCache = res.data.access_token;
// 提前 5 分钟过期,避免临界点问题
this.tokenExpireTime = now + (res.data.expires_in - 300) * 1000;
return this.tokenCache;
}
// 上传封面图(永久素材)
async uploadCover(imagePath) {
console.log(`上传封面图: ${path.basename(imagePath)}`);
const token = await this.getAccessToken();
const form = new FormData();
form.append('media', fs.createReadStream(imagePath));
const url = 'https://api.weixin.qq.com/cgi-bin/material/add_material';
const res = await axios.post(url, form, {
params: { access_token: token, type: 'image' },
headers: form.getHeaders()
});
if (res.data.errcode) {
throw new Error(`上传封面失败: ${res.data.errmsg}`);
}
console.log(`封面上传成功,media_id: ${res.data.media_id}`);
return res.data.media_id;
}
// 上传正文图片(临时素材)
async uploadContentImage(imagePath) {
console.log(`📷 上传正文图片: ${path.basename(imagePath)}`);
const token = await this.getAccessToken();
const form = new FormData();
form.append('media', fs.createReadStream(imagePath));
const url = 'https://api.weixin.qq.com/cgi-bin/media/uploadimg';
const res = await axios.post(url, form, {
params: { access_token: token },
headers: form.getHeaders()
});
if (res.data.errcode) {
throw new Error(`上传图片失败: ${res.data.errmsg}`);
}
return res.data.url;
}
// Markdown 转微信 HTML
convertToWechatHtml(markdown) {
console.log('转换 Markdown 为微信 HTML...');
const md = new MarkdownIt({
html: true,
linkify: true,
typographer: true
});
// 自定义渲染规则
const defaultRender = md.renderer.rules.paragraph_open || function(tokens, idx, options, env, self) {
return self.renderToken(tokens, idx, options);
};
// 段落样式
md.renderer.rules.paragraph_open = function(tokens, idx, options, env, self) {
tokens[idx].attrPush(['style', 'margin: 10px 0; line-height: 1.8; font-size: 16px; color: #333;']);
return defaultRender(tokens, idx, options, env, self);
};
// 标题样式
md.renderer.rules.heading_open = function(tokens, idx, options, env, self) {
const level = tokens[idx].tag;
const styles = {
h1: 'font-size: 24px; font-weight: bold; margin: 20px 0 10px; color: #2c3e50;',
h2: 'font-size: 20px; font-weight: bold; margin: 18px 0 8px; border-left: 4px solid #42b983; padding-left: 10px; color: #2c3e50;',
h3: 'font-size: 18px; font-weight: bold; margin: 15px 0 5px; color: #34495e;'
};
tokens[idx].attrPush(['style', styles[level] || '']);
return self.renderToken(tokens, idx, options);
};
// 代码块样式
md.renderer.rules.fence = function(tokens, idx) {
const code = tokens[idx].content;
const lang = tokens[idx].info || '';
return `<pre style="background: #f5f5f5; padding: 15px; border-radius: 5px; overflow-x: auto; margin: 15px 0;"><code style="font-family: 'Courier New', 'Consolas', monospace; font-size: 14px; color: #e96900;">${escapeHtml(code)}</code></pre>`;
};
// 引用样式
md.renderer.rules.blockquote_open = function(tokens, idx, options, env, self) {
return '<blockquote style="border-left: 4px solid #ddd; padding-left: 15px; margin: 15px 0; color: #666; font-style: italic;">';
};
// 列表样式
md.renderer.rules.bullet_list_open = function(tokens, idx, options, env, self) {
return '<ul style="padding-left: 20px; margin: 10px 0;">';
};
return md.render(markdown);
}
// 创建草稿
async createDraft(article) {
console.log('创建草稿...');
const token = await this.getAccessToken();
const url = 'https://api.weixin.qq.com/cgi-bin/draft/add';
const res = await axios.post(url,
{ articles: [article] },
{
params: { access_token: token },
headers: { 'Content-Type': 'application/json; charset=UTF-8' }
}
);
if (res.data.errcode && res.data.errcode !== 0) {
throw new Error(`创建草稿失败 [${res.data.errcode}]: ${res.data.errmsg}`);
}
return res.data.media_id;
}
// 完整发布流程
async publish({ title, contentPath, coverPath, author = '', digest = '' }) {
const startTime = Date.now();
try {
console.log('\n🚀 开始上传流程...\n');
// 1. 上传封面图
const thumbMediaId = await this.uploadCover(coverPath);
// 2. 读取并转换 Markdown
const markdown = fs.readFileSync(contentPath, 'utf-8');
const htmlContent = this.convertToWechatHtml(markdown);
// 3. 创建草稿
const mediaId = await this.createDraft({
title,
author,
digest: digest || markdown.substring(0, 54).replace(/[#*>\-]/g, '') + '...',
content: htmlContent,
thumb_media_id: thumbMediaId,
need_open_comment: 0,
only_fans_can_comment: 0
});
const duration = ((Date.now() - startTime) / 1000).toFixed(1);
console.log('\n草稿上传成功!');
console.log(`草稿 media_id: ${mediaId}`);
console.log(`请前往公众号后台查看并发布`);
console.log(`总耗时: ${duration} 秒\n`);
return { success: true, mediaId, duration };
} catch (error) {
console.error('\n❌ 上传失败:', error.message);
return { success: false, error: error.message };
}
}
}
// HTML 转义
function escapeHtml(text) {
const map = {
'&': '&',
'<': '<',
'>': '>',
'"': '"',
"'": '''
};
return text.replace(/[&<>"']/g, m => map[m]);
}
// 命令行参数解析
function parseArgs() {
const args = process.argv.slice(2);
const params = {};
for (let i = 0; i < args.length; i += 2) {
const key = args[i].replace('--', '');
params[key] = args[i + 1];
}
return params;
}
// 主函数
async function main() {
const params = parseArgs();
if (!params.title || !params.content || !params.cover) {
console.error(`
❌ 缺少必要参数!
使用方法:
node upload-to-wechat.js --title "文章标题" --content article.md --cover cover.png
参数说明:
--title 文章标题
--content Markdown 文件路径
--cover 封面图路径(PNG/JPG)
--author 作者名(可选)
--digest 摘要(可选,不填自动截取)
环境变量配置(.env 文件):
WECHAT_APPID=your_app_id
WECHAT_SECRET=your_app_secret
`);
process.exit(1);
}
// 检查环境变量
if (!process.env.WECHAT_APPID || !process.env.WECHAT_SECRET) {
console.error('❌ 未配置微信公众号凭证!请在 .env 文件中设置 WECHAT_APPID 和 WECHAT_SECRET');
process.exit(1);
}
// 检查文件是否存在
if (!fs.existsSync(params.content)) {
console.error(`❌ 文件不存在: ${params.content}`);
process.exit(1);
}
if (!fs.existsSync(params.cover)) {
console.error(`❌ 封面图不存在: ${params.cover}`);
process.exit(1);
}
const publisher = new WechatPublisher(
process.env.WECHAT_APPID,
process.env.WECHAT_SECRET
);
await publisher.publish({
title: params.title,
contentPath: params.content,
coverPath: params.cover,
author: params.author || '',
digest: params.digest || ''
});
}
// 导出类供其他脚本使用
module.exports = WechatPublisher;
// 命令行直接运行
if (require.main === module) {
main().catch(error => {
console.error('执行失败:', error);
process.exit(1);
});
}Related skills
How it compares
Use wechat-article-writer for WeChat Official Account drafts; pick generic blog-writing skills when distribution is not WeChat-specific.
FAQ
What platform does wechat-article-writer target?
wechat-article-writer targets WeChat Official Account article publishing, structuring titles, sections, and CTAs for mobile readers. Developers use it to adapt technical or product content into WeChat-ready drafts rather than generic blog Markdown.
Is wechat-article-writer for backend API work?
wechat-article-writer focuses on WeChat content drafting for growth and distribution channels, not backend API implementation. Invoke it when editorial output for Chinese WeChat audiences is the deliverable.