X 文章发布助手
一条命令把 Markdown 文章发布到 X (Twitter) Articles,免去手工排版、传图、调格式的繁琐流程。
加分点:强制只存草稿、绝不自动发布(Critical Rules 明确)、需要用户手动登录 X、图片找不到时仅搜索本机常见目录并在 stderr 披露。扣分点:parse_markdown.py 默认静默扫描用户 ~/Downloads、~/Desktop、~/Pictures 以替代缺失图片,属于超出最小必要的数据访问且默认开启、无用户确认;通过 Playwright 操作已登录的 X 会话,发布/上传等外部副作用缺乏显式逐次确认机制;无回滚说明(仅草稿可手动删除)。
三个脚本结构完整、参数清晰、错误经 stderr 输出且区分 missing_images/exists 字段,平台不支持时有明确报错,故障排除覆盖 MCP 连接、浏览器锁定、路径问题。扣分点:Markdown→HTML 转换基于正则,嵌套结构、表格内格式、H3+列表组合等易错;无任何测试或 CI 证明关键路径;对 X 编辑器 DOM 结构的假设(按钮文案、ref)随平台改版即失效;SKILL.md 内定位策略描述自相矛盾(既说推荐 block_index 又在 Step 6 推荐用 after_text 文字搜索)。静态审查不上限超过 10。
目标场景(Markdown 发布到 X Articles)和触发描述明确,支持范围表格、Linux 不支持、Premium Plus 门槛均披露。扣分点:核心功能完全依赖 x.com 与 Playwright MCP,中国大陆网络对 x.com 的可达性差且需付费订阅,未作提示;触发条件可能过宽(提及 'X article' 即触发);对 X UI 版本的脆弱性未声明为边界。
有 MIT LICENSE、版本号、changelog、双语 README、对 sugarforever/01coder-agent-skills 的来源致谢,信息分层较好。扣分点:changelog 日期矛盾(v1.1.0 标 2025-12 早于 v1.2.0 的 2025-01);Linux 支持状态在 README 与脚本(明确报不支持)间不一致;脚本路径硬编码 ~/.claude/skills/ 假设;SKILL.md 与 README 在 after_text/block_index 使用建议上不一致;无已知限制(如编辑器改版失效)章节。
核心任务路径(解析→剪贴板→浏览器粘贴→存草稿)设计合理,相比手工操作有明显效率价值,README 给出对比表和示例输出。扣分点:全部依赖未执行的浏览器 UI 自动化,无提交的测试或执行证据,实际成功率不可验证;对 X 编辑器改版高度敏感,'10x 效率'属作者自述;表格/代码块降级为引用块有格式损失。静态审查上限 7。
源码可直接审计、README 含示例 JSON 和致谢,属可审计一手材料。扣分点:无测试、无 CI 工作流证据、无第三方复现,所有成效声明(时间对比、可靠性改进)均出自作者,无独立佐证。静态上限 5,实际证据更薄。
- parse_markdown.py 在图片缺失时会默认搜索用户的 Downloads/Desktop/Pictures 目录,属于默认开启的本地文件扫描,隐私敏感用户应知悉或修改 SEARCH_DIRS。
- 该技能通过已登录的 X 会话进行浏览器自动化并上传内容,但无逐次操作确认机制;请始终人工检查草稿后再手动发布。
- 核心功能依赖 x.com 和 X Premium Plus 订阅,中国大陆网络环境下可能无法直接访问,且 X 编辑器改版可能导致流程失效。
- Markdown 转 HTML 为正则实现,嵌套格式和复杂表格可能有格式损失;表格/代码块会被降级为图片或引用块。
- 仓库内无测试与 CI 执行证据,所有效率与可靠性声明均未经独立验证;Linux 不受支持。
- SKILL.md 与 README 在 block_index 与 after_text 定位建议上表述不一致,changelog 日期有矛盾,使用时以脚本实际行为为准。
这个 Skill 能做什么,适合哪些场景?
这是一个面向 Claude Code 的 Agent Skill,用于将 Markdown 文章自动发布到 X (Twitter) Articles 编辑器。它用 Python 脚本解析 Markdown 并生成 HTML,再通过 Playwright MCP 驱动浏览器完成封面上传、标题填写、富文本粘贴、图片与分割线插入,最终只保存草稿,绝不自动发布。相比手动操作,作者宣称可将单篇文章的发布时间从 20-30 分钟缩短到 2-3 分钟。需要 X Premium Plus 订阅和已登录的浏览器环境。
运行 parse_markdown.py 解析 Markdown,提取标题、封面图、内容图(含 block_index 定位)、分割线和 HTML;用 copy_to_clipboard.py 将图片(可压缩)或 HTML 复制到系统剪贴板;用 table_to_image.py 将 Markdown 表格转为 PNG,Mermaid 图表用 mmdc 转为 PNG;随后通过 Playwright MCP 打开 x.com/compose/articles,上传封面(首图)、填写标题(H1)、粘贴富文本、按 block_index 从大到小逆序插入图片和分割线,最后保存草稿。
- 习惯用 Markdown 写作的 X Premium Plus 用户,想发布长文但不愿手动重排格式
- 多图技术类博客作者,需要图片精确插入到指定段落位置
- 文章包含表格或 Mermaid 图表的作者,需要先转成 PNG 再发布
- 需要把发布流程交给 Claude Code 自动化、但最终人工审核后再发布的用户
- Windows 或 macOS 用户(Linux 尚未支持)
这个 Skill 有哪些优点和局限?
- 富文本通过剪贴板粘贴,H2、加粗、链接、列表、引用等格式完整保留
- block_index 精确定位加逆序插入,解决多图位置漂移问题
- 表格和 Mermaid 图表自动转为 PNG 绕过 X 的原生限制
- 安全设计:只保存草稿,绝不自动发布
- 支持 macOS 和 Windows,图片找不到时会在 Downloads/Desktop/Pictures 自动搜索
- 必须拥有 X Premium Plus 订阅,否则无法使用 Articles 功能
- Linux 尚未支持(源文件明确说明)
- 依赖 Playwright MCP 和已登录的浏览器会话,遇到浏览器占用、MCP 断连等问题需手动排查
- 代码块会被降级为引用块,原生表格渲染不被支持
- README 中的"10 倍效率提升"是作者自述数据,未见独立测试报告或自动化测试套件
如何安装这个 Skill?
方法一(推荐):git clone https://github.com/wshuyi/x-article-publisher-skill.git,然后 cp -r x-article-publisher-skill/skills/x-article-publisher ~/.claude/skills/。方法二:在 Claude Code 中执行 /plugin marketplace add wshuyi/x-article-publisher-skill 和 /plugin install x-article-publisher@wshuyi/x-article-publisher-skill。前置条件:安装 Playwright MCP,浏览器登录 X(需 Premium Plus),macOS 运行 pip install Pillow pyobjc-framework-Cocoa,Windows 运行 pip install Pillow pywin32 clip-util;如需 Mermaid 图表则 npm install -g @mermaid-js/mermaid-cli。
如何使用这个 Skill?
用自然语言触发,例如:"Publish /path/to/article.md to X" 或 "把 ~/Documents/my-post.md 发布到 X Articles";也可用命令 /x-article-publisher /path/to/article.md。技能会解析 Markdown、打开 X Articles 编辑器、上传封面、填标题、粘贴正文、逆序插入图片和分割线,最后保存草稿并提示你手动审核发布。
这个 Skill 与同类方案有什么区别?
README 明确致谢了 sugarforever/01coder-agent-skills 中的 publish-x-article skill,v1.2.0 的分割线、表格转图、Mermaid、Windows 剪贴板等特性借鉴自该项目。