# Csdn Publisher Helper

> 当用户提到 CSDN、CSDN 博客、CSDN 发文、CSDN 发布文章、CSDN 编辑文章、CSDN 登录后操作、查看 CSDN 阅读历史、CSDN 消息、CSDN 创作中心、CSDN 标签、CSDN 草稿、CSDN 私信、CSDN 管理博文、CSDN 搜索文章、阅读 CSDN 文章、总结 CSDN 文章、整理笔记、提取知识点、根据 CSDN 内容做学习笔记、帮我在 CSDN 上操作网页时使用。

- Skill: `liueggy/csdn-publisher-helper` (Agent Skill)
- Install (CLI): `npx skillmds@latest add liueggy/csdn-publisher-helper`
- Raw SKILL.md: https://api.skillmd.com/api/skills/liueggy/csdn-publisher-helper/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: liueggy (https://skillmd.com/u/liueggy)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/liueggy/csdn-publisher-helper

---


# CSDN Publisher Helper

> 版本：`1.1.0`
> 
> 更新日期：`2026-04-18`
> 
> 本次更新：固化近期实测有效的 CSDN 高效发布/取链接/点赞评论路径，重点补充 CKEditor 正文写入、动态标签定位、成功页三重判定、评论真实发送按钮与成功回显判据。

用于在 Minis 内通过浏览器完成 CSDN 相关网页任务，包括搜索、阅读、总结、做笔记、发文与登录后操作。

## 适用范围

- 打开 CSDN 登录页、首页、搜索结果、文章详情页
- 打开创作中心、管理页、阅读历史、消息中心
- 搜索技术文章、筛选结果、打开指定文章
- 阅读文章正文、提取标题、作者、核心内容
- 根据阅读内容生成摘要、学习笔记、知识点清单、行动项
- 发布测试文章或简单文章
- 编辑已有文章、查看草稿、查看发布结果与审核状态
- 帮用户执行登录后的页面点击、输入、跳转

## 工作原则

- 默认使用 `browser_use` 直接操作网页
- 涉及“发送/发布/提交/删除/修改线上内容”时，先确保用户已明确授权
- 若用户说“已经登录了”，直接继续后续页面操作，不重复要求登录
- 优先使用明确页面 URL，减少首页层层跳转
- 先检查页面文字与按钮状态，再点击，避免误操作
- 搜索与阅读任务优先提取正文和可读内容，不只返回页面碎片文字
- 总结任务优先输出结构化结果，如摘要、要点、术语、代码关注点、实践建议
- 发布失败时先读取页面提示，判断缺少正文、标签、摘要、分类或其他必填项

## 常用页面

- 登录页：`https://passport.csdn.net/login`
- 首页：`https://www.csdn.net/`
- 博客首页：`https://blog.csdn.net/`
- 搜索：`https://so.csdn.net/so/search`
- 创作中心文章管理：`https://mp.csdn.net/mp_blog/manage/article`
- 写文章页：`https://mp.csdn.net/mp_blog/creation/editor?type=blog`
- 阅读历史：`https://i.csdn.net/#/user-center/history`
- 消息中心：`https://i.csdn.net/#/msg/index`

## 常见工作流

### 0. 高效发布与互动优先路径（实践验证）

当用户要求“帮我发到 CSDN / 直接发布 / 点赞评论 / 拿文章链接”时，优先走下面这条已验证路径：

1. 直接打开写文章页：`https://mp.csdn.net/mp_blog/creation/editor?type=blog`
2. 若页面能看到“发布文章”，说明登录态有效，无需先回登录页
3. 标题优先写入 `#txtTitle`
4. 正文优先通过 `window.CKEDITOR.instances[*].setData()` 写入，不要依赖长文本逐字输入
5. 摘要优先写入 `#txtSammary`
6. 标签不要等报错后再补；应先主动打开“添加文章标签”区域并明确点选 1~3 个候选标签
7. 标签输入框 ID 常为动态生成，优先通过 placeholder `请输入文字搜索，Enter键入可添加自定义标签` 定位，而不是写死 ID
8. 发布成功判定使用三重确认：
   - 页面标题为 `发布成功`
   - URL 包含 `/creation/success/`
   - 页面文案含 `发布成功！正在审核中`
9. 成功页拿文章链接时，优先点击“查看文章”，或从文章详情 URL 中提取干净主链接
10. 对文章点赞时可直接点击“点赞”控件；评论时不要只点容器 `.comment-write-bt`，应优先填写 `#writeComment` 后点击真正的发送按钮 `.write-bt-sure`
11. 评论成功的更稳判据：
   - 评论框内容被清空
   - 页面正文中出现当前账号名与评论内容回显
   - 出现“刚刚/几秒前”等时间提示

适用经验：
- 技术文章（如 STM32）标签可优先尝试：`stm32`、`单片机`、`嵌入式硬件`
- 随记/生活类文章标签可优先尝试：`生活`、`学习和成长`

### 1. 搜索 CSDN 文章

1. 根据用户关键词进入搜索页，必要时直接拼接查询参数
2. 提取搜索结果标题、摘要、作者或来源信息
3. 按编号返回，便于用户选择
4. 若用户要求“你自己挑”，优先选择与关键词最相关、标题清晰、工程实践价值更高的文章
5. 打开目标文章继续阅读或总结

可用策略：
- 用户说“帮我搜 STM32 定时器中断”，就直接搜索并返回前几条高相关结果
- 用户说“帮我找一篇讲 ROS2 slam_toolbox 的文章”，优先选教程型或实践型结果

### 2. 阅读并总结文章

1. 打开文章详情页
2. 用 `get_readable`、`get_text` 或必要时配合 DOM 提取正文
3. 识别标题、主题、核心问题、解决方案、关键步骤、代码/配置要点
4. 按用户需求输出：
   - 一句话摘要
   - 3~8 条核心要点
   - 面向初学者的解释
   - 面向实操的步骤清单
   - 风险点 / 坑点 / 注意事项
5. 若文章内容很长，先给总览，再给分节总结

### 3. 生成学习笔记

当用户要求“整理笔记”“做笔记”“帮我记一下”时：

1. 基于当前阅读内容提炼结构化笔记
2. 优先使用以下结构：
   - 主题
   - 背景/问题
   - 核心知识点
   - 关键命令/代码/配置
   - 常见错误
   - 我的下一步
3. 如果用户需要文件化结果，可写到 `/var/minis/workspace/` 下的 Markdown 文件，并返回可点击链接
4. 如果内容是用户长期会复用的学习记录，可建议保存为本地笔记；如果用户明确要求“记住”，再写入 memory

### 4. 查看阅读历史

1. 打开阅读历史 URL
2. 用 `get_text` 提取列表
3. 按条目编号返回给用户
4. 如用户要求，继续打开指定文章或继续下翻
5. 若历史明显集中于某方向，可顺手总结近期学习主题

### 5. 发布一篇测试文章

1. 打开写文章页
2. 填写标题（优先 `#txtTitle`）
3. 确认真正的正文编辑器位置
   - CSDN 常使用 CKEditor
   - 不要把正文误填到摘要框
   - 优先检查 `window.CKEDITOR.instances`
4. 通过 JS/CKEditor 实例写入正文，比普通输入更稳
5. 填写摘要（优先 `#txtSammary`）
6. 主动打开“添加文章标签”区域
   - 不要等报错后再补标签
   - 标签输入框优先按 placeholder 定位，不依赖动态 ID
   - 至少明确点击 1~2 个候选标签
7. 点击发布
8. 若页面提示“请设置文章标签”，说明标签虽然可能出现在页面上，但尚未真正完成选择；需要重新打开标签区并明确点选候选标签后再发布
9. 用成功页标题、URL、文案三重确认是否发布成功

### 6. 编辑已有文章

1. 先进入文章管理页
2. 定位目标文章
3. 点击编辑
4. 修改标题、正文、摘要或标签
5. 保存或重新发布

### 7. 查看消息或创作中心信息

1. 打开消息中心或创作中心页面
2. 提取消息分类、未读提示、文章状态或数据概览
3. 用简洁列表告知用户
4. 若用户要求，再继续点开具体消息或文章

## 阅读与总结输出模板

### 简版摘要

- 标题：
- 主题：
- 一句话总结：
- 关键要点：

### 学习笔记版

- 主题：
- 这篇文章解决了什么问题：
- 核心知识点：
- 关键步骤：
- 代码/配置关注点：
- 常见坑点：
- 我下一步可以做什么：

### 面向嵌入式/工程实践版

- 应用场景：
- 硬件/软件前提：
- 配置步骤：
- 调试方法：
- 易错点：
- 验证方式：

## 排障提示

- 若页面提示“请输入文章内容”，说明正文没有进入真正的编辑器
- 若页面提示“请设置文章标签”，需要补至少一个标签；注意页面上出现某个标签词不一定代表系统已确认，通常还需要在候选列表中明确点击
- 若点击后无变化，优先重新读取页面文字、查找元素或用 JS 定位按钮
- 若存在 iframe 编辑器，优先检查 `window.CKEDITOR.instances`
- 若搜索结果页内容不完整，可先等待 DOM 稳定，再提取可读文本
- 若文章正文被折叠、分页或懒加载，优先滚动、展开“阅读全文”后再总结
- 若页面已跳到成功页，再向用户汇报“已发布成功，正在审核中”
- 若标签输入框 ID 变化，不要依赖硬编码 ID，优先通过 placeholder 文本定位
- 若成功页仍残留“请设置文章标签”“文章正在保存，请耐心等待”等旧提示，不要仅凭单条提示误判；应以页面标题、URL、主文案三重确认
- 评论操作中，若点击“发送”后评论未回显且评论框内容仍保留，通常说明未真实提交成功；应改为直接点击真正的发送按钮 `.write-bt-sure`
- 评论提交成功后，通常可观察到：评论框清空、页面出现当前账号与评论内容回显、评论时间显示为“刚刚/几秒前”

## 回复风格

- 简洁告诉用户当前进度：已打开、已搜索、已阅读、已总结、已发布
- 搜索结果按编号给出，便于用户继续指定
- 总结尽量结构化，不堆砌原文
- 如果用户明显是学习目的，优先补充“这篇文章适合拿来做什么”与“下一步怎么练”
- 不泄露账号敏感信息，不要求用户在聊天中发送密码

