9.6k★by c4chuan
csdn-publisher – OpenClaw Skill
csdn-publisher is an OpenClaw Skills integration for coding workflows. 写文章并发布到 CSDN。使用浏览器自动化 + 扫码登录。支持通过 Telegram 发送二维码,无需 VNC。集成 blog-writer 写作方法论,产出高质量、有个人风格的技术文章。
Skill Snapshot
| name | csdn-publisher |
| description | 写文章并发布到 CSDN。使用浏览器自动化 + 扫码登录。支持通过 Telegram 发送二维码,无需 VNC。集成 blog-writer 写作方法论,产出高质量、有个人风格的技术文章。 OpenClaw Skills integration. |
| owner | c4chuan |
| repository | c4chuan/csdn-publisher |
| language | Markdown |
| license | MIT |
| topics | |
| security | L1 |
| install | openclaw add @c4chuan/csdn-publisher |
| last updated | Feb 7, 2026 |
Maintainer

name: csdn-publisher version: 2.0.0 description: 写文章并发布到 CSDN。使用浏览器自动化 + 扫码登录。支持通过 Telegram 发送二维码,无需 VNC。集成 blog-writer 写作方法论,产出高质量、有个人风格的技术文章。
CSDN Publisher
通过浏览器自动化发布文章到 CSDN。支持扫码登录,二维码可通过 Telegram 发送。
v2.0 新增:集成 blog-writer 写作方法论,自动产出高质量、有个人风格的技术文章。
🎯 核心工作流(v2.0)
1. 用户说"帮我发篇 CSDN 文章"或提供主题/素材
2. 【内容创作阶段】调用 blog-writer 写作方法论
├─ 阅读 style-guide-cn.md 校准写作风格
├─ 参考 examples/ 目录中的示例文章
├─ 整合用户提供的素材/研究材料
└─ 产出初稿,用户确认后继续
3. 检查登录状态
├─ 已登录 → 继续
└─ 未登录 → 扫码登录流程
4. 启动浏览器,打开编辑器
5. 注入标题和内容
6. 添加标签,点击发布
7. 验证发布成功,返回文章链接
8. 【可选】用户确认终稿后,保存到 examples/ 目录
✍️ 内容创作阶段(核心)
触发条件
当用户请求写文章时,必须先完成内容创作,再进行发布。
触发词:
- "帮我写篇文章"
- "发布到 CSDN"
- "写一篇关于 XXX 的博客"
- 提供主题、素材、链接等
写作流程
Step 1: 收集信息
向用户确认:
- 主题:写什么?
- 角度:从什么视角切入?(教程、踩坑记录、观点输出、技术分析)
- 素材:有没有参考链接、笔记、代码片段?
- 长度:简短(500-800字)/ 标准(800-1500字)/ 深度(1500-3000字)
Step 2: 阅读风格指南
必须阅读 style-guide-cn.md 校准写作风格。
核心原则:
- 直接、有观点、不装腔作势
- 口语化表达,像跟朋友聊天
- 第一人称叙述个人经历
- 短段落(2-4句话)
- 多用小标题分隔内容
Step 3: 参考示例文章
阅读 examples/ 目录中的示例文章,感受目标风格。
Step 4: 撰写初稿
按照风格指南撰写,完成后展示给用户确认。
Step 5: 迭代修改
根据用户反馈修改,直到用户满意。
📝 写作风格指南(中文版)
详见 style-guide-cn.md,核心要点:
开头模式
用强有力的观点或个人经历开场:
✅ 好的开头:
- "搞了两个小时,终于把这个坑填上了。"
- "说实话,我一开始是拒绝用 XXX 的。"
- "作为一个写了 5 年代码的人,我可以负责任地说:这玩意儿真的有用。"
❌ 避免的开头:
- "随着人工智能的快速发展..."
- "在当今数字化时代..."
- "众所周知..."
结构模式
# [直接、有态度的标题]
[开头:1-2句话抛出核心观点或问题]
### [小标题1:问题/背景]
[2-3个短段落]
### [小标题2:过程/分析]
[具体细节、代码、截图]
### [小标题3:解决方案/结论]
[实操步骤或观点总结]
### 写在最后
[个人感想、行动号召、或前瞻性思考]
语言风格
用这些:
- "说实话"、"坦白讲"
- "踩了个坑"、"折腾了半天"
- "真香"、"血泪教训"
- 第一人称:"我发现"、"我的做法是"
避免这些:
- "首先...其次...最后..."
- "值得注意的是"
- "综上所述"
- "不难发现"
新闻资讯类文章特别要求
写新闻汇总、行业日报等资讯类文章时:
- 必须附带原文链接:每条新闻都要有跳转链接,方便读者查看原文
- 链接格式:
[新闻标题](原文URL)或在新闻末尾标注👉 [原文链接](URL) - 如果原文链接不可用,标注来源名称(如"来源:36氪")
段落长度
- 每段 2-4 句话
- 单句成段用于强调
- 每 150-250 字一个小标题
🔧 技术发布流程
前置条件
1. 安装 Chrome
cd /tmp && curl -sL \
"https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm" \
-o chrome.rpm && yum install -y ./chrome.rpm
2. 安装 Python 依赖
pip install playwright -i https://pypi.org/simple/
playwright install chromium
3. 配置 OpenClaw 浏览器
需要 headless + noSandbox 模式(服务器无显示器):
# 通过 gateway config.patch 添加:
{"browser": {"headless": true, "noSandbox": true}}
扫码登录流程 ✨
完整流程(推荐)
- 启动登录脚本
cd /root/.openclaw/workspace/skills/csdn-publisher
nohup python scripts/login.py login --timeout 300 > /tmp/csdn-login.log 2>&1 &
- 等待二维码生成(约 10-15 秒)
ls ~/.openclaw/workspace/credentials/csdn-qr.png
- 通过 Telegram 发送二维码
message(action="send", filePath="~/.openclaw/workspace/credentials/csdn-qr.png", target="用户ID", caption="请用 CSDN App 扫码登录")
- 用户扫码后,脚本自动保存 Cookie
cat /tmp/csdn-login.log
检查 Cookie 有效性
python scripts/login.py check
发布文章流程(browser 工具)
Step 1: 启动浏览器并检查登录状态
browser action=start profile=openclaw
browser action=navigate targetUrl=https://editor.csdn.net/md
browser action=snapshot
检查 snapshot 结果:
- 看到
textbox "请输入文章标题"→ 已登录 ✅ - 看到
登录或扫码→ 需要扫码登录
Step 2: 扫码登录(仅首次或 Cookie 过期时)
browser action=navigate targetUrl=https://passport.csdn.net/login
browser action=screenshot # 截取二维码发给用户
Step 3: 注入标题和内容
// 通过 browser act evaluate 执行
// 输入标题
const input = document.querySelector('input.article-bar__title');
input.value = '你的标题';
input.dispatchEvent(new Event('input', { bubbles: true }));
// 注入内容
const content = `你的 Markdown 内容`;
const editor = document.querySelector('.editor__inner');
editor.textContent = content;
editor.dispatchEvent(new Event('input', { bubbles: true }));
Step 4: 发布
- 点击"发布文章"按钮
- 在弹窗中添加标签(必填)
- 确认发布
- 验证成功(检查是否跳转到成功页面)
📁 目录结构
csdn-publisher/
├── SKILL.md # 本文档
├── style-guide-cn.md # 中文写作风格指南
├── examples/ # 示例文章库
│ └── *.md # 示例文章(YYYY-MM-DD-slug.md)
└── scripts/
└── login.py # 扫码登录脚本
📚 示例文章管理
保存终稿
当用户确认文章为终稿时,保存到 examples/ 目录:
examples/YYYY-MM-DD-slug-title.md
例如:examples/2025-02-02-gui-agent-overview.md
示例库维护
- 保持 10-20 篇示例文章
- 超过 20 篇时,询问用户是否删除最旧的 5 篇
- 示例文章用于校准写作风格
🔗 依赖技能
本技能依赖 blog-writer 的写作方法论:
skills/blog-writer/
├── SKILL.md # 写作工作流
├── style-guide.md # 英文风格指南(参考)
└── *.md # 示例文章
在撰写文章时,可参考 blog-writer 的:
- 结构模式
- 开头/结尾技巧
- 个人经历融入方式
踩坑记录
| 坑 | 原因 | 解决方案 |
|---|---|---|
| Playwright 安装失败 | 国内镜像源没有 | pip install playwright -i https://pypi.org/simple/ |
| 进程被 kill | OpenClaw 超时机制 | 用 nohup 后台运行 |
| 二维码定位失败 | 选择器不对 | 用 img[src*="qrcode"] |
| 浏览器启动失败 | 服务器无显示器 | 配置 headless: true, noSandbox: true |
| Cookie 注入无效 | domain 设置错误 | 必须设置 domain=.csdn.net |
| 标签未添加 | 必填项 | 发布前必须添加至少一个标签 |
Cookie 存储
~/.openclaw/workspace/credentials/csdn-cookie.json # Playwright storage_state 格式
~/.openclaw/workspace/credentials/csdn-cookie.txt # 简单字符串格式(兼容)
~/.openclaw/workspace/credentials/csdn-qr.png # 登录二维码截图
登录状态说明 🔑
browser 工具使用 Chrome 的 user-data 目录,登录状态是持久化的:
- 首次使用需要扫码登录
- 登录后状态自动保存到
/root/.openclaw/browser/openclaw/user-data - 下次启动 browser 工具会自动加载登录状态
- Cookie 过期后(通常几天到几周)需要重新扫码
自动通知配置 🔔
配置 Telegram 通知
python scripts/login.py setup-notify \
--bot-token "YOUR_BOT_TOKEN" \
--chat-id "YOUR_CHAT_ID"
启动带通知的登录
nohup python scripts/login.py login --timeout 300 --notify > /tmp/csdn-login.log 2>&1 &
Changelog
- v2.0.0: 集成 blog-writer 写作方法论,添加中文风格指南,重构工作流
- v1.3.0: 添加登录成功自动 Telegram 通知功能
- v1.2.0: 完善 Telegram 二维码发送流程,添加完整工作流示例
- v1.1.0: 添加扫码登录脚本
scripts/login.py - v1.0.0: 初始版本,手动 Cookie 注入
CSDN Publisher Skill
🐙 OpenClaw Skill - 写文章并发布到 CSDN
功能
- 浏览器自动化发布文章到 CSDN
- 扫码登录(支持通过 Telegram 发送二维码,无需 VNC)
- 集成 blog-writer 写作方法论,产出高质量技术文章
安装
将此 skill 放入 OpenClaw workspace 的 skills/ 目录:
cd ~/.openclaw/workspace/skills
git clone https://github.com/c4chuan/csdn-publisher.git
使用
在 OpenClaw 中直接说:
- "帮我写一篇关于 XXX 的文章发到 CSDN"
- "发布这篇文章到 CSDN"
文件结构
SKILL.md- Skill 主文件,包含完整的发布流程style-guide-cn.md- 中文写作风格指南scripts/login.py- 登录辅助脚本examples/- 示例文章
License
MIT
Permissions & Security
Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.
Requirements
- OpenClaw CLI installed and configured.
- Language: Markdown
- License: MIT
- Topics:
FAQ
How do I install csdn-publisher?
Run openclaw add @c4chuan/csdn-publisher in your terminal. This installs csdn-publisher into your OpenClaw Skills catalog.
Does this skill run locally or in the cloud?
OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.
Where can I verify the source code?
The source repository is available at https://github.com/openclaw/skills/tree/main/skills/c4chuan/csdn-publisher. Review commits and README documentation before installing.
