# Csdn Article Publisher

> Upload or update Word, TXT and Markdown articles in CSDN, preserving text, formatting and image positions; repair failed images and verify publishing states. When explicitly requested, use CSDN's official sync assistant to send the article to Juejin and Zhihu drafts, then verify each target. Not for general copywriting or unrelated standalone platform tasks.

- Skill: `easonzhu1997/csdn-article-publisher` (Agent Skill, multi-file: 22 files)
- Install (CLI): `npx get-skill add easonzhu1997/csdn-article-publisher`
- Raw SKILL.md: https://api.skillmd.com/api/skills/easonzhu1997/csdn-article-publisher/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: EasonZhu1997 (https://skillmd.com/u/easonzhu1997)
- Updated: 2026-11-14
- Page: https://skillmd.com/skills/easonzhu1997/csdn-article-publisher

---


# CSDN 图文发布与图片修复

把用户指定的 Word、TXT、MD / Markdown 文章上传到 CSDN，或修复已有文章的图片；用户明确选择时，也可通过 CSDN 官方同步助手分发到掘金和知乎。成功标准是各目标的内容、图片位置和保存状态均可验证，不是仅点过发布或同步按钮。

## 先确定这次任务

- 明确源文件/正文、目标账号和文章、新建还是更新，以及只存草稿还是发布。缺失且无法从当前请求确定时才询问。
- 用户指定原帖或编辑器链接时，更新同一文章，保留标题和无关编辑，不重复新建。
- 只要求图片修复时，不顺手改文案、图片内容、风格、许可或其他平台。原图发现问题可单独说明。
- 本技能不授予登录、发帖、权限变更或跨平台同步的新授权。执行当前用户实际要求的范围，遵循宿主的确认规则。
- 只读请求只检查；“整理成技能”只制作技能，不顺带发布文章。
- “发到 CSDN”默认只有 CSDN；“同步到掘金、知乎”按官方同步草稿路线执行，不自动理解为公开发布。“三个平台都正式发布”才包含目标平台的发布步骤。只要求草稿时，不能为了启用同步而先公开 CSDN 原文。

## 工具和资料入口

使用当前环境实际提供的浏览器工具；先读它的操作说明，以当前网页控件为依据。不要把本包的例子当成某个客户端固定可用的 API。

- 浏览器录入、上传、光标和故障恢复：读 [references/browser-workflow.md](references/browser-workflow.md)。
- Word 原图清单、已上传 URL 清单与本地归位：读 [references/image-mapping.md](references/image-mapping.md)。
- TXT / Markdown 准备、编码和本地图：读 [references/text-input.md](references/text-input.md)。
- Markdown 图片原位回填：读 [references/md-image-mapping.md](references/md-image-mapping.md)。
- 纯 TXT 保真和 Markdown 转富文本：读 [references/richtext.md](references/richtext.md)。
- 保存、审核、公开状态和结束前检查：读 [references/verification.md](references/verification.md)。
- 明确要求同时同步掘金、知乎：先读 [references/cross-platform-sync.md](references/cross-platform-sync.md)，检查官方同步入口、浏览器扩展和目标登录状态，再逐平台验收。

所有脚本和引用均在本文件夹内。脚本只处理本地文件，不读取浏览器凭据、不调用 CSDN 私有接口、不执行发布。

## 按来源和当前编辑器选择路线

- **普通 TXT**：默认运行 `render_richtext.py --literal-txt` 读取原 TXT，保留字面符号、缩进、连续空格和首尾空行，再走富文本或原生预格式块转入。不要把 `#`、图片写法或反引号自动当排版；仅当用户确认 TXT 本来就是 Markdown，才使用 `prepare_text.py --txt-as-markdown`。
- **MD / Markdown**：先 `prepare_text.py`，解决缺图和其他阻断；通过原生界面上传清单中的本地图，再用 `finalize_images.py` 回填 `CS_IMAGE` 占位。零图稿同样可通过空映射 `{}` 完成本地校验。
- **当前确实为 Markdown 编辑器**：把最终 Markdown 作为源码粘贴到其源码区，并检查预览中的标题、代码、列表、链接和图片；不是把源码粘贴到普通富文本正文。
- **当前为富文本编辑器**：用 `render_richtext.py --article` 生成语义 HTML，再通过工具实际支持的 HTML 剪贴板或原生复制粘贴转入，详见富文本说明。只生成 HTML 不代表网站已收录格式。
- **Word 或已有帖图片修复**：保留下面的 Word 清单与 `repair_html.mjs` 路线。本包不是完整 DOCX 排版转换器；新 Word 正文需宿主可靠转换或用户导出，再逐项核对。

两种图片清单不能混用：`docx_inventory.py` 的 Word 清单配数字键 URL 映射，交给 `repair_html.mjs`；`prepare_text.py` 的 Markdown 清单配 `{{CS_IMAGE_0001}}` 对象映射，交给 `finalize_images.py`。转换生成的富文本清单又是验收基线，不是图片回填输入。工作输出分目录保存，不覆盖用户源文件。

## 执行流程

### 1. 取证和备份

读取最新指定源文件，不沿用旧文章的图片总数。TXT / MD 按上方对应路线准备；对 Word 用随包脚本生成有序清单：

```bash
python3 scripts/docx_inventory.py --source "/path/to/article.docx" --out "/path/to/new-task-output"
```

检查原图、相邻段落和图注。重复使用同一图应保留每次出现；损坏引用、浮动图、无图注或表格里的图需人工核对，不能直接猜位置。

更新已有文章前，通过允许的只读 DOM/编辑器导出能力记录原正文、标题、图片清单和文章 URL，保存到本次任务工作目录。**修复脚本的输入应是插入任何临时编号之前的备份**，不是已经混入上传测试内容的正文。

### 2. 形成明确的图片位置表

每次图片出现都绑定编号、原文件、图注/上下文锚点、最终平台地址。

- Markdown 依据原文每次图片出现的 `CS_IMAGE` 位置回填，保留 alt 和支持的 title，不需虚构图注。以下图注锚点规则用于 Word / 现有 HTML 修复。
- 有唯一图注：通常放在图注前，但仍以 Word 原文关系为准。
- 封面、无图注、同段多图、重复图注：看前后文或 Word 版面，提供明确锚点。
- 不能唯一定位时停止自动归位，先确认位置；不要把未定位的图统一堆在开头或末尾。

### 3. 上传原图

优先使用 CSDN 当前的本地图片上传入口。先用一张图验证实际文件上传、托管地址和加载结果，再扩大到小批次。

若当前富文本编辑器支持粘贴内嵌原图并自动转存，可以分批使用；必须逐批确认真实托管地址。不要留下 `file:`、WPS 临时路径、`blob:` 或仅在本机有效的图片。

不要把一次失败推断成固定平台限制：批量能力、文件限制、编辑器结构以当前页面为准。整篇内嵌大图可能使传输中断，出现问题时缩小批次或换回原生文件上传，而不是原样重复。

### 4. 归位并保留原文

少量缺图：在经过验证的光标处逐张补图。

Word / 现有 HTML 大量缺图或错位：上传齐全后，用 [scripts/repair_html.mjs](scripts/repair_html.mjs) 在本地对原正文备份生成归位版本。Markdown 用 `finalize_images.py`，不能把其清单传给 Word 修复器。先核对输出审计，再通过当前编辑器支持的正常粘贴/导入动作写回。不能通过只读页面求值接口修改 DOM、调用隐藏编辑器对象或绕过界面提交。

新文章可用宿主现有的可靠 Word→富文本转换能力；本包的提取脚本不是完整 Word 排版转换器。保留代码换行、链接和标题层级，不能把 HTML 源码当正文直接贴入。

### 5. 验证后保存

按 [references/verification.md](references/verification.md) 检查图片数量、顺序、原图对应、图注位置、加载和正文保留，再执行用户授权的保存/发布。

分别报告“编辑器已核对”“已保存草稿”“已提交审核”“公开页已验证”。审核未结束时不能声称已经公开完成；公开页打不开时如实说明。

### 6. 可选：同步掘金与知乎

本次已明确选择跨平台同步时，优先走 CSDN 官方同步助手，不先重复创建其他平台文章。它与本技能是不同工具，需要当前浏览器实际具备扩展和目标平台登录态；不能从浏览器里开着目标网页推断条件已经满足。

按 [多平台同步](references/cross-platform-sync.md) 核实原文版本与目标账号，只同步选定平台，先检查生成的目标草稿。用户还授权正式发布时，再在掘金、知乎各自完成分类/话题等必要资料、排版验收和发布。同步成功不等于正式发布，更不等于审核通过。

某平台失败先查同步历史和已存在的目标草稿，避免重复分发；官方路线确实不可用且用户未限定只能使用该助手时，可在原有目标、浏览器和草稿/发布范围内分平台处理。不要把 CSDN 的图床映射或 `CS_IMAGE` 清单直接交给其他平台脚本。

## 中断和交接

锁屏、验证码、登录失效或工具断连时，先保存允许保存的任务记录，再请求必要的用户接手。不要通过其他技术绕过浏览器或系统的安全限制。

遇到无变化/失败，先检查是否已成功、选区是否正确、是否有弹窗。查明原因后最多再试两次同类操作；仍失败则换已经支持的安全方式或报告具体阻碍。发布响应不确定时先查同一篇文章状态，避免重复发帖。

交接记录写在任务工作目录，而不是本技能文件夹：源文件指纹、文章链接、成功图片 URL、缺失项、当前位置、最后确认状态、后续动作。共享技能时不要打包这些用户数据。

