jpskill.com
📦 その他 コミュニティ

wechat-md-publisher

Markdown形式の記事を微信公众号(WeChat公式アカウント)に投稿し、草稿管理や複数のテーマ設定、画像処理、自動でのカバー画像生成をサポートするSkillです。

📜 元の英語説明(参考)

发布 Markdown 文章到微信公众号,支持草稿管理、多主题、智能图片处理、自动封面图。推荐与 news-to-markdown-skill 配合使用实现一键转载(支持本地图片)。

🇯🇵 日本人クリエイター向け解説

一言でいうと

Markdown形式の記事を微信公众号(WeChat公式アカウント)に投稿し、草稿管理や複数のテーマ設定、画像処理、自動でのカバー画像生成をサポートするSkillです。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o wechat-md-publisher.zip https://jpskill.com/download/5573.zip && unzip -o wechat-md-publisher.zip && rm wechat-md-publisher.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/5573.zip -OutFile "$d\wechat-md-publisher.zip"; Expand-Archive "$d\wechat-md-publisher.zip" -DestinationPath $d -Force; ri "$d\wechat-md-publisher.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して wechat-md-publisher.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → wechat-md-publisher フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-17
取得日時
2026-05-17
同梱ファイル
7

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

[Skill 名] wechat-md-publisher

WeChat Publisher Skill

フル機能の WeChat 公式アカウント Markdown 公開ツール - AI がコンテンツを WeChat 公式アカウントに直接公開できるようにします。

⚠️ 重要事項

推奨される使用方法

  • ベストプラクティスnews-to-markdown-skill と組み合わせて使用​​し、ニュースを WeChat 公式アカウントにワンクリックで転載します。
  • 🌐 固定グローバル IP:固定グローバル IP が必須であり、WeChat 公式プラットフォームの IP ホワイトリストに設定する必要があります。
  • 🔑 必須の認証情報WECHAT_APP_IDWECHAT_APP_SECRET 環境変数を設定するか、コマンドラインで設定する必要があります。

主な要件

  1. 固定グローバル IP:WeChat API はサーバー IP がホワイトリストに含まれていることを要求するため、動的 IP は使用できません。
  2. WeChat 公式アカウント認証情報:WeChat 公式プラットフォームから AppID と AppSecret を取得する必要があります。
  3. IP ホワイトリスト設定:WeChat 公式プラットフォームの「設定と開発」→「基本設定」→「IP ホワイトリスト」にグローバル IP を追加します。

⚡ クイックスタート

インストール

npm install -g wechat-md-publisher

アカウント設定

wechat-pub account add \
  --name "私の公式アカウント" \
  --app-id "wx_your_app_id" \
  --app-secret "your_app_secret" \
  --default

記事の公開

wechat-pub publish create \
  --file article.md \
  --theme orangesun

news-to-markdown との連携

# ニュースを WeChat 公式アカウントにワンクリックで転載(推奨:画像をローカルにダウンロード)
# news-to-markdown は画像を自動的にローカルにダウンロードし、リモート URL の期限切れ問題を回避します。
convert-url --url "https://www.toutiao.com/article/123" \
  --output /tmp/article.md \
  --download-images \
  --output-dir /tmp/article

# wechat-md-publisher はローカル画像を自動的に読み込み、アップロードします。
wechat-pub publish create --file /tmp/article/article.md --theme orangesun

画像処理のベストプラクティス(v0.8.3+):

  • 推奨--download-images を使用して画像をローカルにダウンロードします。
    • リモート URL の署名期限切れ(Toutiao の画像など)を回避します。
    • ホットリンク対策の問題を回避します。
    • 公開成功率を向上させます。
  • news-to-markdown はカバー画像を自動的に抽出します(og:image > twitter:image > 最初の画像)。
  • 画像は ./images/ ディレクトリに保存され、Markdown は相対パスを使用します。
  • wechat-md-publisher はローカル画像を WeChat 素材ライブラリに自動的にアップロードします。
  • 完全に自動化されており、手動での処理は不要です。

🎯 この Skill を使用するタイミング

ユーザーが以下の操作を必要とする場合、この Skill をトリガーする必要があります。

  • ✅ WeChat 公式アカウントに記事を公開する
  • ✅ WeChat 公式アカウントのドラフトを作成する
  • ✅ WeChat 公式アカウントを管理する
  • ✅ 公開済みの記事リストを表示する
  • ✅ ドラフトまたは公開済みの記事を削除する
  • ✅ 異なるテーマで Markdown をレンダリングする
  • ✅ 記事の冒頭/末尾に固定の画像とテキストを追加する(Wrapper 機能)
  • ✅ Wrapper の履歴バージョンを表示またはロールバックする

トリガーキーワード

  • "WeChat 公式アカウントに公開"
  • "WeChat ドラフトを作成"
  • "WeChat 公式アカウントを設定"
  • "WeChat 記事を表示"
  • "[テーマ名] テーマを使用して公開"
  • "記事の冒頭と末尾の固定コンテンツ"
  • "Wrapper"

📋 前提条件

1. システム要件

  • Node.js >= 18.0.0
  • npm または pnpm パッケージマネージャー
  • ネットワーク接続(WeChat API へのアクセス)

2. WeChat 公式アカウントの設定

ユーザーは WeChat 公式アカウントを所有し、以下を取得している必要があります。

  • AppID:開発者 ID
  • AppSecret:開発者パスワード
  • IP ホワイトリスト:設定必須(重要!)

取得方法:

  1. WeChat 公式プラットフォーム にログインします。
  2. 「設定と開発」→「基本設定」に進みます。
  3. 「開発者ID(AppID)」と「開発者パスワード(AppSecret)」を取得します。
  4. IP ホワイトリストを設定します(必須!):

3. Skill のインストール

# グローバルインストール
npm install -g wechat-md-publisher

# または npx を使用(インストール不要)
npx wechat-md-publisher --help

🚀 標準操作手順 (SOP)

操作 1:WeChat 公式アカウントの設定

シナリオ:初回使用または新しいアカウントの追加

手順

  1. ユーザーが提供するアカウント情報(AppID と AppSecret)を収集します。
  2. コマンドを実行してアカウントを追加します。
wechat-pub account add \
  --name "アカウント名" \
  --app-id "wx_your_app_id" \
  --app-secret "your_app_secret" \
  --default
  1. アカウントの追加が成功したことを確認します。
wechat-pub account list

出力例

┌────────────┬──────────────┬────────────────┬─────────┐
│ ID         │ 名前         │ AppID          │ デフォルト    │
├────────────┼──────────────┼────────────────┼─────────┤
│ acc_xxx    │ 私の公式アカウント   │ wx123456       │ ✓       │
└────────────┴──────────────┴────────────────┴─────────┘

エラー処理

  • AppID/AppSecret が間違っている場合、「認証失敗」と表示されます。
  • ネットワークの問題がある場合、「WeChat サーバーに接続できません」と表示されます。
  • 解決策:認証情報が正しいか確認し、IP がホワイトリストに含まれていることを確認します。

操作 2:記事の作成と公開(ワンステップ)

シナリオ:ユーザーが Markdown コンテンツを提供し、直接公式アカウントに公開する

手順

  1. ユーザーの Markdown コンテンツを一時ファイルに保存します。
cat > /tmp/article.md << 'EOF'
---
title: 記事タイトル
author: 作者名
---

# 記事内容

ここが本文です...
EOF
  1. 公開コマンドを実行します。
wechat-pub publish create \
  --file /tmp/article.md \
  --theme orangesun
  1. 出力を解析し、publish_id を抽出します。

出力例

✓ レンダリング完了
✓ 画像処理完了
✓ ドラフト作成成功
✓ 公開成功

公開 ID: 2247483647_1
  1. ユーザーに成功を報告し、公開 ID を提供します。

利用可能なテーマ

  • default - デフォルトテーマ(シンプルでクリーン)
  • orangesun - Orange Sun(暖かく明るい)
  • redruby - Red Ruby(エレガントで目を引く)
  • greenmint - Green Mint(フレッシュで快適)
  • purplerain - Purple Rain(夢幻的で柔らかい)
  • blackink - Black Ink(ダークモード)

エラー処理

  • 画像アップロード失敗:画像パスとネットワークを確認します。
  • トークン期限切れ:自動的に更新されるため、手動での処理は不要です。
  • コンテンツ違反:WeChat はエラーコードを返し、ユーザーにコンテンツの修正を促します。

操作 3:ドラフトの作成(すぐに公開しない)

シナリオ:ユーザーがまずドラフトを作成し、後で公開したい場合

手順

  1. Markdown コンテンツをファイルに保存します。
  2. ドラフト作成コマンドを実行します。
wechat-pub draft create \
  --file /tmp/article.md \
  --theme default
  1. 返された media_id を記録します。

出力例

✓ ドラフト作成成功

Media ID: 3_abcdefghijk123456
  1. ドラフトが作成されたことをユーザーに通知し、WeChat 公式プラットフォームで確認できることを伝えます。

その後の操作

  • ユーザーは WeChat 公式プラットフォームでドラフトを編集できます。
  • 公開が必要な場合は、wechat-pub publish submit <media-id> を使用します。

操作 4:ドラフトリストの表示

シナリオ:ユーザーがすべてのドラフトを表示したい場合

コマンド

wechat-pub draft list --page 1 --size 10

出力例

合計 15 件のドラフト

┌──────────────────┬────────────────┬────────────────┐
│ Media ID         │ タイトル           │ 更新時間       │
├──────────────────┼────────────────┼────────────────┤
│ 3_abc123         │ テスト記事       │ 2026-03-19     │
│ 3_def456         │ 製品紹介       │ 2026-03-18     │
└──────────────────┴────────────────┴────────────────┘

操作 5:公開済み記事の表示

シナリオ:ユーザーが公開済みの記事を表示したい場合

コマンド

wechat-pub publish list --page 1 --size 10

出力例

合計 8 件の公開済み記事

┌──────────────┬────────────────┬────────────────┬──────────────────┐
│ Article ID   │ タイトル           │ 公開時間       │ URL              │
├──────────────┼────────────────┼────────────────┼──────────────────┤
│ 2247483647_1 │ 最新記事       │ 2026-03-19     │ https://mp.we... │
└──────────────┴────────────────┴────────────────┴──────────────────┘

操作 6:ドラフトまたは記事の削除

ドラフトの削除

wechat-pub draft delete <media-id>

公開済み記事の削除

wechat-pub publish delete <article-id>

操作 7:利用可能なテーマの表示

コマンド

wechat-pub theme list

出力例

利用可能なテーマ:

┌─────────────┬──────────────┬────────────────────┐
│ ID          │ 名前         │ 説明               │
├─────────────┼──────────────┼────────────────────┤
│ default     │ デフォルトテーマ     │ シンプルでクリーンなスタイル       │
│ orangesun   │ Orange Sun   │ 暖かく明るいスタイル       │
│ redruby     │ Red Ruby     │ エレガントで目を引くスタイル       │
│ greenmint   │ Green Mint   │ フレッシュで快適なスタイル       │
│ purplerain  │ Purple Rain  │ 夢幻的で柔らかいスタイル       │
│ blackink    │ Black Ink    │ ダークモードスタイル       │
└─────────────┴──────────────┴────────────────────┘

🔧 高度な使い方

Wrapper 機能:記事の冒頭/末尾の固定画像とテキスト

記事を公開する際に、冒頭と末尾に固定の画像とテキストコンテンツ(フォロー誘導、下部のQRコードなど)を自動的に追加します。

機能の有効化

wechat-pub wrapper on

コンテンツの設定

wechat-pub wrapper set \
  --header "<div>私たちの公式アカウントをフォローしてください</div>" \
  --footer "<div>役に立ったと思ったら、いいねと保存をお願いします</div>"

ステータスの確認

wechat-pub wrapper status

履歴バージョンの表示

wechat-pub wrapper history

指定バージョンへのロールバック

wechat-pub wrapper rollback 1
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

WeChat Publisher Skill

全功能微信公众号 Markdown 发布工具 - 让 AI 能够直接将内容发布到微信公众号。

⚠️ 重要提示

推荐使用方式

  • 最佳实践:与 news-to-markdown-skill 配合使用,实现一键转载新闻到微信公众号
  • 🌐 固定公网 IP:必须有固定公网 IP 并配置到微信公众平台的 IP 白名单
  • 🔑 必需凭证:必须配置 WECHAT_APP_IDWECHAT_APP_SECRET 环境变量或通过命令行配置

关键要求

  1. 固定公网 IP:微信 API 要求服务器 IP 在白名单中,动态 IP 无法使用
  2. 微信公众号凭证:需要从微信公众平台获取 AppID 和 AppSecret
  3. IP 白名单配置:在微信公众平台「设置与开发」→「基本配置」→「IP 白名单」中添加你的公网 IP

⚡ 快速开始

安装

npm install -g wechat-md-publisher

配置账号

wechat-pub account add \
  --name "我的公众号" \
  --app-id "wx_your_app_id" \
  --app-secret "your_app_secret" \
  --default

发布文章

wechat-pub publish create \
  --file article.md \
  --theme orangesun

与 news-to-markdown 配合使用

# 一键转载新闻到微信公众号(推荐:下载图片到本地)
# news-to-markdown 会自动下载图片到本地,避免远程 URL 过期问题
convert-url --url "https://www.toutiao.com/article/123" \
  --output /tmp/article.md \
  --download-images \
  --output-dir /tmp/article

# wechat-md-publisher 会自动读取本地图片并上传
wechat-pub publish create --file /tmp/article/article.md --theme orangesun

图片处理最佳实践(v0.8.3+):

  • 推荐:使用 --download-images 下载图片到本地
    • 避免远程 URL 签名过期(如头条图片)
    • 避免防盗链问题
    • 提高发布成功率
  • news-to-markdown 自动提取封面图(og:image > twitter:image > 第一张图片)
  • 图片保存到 ./images/ 目录,Markdown 使用相对路径
  • wechat-md-publisher 自动上传本地图片到微信素材库
  • 完全自动化,无需手动处理

🎯 何时使用此 Skill

当用户需要以下操作时,应触发此 Skill:

  • ✅ 发布文章到微信公众号
  • ✅ 创建微信公众号草稿
  • ✅ 管理微信公众号账号
  • ✅ 查看已发布的文章列表
  • ✅ 删除草稿或已发布文章
  • ✅ 使用不同主题渲染 Markdown
  • ✅ 在文章开头/结尾添加固定图文(Wrapper 功能)
  • ✅ 查看或回滚 Wrapper 历史版本

触发关键词

  • "发布到微信公众号"
  • "创建微信草稿"
  • "配置微信公众号"
  • "查看微信文章"
  • "使用 [主题名] 主题发布"
  • "文章开头结尾固定内容"
  • "Wrapper"

📋 前置要求

1. 系统要求

  • Node.js >= 18.0.0
  • npm 或 pnpm 包管理器
  • 网络连接(访问微信 API)

2. 微信公众号配置

用户必须拥有微信公众号并获取:

  • AppID:开发者 ID
  • AppSecret:开发者密码
  • IP 白名单:必须配置(重要!)

获取方式:

  1. 登录 微信公众平台
  2. 进入「设置与开发」→「基本配置」
  3. 获取「开发者ID(AppID)」和「开发者密码(AppSecret)」
  4. 配置 IP 白名单(必须!):

3. 安装 Skill

# 全局安装
npm install -g wechat-md-publisher

# 或使用 npx(无需安装)
npx wechat-md-publisher --help

🚀 标准操作流程 (SOP)

操作 1:配置微信公众号账号

场景:首次使用或添加新账号

步骤

  1. 收集用户提供的账号信息(AppID 和 AppSecret)
  2. 执行命令添加账号:
wechat-pub account add \
  --name "账号名称" \
  --app-id "wx_your_app_id" \
  --app-secret "your_app_secret" \
  --default
  1. 验证账号添加成功:
wechat-pub account list

输出示例

┌────────────┬──────────────┬────────────────┬─────────┐
│ ID         │ 名称         │ AppID          │ 默认    │
├────────────┼──────────────┼────────────────┼─────────┤
│ acc_xxx    │ 我的公众号   │ wx123456       │ ✓       │
└────────────┴──────────────┴────────────────┴─────────┘

异常处理

  • 如果 AppID/AppSecret 错误,会提示"认证失败"
  • 如果网络问题,会提示"无法连接到微信服务器"
  • 解决方案:检查凭证是否正确,确认 IP 在白名单中

操作 2:创建并发布文章(一步到位)

场景:用户提供 Markdown 内容,直接发布到公众号

步骤

  1. 将用户的 Markdown 内容保存到临时文件:
cat > /tmp/article.md << 'EOF'
---
title: 文章标题
author: 作者名
---

# 文章内容

这里是正文...
EOF
  1. 执行发布命令:
wechat-pub publish create \
  --file /tmp/article.md \
  --theme orangesun
  1. 解析输出,提取 publish_id

输出示例

✓ 渲染完成
✓ 图片处理完成
✓ 创建草稿成功
✓ 发布成功

发布 ID: 2247483647_1
  1. 向用户报告成功,并提供发布 ID

可用主题

  • default - 默认主题(简洁清爽)
  • orangesun - Orange Sun(温暖明亮)
  • redruby - Red Ruby(优雅醒目)
  • greenmint - Green Mint(清新舒适)
  • purplerain - Purple Rain(梦幻柔和)
  • blackink - Black Ink(深色模式)

异常处理

  • 图片上传失败:检查图片路径和网络
  • Token 过期:自动刷新,无需手动处理
  • 内容违规:微信会返回错误码,提示用户修改内容

操作 3:创建草稿(不立即发布)

场景:用户想先创建草稿,稍后再发布

步骤

  1. 保存 Markdown 内容到文件
  2. 执行草稿创建命令:
wechat-pub draft create \
  --file /tmp/article.md \
  --theme default
  1. 记录返回的 media_id

输出示例

✓ 草稿创建成功

Media ID: 3_abcdefghijk123456
  1. 告知用户草稿已创建,可以在微信公众平台查看

后续操作

  • 用户可以在微信公众平台编辑草稿
  • 需要发布时,使用 wechat-pub publish submit <media-id>

操作 4:查看草稿列表

场景:用户想查看所有草稿

命令

wechat-pub draft list --page 1 --size 10

输出示例

共 15 个草稿

┌──────────────────┬────────────────┬────────────────┐
│ Media ID         │ 标题           │ 更新时间       │
├──────────────────┼────────────────┼────────────────┤
│ 3_abc123         │ 测试文章       │ 2026-03-19     │
│ 3_def456         │ 产品介绍       │ 2026-03-18     │
└──────────────────┴────────────────┴────────────────┘

操作 5:查看已发布文章

场景:用户想查看已发布的文章

命令

wechat-pub publish list --page 1 --size 10

输出示例

共 8 篇已发布文章

┌──────────────┬────────────────┬────────────────┬──────────────────┐
│ Article ID   │ 标题           │ 发布时间       │ URL              │
├──────────────┼────────────────┼────────────────┼──────────────────┤
│ 2247483647_1 │ 最新文章       │ 2026-03-19     │ https://mp.we... │
└──────────────┴────────────────┴────────────────┴──────────────────┘

操作 6:删除草稿或文章

删除草稿

wechat-pub draft delete <media-id>

删除已发布文章

wechat-pub publish delete <article-id>

操作 7:查看可用主题

命令

wechat-pub theme list

输出示例

可用主题:

┌─────────────┬──────────────┬────────────────────┐
│ ID          │ 名称         │ 描述               │
├─────────────┼──────────────┼────────────────────┤
│ default     │ 默认主题     │ 简洁清爽风格       │
│ orangesun   │ Orange Sun   │ 温暖明亮风格       │
│ redruby     │ Red Ruby     │ 优雅醒目风格       │
│ greenmint   │ Green Mint   │ 清新舒适风格       │
│ purplerain  │ Purple Rain  │ 梦幻柔和风格       │
│ blackink    │ Black Ink    │ 深色模式风格       │
└─────────────┴──────────────┴────────────────────┘

🔧 高级用法

Wrapper 功能:文章开头/结尾固定图文

在发布文章时自动在开头和结尾添加固定的图文内容(如关注引导、底部二维码等)。

开启功能

wechat-pub wrapper on

设置内容

wechat-pub wrapper set \
  --header "<div>欢迎关注我们的公众号</div>" \
  --footer "<div>觉得有帮助请点赞+收藏</div>"

查看状态

wechat-pub wrapper status

查看历史版本

wechat-pub wrapper history

回滚到指定版本

wechat-pub wrapper rollback 1

关闭功能

wechat-pub wrapper off

注意事项

  • 功能默认关闭,需要手动开启
  • 每次 set 会创建新版本,支持历史回滚
  • 图片处理:目前直接存储原始 HTML,需要公网可访问的图片 URL
  • 数据库文件:data/wmp.db

使用编程 API

如果需要在代码中集成:

const { container } = require('wechat-md-publisher');

async function publishArticle(markdown, theme) {
  await container.initialize();

  const publishService = await container.getPublishService();
  const result = await publishService.createAndPublish({
    markdown: markdown,
    theme: theme || 'default',
  });

  return result.publish_id;
}

批量发布

# 批量创建草稿
for file in articles/*.md; do
    wechat-pub draft create --file "$file" --theme default
done

📊 输入输出规范

输入格式

Markdown 文件格式

---
title: 文章标题(必需)
author: 作者名(可选)
cover: ./cover.jpg(可选,封面图路径)
---

# 正文标题

正文内容...

![图片描述](./image.jpg)

支持的图片格式

  • 本地图片:相对路径或绝对路径
  • 网络图片:HTTP/HTTPS URL
  • 微信图片:微信 CDN URL(自动识别)

输出格式

成功响应

{
  "success": true,
  "publish_id": "2247483647_1",
  "message": "发布成功"
}

错误响应

{
  "success": false,
  "error": "错误信息",
  "code": "ERROR_CODE"
}

⚠️ 常见问题和解决方案

问题 1:Token 过期

症状:提示"access_token 无效"

解决:Token 会自动刷新,如果仍有问题,重新配置账号

问题 2:图片上传失败

症状:提示"图片上传失败"

原因

  • 图片路径错误
  • 图片大小超限(微信限制 10MB)
  • 服务器 IP 不在白名单

解决

  • 检查图片路径
  • 压缩图片
  • 在微信公众平台添加 IP 到白名单

问题 3:找不到主题

症状:提示"主题不存在"

解决:使用 wechat-pub theme list 查看可用主题

问题 4:权限不足

症状:提示"没有权限"

原因:AppID/AppSecret 错误或权限不足

解决

  • 确认凭证正确
  • 确认公众号类型支持该功能(服务号 vs 订阅号)

🔒 安全性说明

敏感信息处理

  • AppID 和 AppSecret 存储在本地配置文件中
  • 配置文件位置:
    • macOS: ~/Library/Preferences/wechat-md-publisher-nodejs/config.json
    • Linux: ~/.config/wechat-md-publisher-nodejs/config.json
    • Windows: %APPDATA%\wechat-md-publisher-nodejs\Config\config.json

权限要求

  • 读取本地文件(Markdown 和图片)
  • 网络访问(微信 API)
  • 写入配置文件

数据隐私

  • 不会上传任何数据到第三方服务器
  • 所有通信仅限于微信官方 API
  • 图片缓存仅在本地

📚 参考资料


🎓 示例对话

用户:帮我把这篇文章发布到微信公众号

AI:好的,我来帮你发布。请提供文章的 Markdown 内容。

用户:[提供内容]

AI:收到!我将使用 orangesun 主题发布。正在处理...

[执行命令]

AI:✅ 文章已成功发布到微信公众号!

  • 发布 ID: 2247483647_1
  • 你可以在微信公众平台查看和管理这篇文章

📝 维护说明

  • 版本: 0.8.4
  • 最后更新: 2026-03-27
  • 更新内容:
    • 优化主题样式:添加 text-align: left 到标题和 strong 元素
    • 移除 code 背景色以提高微信兼容性
    • 更新 wrapper header 为居中对齐
    • 应用于所有主题:default, greenmint, orangesun, purplerain, redruby, blackink
  • 维护者: Ping Si sipingme@gmail.com
  • 许可证: Apache-2.0

✅ 首次成功检查清单

新用户应该能在 5 分钟内完成:

  • [ ] 安装工具:npm install -g wechat-md-publisher
  • [ ] 配置账号:wechat-pub account add ...
  • [ ] 创建测试文章
  • [ ] 发布成功:wechat-pub publish create --file test.md --theme default
  • [ ] 在微信公众平台看到文章

如果以上步骤都能顺利完成,说明 Skill 已正确配置!


🔗 与其他 Skills 配合使用

与 news-to-markdown-skill 组合使用

推荐组合news-to-markdown-skill + wechat-md-publisher-skill = 一键转载新闻到微信公众号

使用场景

将网络上的新闻文章快速转载到微信公众号,实现内容聚合和分发。

完整工作流

场景 1:转载单篇新闻(推荐方式)

# 步骤 1: 使用 news-to-markdown 提取新闻并下载图片
convert-url --url "https://www.toutiao.com/article/123" \
  --output /tmp/article/article.md \
  --download-images \
  --output-dir /tmp/article \
  --verbose

# 步骤 2: 使用 wechat-md-publisher 发布到微信
wechat-pub publish create \
  --file /tmp/article/article.md \
  --theme orangesun

为什么要下载图片到本地?

  • 头条图片 URL 包含签名和过期时间,几小时后会失效
  • 本地图片更可靠,不受网络波动影响
  • 避免防盗链导致的图片加载失败

场景 2:批量转载新闻

# 新闻 URL 列表
urls=(
  "https://www.toutiao.com/article/123"
  "https://mp.weixin.qq.com/s/abc"
  "https://www.xiaohongshu.com/explore/xyz"
)

# 批量处理
for i in "${!urls[@]}"; do
  url="${urls[$i]}"
  output_dir="/tmp/article-$i"

  # 提取新闻并下载图片
  convert-url --url "$url" \
    --output "$output_dir/article.md" \
    --download-images \
    --output-dir "$output_dir"

  # 发布到微信(创建草稿)
  wechat-pub draft create \
    --file "$output_dir/article.md" \
    --theme default

  echo "✓ 已处理: $url"
done

场景 3:AI 自动化工作流

用户对 AI 说:

"帮我把这篇头条文章转载到我的微信公众号"

AI 执行流程:

  1. 使用 news-to-markdown-skill 提取文章内容
  2. 自动检测平台(头条/微信/小红书)
  3. 使用 wechat-md-publisher-skill 发布到微信
  4. 返回发布结果和链接

优势

智能内容提取

  • 自动识别新闻正文,过滤广告和噪音
  • 保留文章结构和格式
  • 提取标题、作者、发布时间等元数据

多平台支持

  • 头条:优化标题层级、列表、代码块
  • 微信:提取 #js_content 区域
  • 小红书:处理 .note-content 内容

三层抓取策略

  • curl → wget → Playwright
  • 确保动态页面也能正确抓取

精美主题渲染

  • 8+ 精选主题可选
  • 自动处理图片上传
  • 保持排版美观

最佳实践

1. 内容审核

# 先创建草稿,人工审核后再发布
convert-url --url "$news_url" --output /tmp/article.md
wechat-pub draft create --file /tmp/article.md --theme default

# 审核通过后发布
wechat-pub publish submit <media-id>

2. 添加来源声明

# 提取时保留元数据
convert-url --url "$news_url" --output /tmp/article.md

# 元数据会自动包含在 Markdown 中:
# ---
# title: 文章标题
# author: 原作者
# 来源: https://...
# ---

3. 选择合适主题

  • 科技类文章:default(简洁蓝调)、greenmint(绿薄荷)
  • 情感类文章:orangesun(橙色阳光)、purplerain(紫色雨)
  • 教程类文章:default(简洁蓝调)、greenmint(绿薄荷)
  • 正式商务:redruby(红宝石)、purplerain(紫色雨)
  • 夜间阅读:blackink(黑墨水深色模式)

示例对话

用户:把这篇头条文章转到我的微信公众号 https://www.toutiao.com/article/7000000000000000000/

AI:好的,我来帮你处理:

  1. 正在提取文章内容...

    [INFO] 开始抓取: https://www.toutiao.com/article/...
    [INFO] 检测到平台: toutiao
    [INFO] 提取成功
  2. 正在发布到微信公众号...

    ✓ 渲染完成
    ✓ 图片处理完成
    ✓ 创建草稿成功
    ✓ 发布成功

完成!

  • 文章标题:《xxx》
  • 发布 ID: 2247483647_1
  • 使用主题: orangesun
  • 你可以在微信公众平台查看

相关资源

技术栈

新闻网站
    ↓
news-to-markdown (提取 + 转换)
    ↓
Markdown 文件
    ↓
wechat-md-publisher (渲染 + 发布)
    ↓
微信公众号

💡 更多组合可能

与内容管理工具配合

  • 配合 Git 进行版本管理
  • 配合 CI/CD 实现自动发布
  • 配合数据库存储发布记录

与 AI 工具配合

  • AI 生成内容 → wechat-md-publisher 发布
  • AI 润色文章 → wechat-md-publisher 发布
  • AI 翻译文章 → wechat-md-publisher 发布

同梱ファイル

※ ZIPに含まれるファイル一覧。`SKILL.md` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。