canghe-post-to-wechat

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Post to WeChat Official Account

发布内容至微信公众号

Language

语言适配

Match user's language: Respond in the same language the user uses. If user writes in Chinese, respond in Chinese. If user writes in English, respond in English.
匹配用户语言:使用与用户相同的语言进行响应。如果用户使用中文,就用中文回复;如果用户使用英文,就用英文回复。

Script Directory

脚本目录

Agent Execution: Determine this SKILL.md directory as
SKILL_DIR
, then use
${SKILL_DIR}/scripts/<name>.ts
.
ScriptPurpose
scripts/wechat-browser.ts
Image-text posts (图文)
scripts/wechat-article.ts
Article posting via browser (文章)
scripts/wechat-api.ts
Article posting via API (文章)
scripts/check-permissions.ts
Verify environment & permissions
Agent执行:将当前SKILL.md所在目录设为
SKILL_DIR
,然后使用
${SKILL_DIR}/scripts/<name>.ts
调用脚本。
脚本用途
scripts/wechat-browser.ts
发布贴图(图文)内容
scripts/wechat-article.ts
通过浏览器发布文章
scripts/wechat-api.ts
通过API发布文章
scripts/check-permissions.ts
验证环境与权限

Preferences (EXTEND.md)

偏好设置(EXTEND.md)

Use Bash to check EXTEND.md existence (priority order):
bash
undefined
使用Bash检查EXTEND.md的存在性(优先级顺序):
bash
undefined

Check project-level first

优先检查项目级配置

test -f .canghe-skills/canghe-post-to-wechat/EXTEND.md && echo "project"
test -f .canghe-skills/canghe-post-to-wechat/EXTEND.md && echo "project"

Then user-level (cross-platform: $HOME works on macOS/Linux/WSL)

然后检查用户级配置(跨平台:$HOME适用于macOS/Linux/WSL)

test -f "$HOME/.canghe-skills/canghe-post-to-wechat/EXTEND.md" && echo "user"

┌────────────────────────────────────────────────────────┬───────────────────┐
│                          Path                          │     Location      │
├────────────────────────────────────────────────────────┼───────────────────┤
│ .canghe-skills/canghe-post-to-wechat/EXTEND.md           │ Project directory │
├────────────────────────────────────────────────────────┼───────────────────┤
│ $HOME/.canghe-skills/canghe-post-to-wechat/EXTEND.md     │ User home         │
└────────────────────────────────────────────────────────┴───────────────────┘

┌───────────┬───────────────────────────────────────────────────────────────────────────┐
│  Result   │                                  Action                                   │
├───────────┼───────────────────────────────────────────────────────────────────────────┤
│ Found     │ Read, parse, apply settings                                               │
├───────────┼───────────────────────────────────────────────────────────────────────────┤
│ Not found │ Run first-time setup ([references/config/first-time-setup.md](references/config/first-time-setup.md)) → Save → Continue │
└───────────┴───────────────────────────────────────────────────────────────────────────┘

**EXTEND.md Supports**: Default theme | Default publishing method (api/browser) | Default author | Default open-comment switch | Default fans-only-comment switch | Chrome profile path

First-time setup: [references/config/first-time-setup.md](references/config/first-time-setup.md)

**Minimum supported keys** (case-insensitive, accept `1/0` or `true/false`):

| Key | Default | Mapping |
|-----|---------|---------|
| `default_author` | empty | Fallback for `author` when CLI/frontmatter not provided |
| `need_open_comment` | `1` | `articles[].need_open_comment` in `draft/add` request |
| `only_fans_can_comment` | `0` | `articles[].only_fans_can_comment` in `draft/add` request |

**Recommended EXTEND.md example**:

```md
default_theme: default
default_publish_method: api
default_author: 苍何
need_open_comment: 1
only_fans_can_comment: 0
chrome_profile_path: /path/to/chrome/profile
Value priority:
  1. CLI arguments
  2. Frontmatter
  3. EXTEND.md
  4. Skill defaults
test -f "$HOME/.canghe-skills/canghe-post-to-wechat/EXTEND.md" && echo "user"

┌────────────────────────────────────────────────────────┬───────────────────┐
│                          路径                          │     位置类型      │
├────────────────────────────────────────────────────────┼───────────────────┤
│ .canghe-skills/canghe-post-to-wechat/EXTEND.md           │ 项目目录 |
├────────────────────────────────────────────────────────┼───────────────────┤
│ $HOME/.canghe-skills/canghe-post-to-wechat/EXTEND.md     │ 用户主目录         │
└────────────────────────────────────────────────────────┴───────────────────┘

┌───────────┬───────────────────────────────────────────────────────────────────────────┐
│ 检查结果   │                                  对应操作                                   │
├───────────┼───────────────────────────────────────────────────────────────────────────┤
│ 已找到     │ 读取、解析并应用配置                                               │
├───────────┼───────────────────────────────────────────────────────────────────────────┤
│ 未找到     │ 执行首次设置([references/config/first-time-setup.md](references/config/first-time-setup.md)) → 保存配置 → 继续操作 │
└───────────┴───────────────────────────────────────────────────────────────────────────┘

**EXTEND.md支持配置项**:默认主题 | 默认发布方式(api/browser) | 默认作者 | 默认开启评论开关 | 默认仅粉丝可评论开关 | Chrome配置文件路径

首次设置指引:[references/config/first-time-setup.md](references/config/first-time-setup.md)

**最低支持配置项**(大小写不敏感,接受`1/0`或`true/false`):

| 配置项 | 默认值 | 说明 |
|-----|---------|---------|
| `default_author` | 空 | 当CLI/前置元数据未提供`author`时的 fallback 值 |
| `need_open_comment` | `1` | 对应`draft/add`请求中`articles[].need_open_comment`字段 |
| `only_fans_can_comment` | `0` | 对应`draft/add`请求中`articles[].only_fans_can_comment`字段 |

**推荐的EXTEND.md示例**:

```md
default_theme: default
default_publish_method: api
default_author: 苍何
need_open_comment: 1
only_fans_can_comment: 0
chrome_profile_path: /path/to/chrome/profile
配置值优先级
  1. CLI参数
  2. 前置元数据(Frontmatter)
  3. EXTEND.md配置
  4. 技能默认值

Pre-flight Check (Optional)

预检查(可选)

Before first use, suggest running the environment check. User can skip if they prefer.
bash
npx -y bun ${SKILL_DIR}/scripts/check-permissions.ts
Checks: Chrome, profile isolation, Bun, Accessibility, clipboard, paste keystroke, API credentials, Chrome conflicts.
If any check fails, provide fix guidance per item:
CheckFix
ChromeInstall Chrome or set
WECHAT_BROWSER_CHROME_PATH
env var
Profile dirEnsure
~/.local/share/wechat-browser-profile
is writable
Bun runtime
curl -fsSL https://bun.sh/install | bash
Accessibility (macOS)System Settings → Privacy & Security → Accessibility → enable terminal app
Clipboard copyEnsure Swift/AppKit available (macOS Xcode CLI tools:
xcode-select --install
)
Paste keystroke (macOS)Same as Accessibility fix above
Paste keystroke (Linux)Install
xdotool
(X11) or
ydotool
(Wayland)
API credentialsFollow guided setup in Step 5, or manually set in
.canghe-skills/.env
首次使用前,建议运行环境检查。用户可选择跳过。
bash
npx -y bun ${SKILL_DIR}/scripts/check-permissions.ts
检查项包括:Chrome浏览器、配置文件隔离、Bun运行时、无障碍权限、剪贴板、粘贴快捷键、API凭证、Chrome冲突情况。
若任意检查项不通过,针对每个项提供修复指引:
检查项修复方案
Chrome浏览器安装Chrome或设置环境变量
WECHAT_BROWSER_CHROME_PATH
配置文件目录确保
~/.local/share/wechat-browser-profile
可写
Bun运行时执行
curl -fsSL https://bun.sh/install | bash
安装
无障碍权限(macOS)系统设置 → 隐私与安全性 → 无障碍 → 启用终端应用权限
剪贴板复制确保Swift/AppKit可用(macOS需安装Xcode CLI工具:
xcode-select --install
粘贴快捷键(macOS)与上述无障碍权限修复方案一致
粘贴快捷键(Linux)安装
xdotool
(X11环境)或
ydotool
(Wayland环境)
API凭证按照步骤5的引导设置,或手动在
.canghe-skills/.env
中配置

Image-Text Posting (图文)

贴图(图文)发布

For short posts with multiple images (up to 9):
bash
npx -y bun ${SKILL_DIR}/scripts/wechat-browser.ts --markdown article.md --images ./images/
npx -y bun ${SKILL_DIR}/scripts/wechat-browser.ts --title "标题" --content "内容" --image img.png --submit
See references/image-text-posting.md for details.
适用于包含多张图片(最多9张)的短内容发布:
bash
npx -y bun ${SKILL_DIR}/scripts/wechat-browser.ts --markdown article.md --images ./images/
npx -y bun ${SKILL_DIR}/scripts/wechat-browser.ts --title "标题" --content "内容" --image img.png --submit
详情请参考references/image-text-posting.md

Article Posting Workflow (文章)

文章发布流程

Copy this checklist and check off items as you complete them:
Publishing Progress:
- [ ] Step 0: Load preferences (EXTEND.md)
- [ ] Step 1: Determine input type
- [ ] Step 2: Check markdown-to-html skill
- [ ] Step 3: Convert to HTML
- [ ] Step 4: Validate metadata (title, summary, cover)
- [ ] Step 5: Select method and configure credentials
- [ ] Step 6: Publish to WeChat
- [ ] Step 7: Report completion
复制以下检查清单,完成一项勾选一项:
发布进度:
- [ ] 步骤0:加载偏好配置(EXTEND.md)
- [ ] 步骤1:确定输入类型
- [ ] 步骤2:检查Markdown转HTML技能
- [ ] 步骤3:转换为HTML格式
- [ ] 步骤4:验证元数据(标题、摘要、封面)
- [ ] 步骤5:选择发布方式并配置凭证
- [ ] 步骤6:发布至微信公众号
- [ ] 步骤7:反馈完成结果

Step 0: Load Preferences

步骤0:加载偏好配置

Check and load EXTEND.md settings (see Preferences section above).
CRITICAL: If not found, complete first-time setup BEFORE any other steps or questions.
Resolve and store these defaults for later steps:
  • default_author
  • need_open_comment
    (default
    1
    )
  • only_fans_can_comment
    (default
    0
    )
检查并加载EXTEND.md中的设置(见上方「偏好设置」章节)。
重要提示:若未找到配置文件,必须先完成首次设置,再进行后续步骤或提问。
解析并存储以下默认值供后续步骤使用:
  • default_author
  • need_open_comment
    (默认值
    1
  • only_fans_can_comment
    (默认值
    0

Step 1: Determine Input Type

步骤1:确定输入类型

Input TypeDetectionAction
HTML filePath ends with
.html
, file exists
Skip to Step 4
Markdown filePath ends with
.md
, file exists
Continue to Step 2
Plain textNot a file path, or file doesn't existSave to markdown, then Step 2
Plain Text Handling:
  1. Generate slug from content (first 2-4 meaningful words, kebab-case)
  2. Create directory and save file:
bash
mkdir -p "$(pwd)/post-to-wechat/$(date +%Y-%m-%d)"
输入类型检测方式操作
HTML文件路径以
.html
结尾且文件存在
直接跳至步骤4
Markdown文件路径以
.md
结尾且文件存在
继续执行步骤2
纯文本不是文件路径或文件不存在保存为Markdown文件后,继续执行步骤2
纯文本处理逻辑
  1. 从内容生成slug(取前2-4个有意义的词,使用短横线分隔的小写格式)
  2. 创建目录并保存文件:
bash
mkdir -p "$(pwd)/post-to-wechat/$(date +%Y-%m-%d)"

Save content to: post-to-wechat/yyyy-MM-dd/[slug].md

内容保存至:post-to-wechat/yyyy-MM-dd/[slug].md


3. Continue processing as markdown file

**Slug Examples**:
- "Understanding AI Models" → `understanding-ai-models`
- "人工智能的未来" → `ai-future` (translate to English for slug)

3. 按照Markdown文件继续处理

**Slug示例**:
- "Understanding AI Models" → `understanding-ai-models`
- "人工智能的未来" → `ai-future`(转换为英文生成slug)

Step 2: Check Markdown-to-HTML Skill

步骤2:检查Markdown转HTML技能

Skip if: Input is
.html
file
Skill Discovery:
bash
undefined
跳过条件:输入为
.html
文件
技能检测
bash
undefined

Check if canghe-markdown-to-html exists

检查canghe-markdown-to-html技能是否存在

test -f skills/canghe-markdown-to-html/SKILL.md && echo "found"

| Result | Action |
|--------|--------|
| Found | Read its SKILL.md, continue to Step 3 |
| Multiple skills | AskUserQuestion to choose |
| Not found | Show installation suggestion |

**When Not Found**:
No markdown-to-html skill found.
Options: A) Cancel - install the skill first B) Continue - provide HTML file manually
undefined
test -f skills/canghe-markdown-to-html/SKILL.md && echo "found"

| 检测结果 | 操作 |
|--------|--------|
| 已找到 | 读取其SKILL.md,继续执行步骤3 |
| 存在多个技能 | 询问用户选择具体技能 |
| 未找到 | 显示安装建议 |

**未找到技能时的提示**:
未找到Markdown转HTML技能。
选项: A) 取消 - 先安装该技能 B) 继续 - 手动提供HTML文件
undefined

Step 3: Convert Markdown to HTML

步骤3:将Markdown转换为HTML

Skip if: Input is
.html
file
  1. Ask theme preference (unless specified in EXTEND.md or CLI):
ThemeDescription
default
经典主题 - 传统排版,标题居中带底边,二级标题白字彩底
grace
优雅主题 - 文字阴影,圆角卡片,精致引用块
simple
简洁主题 - 现代极简风,不对称圆角,清爽留白
  1. Execute conversion (using the discovered skill):
bash
npx -y bun ${MD_TO_HTML_SKILL_DIR}/scripts/main.ts <markdown_file> --theme <theme>
  1. Parse JSON output to get:
    htmlPath
    ,
    title
    ,
    author
    ,
    summary
    ,
    contentImages
跳过条件:输入为
.html
文件
  1. 询问主题偏好(除非EXTEND.md或CLI已指定):
主题描述
default
经典主题 - 传统排版,标题居中带底边,二级标题白字彩底
grace
优雅主题 - 文字阴影,圆角卡片,精致引用块
simple
简洁主题 - 现代极简风,不对称圆角,清爽留白
  1. 执行转换(使用检测到的技能):
bash
npx -y bun ${MD_TO_HTML_SKILL_DIR}/scripts/main.ts <markdown_file> --theme <theme>
  1. 解析JSON输出,获取:
    htmlPath
    title
    author
    summary
    contentImages

Step 4: Validate Metadata

步骤4:验证元数据

Check extracted metadata from Step 3 (or HTML meta tags if direct HTML input).
FieldIf Missing
TitlePrompt: "Enter title, or press Enter to auto-generate from content"
SummaryPrompt: "Enter summary, or press Enter to auto-generate (recommended for SEO)"
AuthorUse fallback chain: CLI
--author
→ frontmatter
author
→ EXTEND.md
default_author
Auto-Generation Logic:
  • Title: First H1/H2 heading, or first sentence
  • Summary: First paragraph, truncated to 120 characters
Cover Image Check (required for
article_type=news
):
  1. Use CLI
    --cover
    if provided.
  2. Else use frontmatter (
    coverImage
    ,
    featureImage
    ,
    cover
    ,
    image
    ).
  3. Else check article directory default path:
    imgs/cover.png
    .
  4. Else fallback to first inline content image.
  5. If still missing, stop and request a cover image before publishing.
检查步骤3提取的元数据(若为直接HTML输入,则检查HTML元标签)。
字段缺失时的处理
标题提示:"请输入标题,或按回车键从内容自动生成"
摘要提示:"请输入摘要,或按回车键自动生成(推荐用于SEO)"
作者使用 fallback 链:CLI参数
--author
→ 前置元数据
author
→ EXTEND.md配置
default_author
自动生成逻辑
  • 标题:取第一个H1/H2标题,或第一句话
  • 摘要:取第一段内容,截断至120字符
封面图片检查
article_type=news
时必填):
  1. 优先使用CLI参数
    --cover
    指定的图片
  2. 其次使用前置元数据中的
    coverImage
    featureImage
    cover
    image
    字段
  3. 再次检查文章目录下的默认路径:
    imgs/cover.png
  4. 最后 fallback 至文章内的第一张图片
  5. 若仍未找到,停止操作并请求用户提供封面图片

Step 5: Select Publishing Method and Configure

步骤5:选择发布方式并配置

Ask publishing method (unless specified in EXTEND.md or CLI):
MethodSpeedRequirements
api
(Recommended)
FastAPI credentials
browser
SlowChrome, login session
If API Selected - Check Credentials:
bash
undefined
询问发布方式(除非EXTEND.md或CLI已指定):
方式速度要求
api
(推荐)
需要API凭证
browser
需要Chrome浏览器及登录会话
若选择API方式 - 检查凭证
bash
undefined

Check project-level

检查项目级凭证

test -f .canghe-skills/.env && grep -q "WECHAT_APP_ID" .canghe-skills/.env && echo "project"
test -f .canghe-skills/.env && grep -q "WECHAT_APP_ID" .canghe-skills/.env && echo "project"

Check user-level

检查用户级凭证

test -f "$HOME/.canghe-skills/.env" && grep -q "WECHAT_APP_ID" "$HOME/.canghe-skills/.env" && echo "user"

**If Credentials Missing - Guide Setup**:
WeChat API credentials not found.
To obtain credentials:
  1. Visit https://mp.weixin.qq.com
  2. Go to: 开发 → 基本配置
  3. Copy AppID and AppSecret
Where to save? A) Project-level: .canghe-skills/.env (this project only) B) User-level: ~/.canghe-skills/.env (all projects)

After location choice, prompt for values and write to `.env`:
WECHAT_APP_ID=<user_input> WECHAT_APP_SECRET=<user_input>
undefined
test -f "$HOME/.canghe-skills/.env" && grep -q "WECHAT_APP_ID" "$HOME/.canghe-skills/.env" && echo "user"

**若凭证缺失 - 引导配置**:
未找到微信API凭证。
获取凭证步骤:
  1. 访问https://mp.weixin.qq.com
  2. 进入:开发 → 基本配置
  3. 复制AppID和AppSecret
保存位置选项: A) 项目级:.canghe-skills/.env(仅当前项目生效) B) 用户级:~/.canghe-skills/.env(所有项目生效)

用户选择保存位置后,提示输入凭证值并写入`.env`:
WECHAT_APP_ID=<用户输入内容> WECHAT_APP_SECRET=<用户输入内容>
undefined

Step 6: Publish to WeChat

步骤6:发布至微信公众号

API method:
bash
npx -y bun ${SKILL_DIR}/scripts/wechat-api.ts <html_file> [--title <title>] [--summary <summary>] [--author <author>] [--cover <cover_path>]
draft/add
payload rules
:
  • Use endpoint:
    POST https://api.weixin.qq.com/cgi-bin/draft/add?access_token=ACCESS_TOKEN
  • article_type
    :
    news
    (default) or
    newspic
  • For
    news
    , include
    thumb_media_id
    (cover is required)
  • Always resolve and send:
    • need_open_comment
      (default
      1
      )
    • only_fans_can_comment
      (default
      0
      )
  • author
    resolution: CLI
    --author
    → frontmatter
    author
    → EXTEND.md
    default_author
If script parameters do not expose the two comment fields, still ensure final API request body includes resolved values.
Browser method:
bash
npx -y bun ${SKILL_DIR}/scripts/wechat-article.ts --html <html_file>
API方式
bash
npx -y bun ${SKILL_DIR}/scripts/wechat-api.ts <html_file> [--title <title>] [--summary <summary>] [--author <author>] [--cover <cover_path>]
draft/add
请求体规则
  • 使用接口:
    POST https://api.weixin.qq.com/cgi-bin/draft/add?access_token=ACCESS_TOKEN
  • article_type
    :默认
    news
    newspic
  • 若为
    news
    类型,必须包含
    thumb_media_id
    (封面图片必填)
  • 必须在请求体中包含解析后的以下字段:
    • need_open_comment
      (默认
      1
    • only_fans_can_comment
      (默认
      0
  • author
    字段解析优先级:CLI参数
    --author
    → 前置元数据
    author
    → EXTEND.md配置
    default_author
即使脚本参数未暴露这两个评论字段,也需确保最终API请求体包含解析后的对应值。
浏览器方式
bash
npx -y bun ${SKILL_DIR}/scripts/wechat-article.ts --html <html_file>

Step 7: Completion Report

步骤7:完成反馈

For API method, include draft management link:
WeChat Publishing Complete!

Input: [type] - [path]
Method: API
Theme: [theme name]

Article:
• Title: [title]
• Summary: [summary]
• Images: [N] inline images
• Comments: [open/closed], [fans-only/all users]

Result:
✓ Draft saved to WeChat Official Account
• media_id: [media_id]

Next Steps:
→ Manage drafts: https://mp.weixin.qq.com (登录后进入「内容管理」→「草稿箱」)

Files created:
[• post-to-wechat/yyyy-MM-dd/slug.md (if plain text)]
[• slug.html (converted)]
For Browser method:
WeChat Publishing Complete!

Input: [type] - [path]
Method: Browser
Theme: [theme name]

Article:
• Title: [title]
• Summary: [summary]
• Images: [N] inline images

Result:
✓ Draft saved to WeChat Official Account

Files created:
[• post-to-wechat/yyyy-MM-dd/slug.md (if plain text)]
[• slug.html (converted)]
API方式的反馈内容,需包含草稿管理链接:
微信公众号发布完成!

输入内容:[类型] - [路径]
发布方式:API
使用主题:[主题名称]

文章信息:
• 标题:[标题]
• 摘要:[摘要]
• 内嵌图片数量:[N]
• 评论设置:[开启/关闭],[仅粉丝可评论/所有用户可评论]

发布结果:
✓ 草稿已保存至微信公众号
• media_id: [media_id]

后续操作:
→ 管理草稿:https://mp.weixin.qq.com(登录后进入「内容管理」→「草稿箱」)

生成的文件:
[• post-to-wechat/yyyy-MM-dd/slug.md(若输入为纯文本)]
[• slug.html(转换后的HTML文件)]
浏览器方式的反馈内容
微信公众号发布完成!

输入内容:[类型] - [路径]
发布方式:浏览器
使用主题:[主题名称]

文章信息:
• 标题:[标题]
• 摘要:[摘要]
• 内嵌图片数量:[N]

发布结果:
✓ 草稿已保存至微信公众号

生成的文件:
[• post-to-wechat/yyyy-MM-dd/slug.md(若输入为纯文本)]
[• slug.html(转换后的HTML文件)]

Detailed References

详细参考文档

TopicReference
Image-text parameters, auto-compressionreferences/image-text-posting.md
Article themes, image handlingreferences/article-posting.md
主题参考链接
贴图参数、自动压缩references/image-text-posting.md
文章主题、图片处理references/article-posting.md

Feature Comparison

功能对比

FeatureImage-TextArticle (API)Article (Browser)
Plain text input
HTML input
Markdown inputTitle/content✓ (via skill)✓ (via skill)
Multiple images✓ (up to 9)✓ (inline)✓ (inline)
Themes
Auto-generate metadata
Default cover fallback (
imgs/cover.png
)
Comment control (
need_open_comment
,
only_fans_can_comment
)
Requires Chrome
Requires API credentials
SpeedMediumFastSlow
功能贴图文章(API方式)文章(浏览器方式)
纯文本输入
HTML输入
Markdown输入仅标题/内容✓(需依赖技能)✓(需依赖技能)
多张图片✓(最多9张)✓(内嵌)✓(内嵌)
主题支持
元数据自动生成
默认封面 fallback(
imgs/cover.png
评论控制(
need_open_comment
,
only_fans_can_comment
依赖Chrome浏览器
依赖API凭证
发布速度中等

Prerequisites

前置要求

For API method:
  • WeChat Official Account API credentials
  • Guided setup in Step 5, or manually set in
    .canghe-skills/.env
For Browser method:
  • Google Chrome
  • First run: log in to WeChat Official Account (session preserved)
For Markdown conversion:
  • A markdown-to-html skill (e.g.,
    canghe-markdown-to-html
    )
  • If not installed, the workflow will suggest installation
Config File Locations (priority order):
  1. Environment variables
  2. <cwd>/.canghe-skills/.env
  3. ~/.canghe-skills/.env
API方式
  • 微信公众号API凭证
  • 按照步骤5的引导配置,或手动在
    .canghe-skills/.env
    中设置
浏览器方式
  • Google Chrome浏览器
  • 首次运行:登录微信公众号(会话会被保留)
Markdown转换
  • Markdown转HTML技能(如
    canghe-markdown-to-html
  • 若未安装,工作流会提示安装
配置文件位置(优先级顺序):
  1. 环境变量
  2. <cwd>/.canghe-skills/.env
  3. ~/.canghe-skills/.env

Troubleshooting

故障排查

IssueSolution
No markdown-to-html skillInstall
canghe-markdown-to-html
from suggested URL
Missing API credentialsFollow guided setup in Step 5
Access token errorCheck if API credentials are valid and not expired
Not logged in (browser)First run opens browser - scan QR to log in
Chrome not foundSet
WECHAT_BROWSER_CHROME_PATH
env var
Title/summary missingUse auto-generation or provide manually
No cover imageAdd frontmatter cover or place
imgs/cover.png
in article directory
Wrong comment defaultsCheck
EXTEND.md
keys
need_open_comment
and
only_fans_can_comment
Paste failsCheck system clipboard permissions
问题解决方案
未找到Markdown转HTML技能从推荐地址安装
canghe-markdown-to-html
API凭证缺失按照步骤5的引导配置
Access Token错误检查API凭证是否有效且未过期
未登录(浏览器方式)首次运行会打开浏览器 - 扫码登录即可
未找到Chrome浏览器设置环境变量
WECHAT_BROWSER_CHROME_PATH
标题/摘要缺失使用自动生成功能或手动提供
无封面图片添加前置元数据封面字段,或在文章目录下放置
imgs/cover.png
评论默认值错误检查EXTEND.md中的
need_open_comment
only_fans_can_comment
配置项
粘贴失败检查系统剪贴板权限

Extension Support

扩展支持

Custom configurations via EXTEND.md. See Preferences section for paths and supported options.
通过EXTEND.md实现自定义配置。具体路径及支持的配置项见「偏好设置」章节。