BeClaude

skill-md-publish-wechat-feishu

New
GitHub TrendingDocumentationby JasonCai2024

将本地图文 Markdown 从图片重命名开始,顺序完成正文图片公网化、微信公众号草稿创建、以及基于同一批公网图片链接的飞书云文档导入。适用于输入为单个 MD 文件且同级 attachments 子文件夹内已存在正文引用图片的场景。

Community PluginView Source

Overview

Skill MD Publish WeChat Feishu

Goal

把一个本地图文 Markdown 文档及其同级 attachments/ 图片目录,按固定流程处理为:

  1. 已创建的微信公众号草稿
  2. 已导入的飞书云文档

本技能从“图片引用重命名”开始,不负责原始文稿整理,也不负责公众号文风改写。

Required Inputs

加载本技能时,AI 必须确认以下输入:

  1. MD 文档路径:必填,单个待处理 Markdown 绝对路径
  2. 图片目录:默认自动识别 MD 同级 attachments/,若不存在再回退 Attachments/
  3. 公众号封面图:满足以下任一条件

- MD 元数据中已有封面图标记且文件存在 - 用户显式提供 --cover-image - 目录中已有可复用的 *.wechat.cover.json

  1. 公众号发布凭证

- WECHAT_APP_ID - WECHAT_APP_SECRET

  1. ServiceHub 远程代理凭证(推荐远程模式):

- SERVICETUBER_BASE_URL - SERVICETUBER_USERNAME - SERVICETUBER_PASSTOKEN

  1. 飞书配置

- FEISHU_APP_ID - FEISHU_APP_SECRET - 可选 FEISHU_FOLDER_TOKEN - 可选 FEISHU_REDIRECT_URI - 可选 FEISHU_USER_TOKEN_CACHE

凭证读取优先级:

  1. 命令行参数
  2. 环境变量 / 技能根目录 .env
  3. 技能根目录 data/credentials.json

Workflow

第 1 步:校验输入与图片目录

  1. 确认输入是单个 Markdown 文件。
  2. 优先寻找 <MD同级>\attachments;如果不存在,再寻找 <MD同级>\Attachments
  3. 若两者都不存在,直接停止并提示用户补齐图片目录。

第 2 步:重命名正文图片并同步引用

调用:

powershell
python scripts/rename_image_references.py "<MD路径>"

规则:

  1. 仅处理正文中真实图片引用。
  2. 自动备份原 MD 和原图片目录。
  3. 重命名后同步更新 MD 中的图片引用。

细节见:references/step-2-rename-image-references.md

第 3 步:将正文图片替换为公网 URL

默认先走微信公众号图片上传,生成:

  1. attachments/wechat.image-map.json 或兼容目录下同名文件
  2. 原文件名-图片替换.md

调用:

powershell
python scripts/wechat_replace_md_images.py "<MD路径>" --remote-service-url "<ServiceHub地址>"

若命中远程上传 413,先压缩正文图,再重试:

powershell
python scripts/compress_md_attachments.py "<原图片目录>" "<压缩图片目录>" --markdown-file "<原MD>" --output-md "<临时压缩图MD>"

细节见:references/step-3-replace-images-with-public-urls.md

第 4 步:先创建微信公众号草稿

公众号链路必须在飞书链路之前完成。原因:

  1. 公网图片 URL 先由公众号图片上传步骤产出并缓存
  2. 公众号草稿使用同一份公网图文 MD
  3. 飞书链路复用这份已经稳定下来的公网图文 MD

调用顺序:

powershell
python scripts/wechat_upload_images.py "<图片替换MD>" --cover-only --cover-image "<封面图>"
python scripts/wechat_preprocess_html.py "<图片替换MD>" --image-manifest "<cover.json>"
python scripts/wechat_upload_draft.py "<wechat.json>" --remote-service-url "<ServiceHub地址>"

细节见:references/step-4-2-publish-to-wechat-draft.md

第 5 步:再导入飞书云文档

飞书链路输入必须是已经完成正文图片替换的公网图文 MD。

优先一步完成:

powershell
python scripts/feishu_publish_replaced_md.py "<图片替换MD>" --auth-mode user

如果没有飞书用户授权缓存,先执行:

powershell
python scripts/feishu_oauth_login.py

这一步允许交互式浏览器授权。

细节见:references/step-4-1-publish-to-feishu.md

第 6 步:优先使用总控脚本

如果没有特殊排障需求,优先直接调用总控脚本:

powershell
python scripts/publish_local_md.py "<MD路径>" --cover-image "<封面图>"

它会按固定顺序串联:

  1. 图片重命名
  2. 正文图片公网化
  3. 公众号草稿创建
  4. 飞书云文档导入

Decision Rules

  • 只处理单个 MD 文件;不要对整个目录批量扫描后自行推断目标。
  • 默认图片目录是 attachments/;仅为兼容旧材料才接受 Attachments/
  • 正文图片公网化必须先于公众号草稿和飞书导入。
  • 公众号草稿必须先于飞书导入。
  • 缺少封面图时,不要默认把正文第一张图当封面;应优先读取元数据或要求用户显式提供。
  • 飞书授权允许交互式浏览器登录;公众号 / ServiceHub 凭证不应走交互式登录。
  • 若用户只想排障,可单独运行 scripts/ 下的分步骤脚本;否则优先总控脚本。

Output Requirements

执行完成后,必须向用户返回:

  1. 重命名后的正式 MD 路径
  2. 公网图文 MD 路径:*-图片替换.md
  3. 公众号产物:

- *.wechat.cover.json - *.wechat.html - *.wechat.preview.html - *.wechat.json - 草稿 media_id

  1. 飞书产物:

- *.feishu.json - *.feishu.upload.result.json - 最终飞书文档 URL

Validation

执行后检查:

  1. MD 同级存在 attachments/ 或兼容目录,且图片引用已同步更新
  2. *-图片替换.md 中不再包含本地图片路径
  3. 公众号草稿创建成功并返回 media_id
  4. 飞书导入结果 JSON 中存在最终文档 URL
  5. 若走压缩分支,正式输出仍然是 *-图片替换.md,压缩版 MD 仅作为中间文件

Fallback

  • 如果正文图片上传报 413,执行压缩图流程后重试。
  • 如果公众号接口报 40164 invalid ip,改用 ServiceHub 远程代理模式。
  • 如果飞书缺少 user_access_token,执行 scripts/feishu_oauth_login.py
  • 如果封面图缺失,停止并要求用户提供 --cover-image 或补齐 MD 元数据。
  • 如果用户只需要飞书或只需要公众号,说明这不属于本技能的默认完成态;如需局部执行,应显式说明在排障模式下拆步跑脚本。

Examples

  • /skill-md-publish-wechat-feishu E:\BaiduSyncdisk\WorkSpace\社交媒体\图文笔记\20260615_某主题.md
  • /skill-md-publish-wechat-feishu E:\...\20260615_某主题.md --cover-image E:\...\cover.png

Install & Usage

1
Create the skills directory
mkdir -p .claude/skills
2
Download the skill file
mkdir -p .claude/skills && curl -o .claude/skills/skill-md-publish-wechat-feishu.md https://raw.githubusercontent.com/JasonCai2024/skill-md-publish-wechat-feishu/main/SKILL.md
3
Invoke in Claude Code
/skill-md-publish-wechat-feishu
View source on GitHub

Frequently Asked Questions

What is skill-md-publish-wechat-feishu?

将本地图文 Markdown 从图片重命名开始,顺序完成正文图片公网化、微信公众号草稿创建、以及基于同一批公网图片链接的飞书云文档导入。适用于输入为单个 MD 文件且同级 attachments 子文件夹内已存在正文引用图片的场景。

How to install skill-md-publish-wechat-feishu?

To install skill-md-publish-wechat-feishu, create the .claude/skills directory in your project, then run the curl command to download the skill file. Once installed, invoke it in Claude Code with /skill-md-publish-wechat-feishu.

What is skill-md-publish-wechat-feishu best for?

skill-md-publish-wechat-feishu is a community categorized under Documentation. Created by JasonCai2024.