wechat-publisher
9
总安装量
3
周安装量
#31914
全站排名
安装命令
npx skills add https://github.com/artshooter/wechat-publisher --skill wechat-publisher
Agent 安装分布
github-copilot
3
codex
3
gemini-cli
3
amp
2
claude-code
2
Skill 文档
WeChat Publisher Skill
å° Markdown æç« æºè½æçå¹¶åå¸å°å¾®ä¿¡å ¬ä¼å·è稿箱ã
æ ¸å¿ç¹æ§:
- AI çæåæ HTMLï¼é模æ¿åï¼
- èªå¨ä¸ä¼ å¾ç
- èªå¨ä½¿ç¨é»è®¤å°é¢ï¼å¦ææ²¡æå¾çï¼
- é¶äººå·¥å¹²é¢
工使µç¨
Step 1: 读å Markdown
# æç« é叏卿¡é¢
ls ~/Desktop/*.md
ä½¿ç¨ Read tool 读åæç« å 容ã
Step 1.5: æåæ é¢å¹¶åç¦»æ£æ
读å Markdown åï¼éè¦å离æ é¢åæ£æï¼
- æåæ é¢: æç« æ é¢é常æ¯ç¬¬ä¸è¡ç
# æ 颿æä»¶å - åç¦»æ£æ: ä» Markdown å 容ä¸ç§»é¤æ é¢è¡ï¼åªä¿çæ£æé¨å
- ä¿åæ é¢: å°æ é¢ä¿å为åéï¼ç¨äºåç» API è°ç¨
示ä¾:
# å设 markdown_content æ¯è¯»åçåå§å
容
lines = markdown_content.strip().split('\n')
# æåæ é¢ï¼ç¬¬ä¸è¡å¦ææ¯ # å¼å¤´ï¼
if lines[0].startswith('#'):
title = lines[0].lstrip('#').strip()
body_content = '\n'.join(lines[1:]).strip()
else:
# ä½¿ç¨æä»¶åä½ä¸ºæ é¢
title = filename.replace('.md', '')
body_content = markdown_content
# body_content å°±æ¯ä¸å«æ é¢çæ£æï¼ä¼ ç» AI 转æ¢
éè¦: åªæ body_contentï¼ä¸å«æ é¢ï¼ä¼ ç»ä¸ä¸æ¥ç AI 转æ¢ã
Step 2: AI çæ HTML
éµå¾ª references/AI_CONVERTER_PROMPT.md æç¤ºè¯ï¼å°æ£æå
容ï¼ä¸å«æ é¢ï¼è½¬æ¢ä¸º HTMLã
æ ¸å¿è¦æ±:
- å
许æ ç¾:
p, br, strong, em, span, img, a, table, tr, td - æææ ·å¼: inline +
!important - ç¦æ¢:
div, section, class, id, SVG, å¨ç», Emoji - å¾çè·¯å¾: å®å ¨ä¿çï¼ä¸ä¿®æ¹
è¾åº: ä¿åå° /tmp/article_styled.html
Step 3: ä¸ä¼ å¾ç
æ«æ HTML ä¸çæ¬å°å¾çï¼é个ä¸ä¼ å°å¾®ä¿¡ï¼
python3 ~/.claude/skills/wechat-publisher/scripts/image_uploader.py <image_path>
æ¿æ¢ HTML ä¸ç src 为微信 CDN URLã
Step 4: èªå¨ä¿®å¤
å¨ create_draft() ä¸èªå¨æ§è¡è½»éä¿®å¤:
- å 餿 ç¾é´ç©ºç½ â 鲿¢è«å空è¡
- ç¡®ä¿æææ ·å¼æ
!important - 强å¶ç¦ç¨ç¼©è¿ (
text-indent: 0) - ç§»é¤ä¸æ¯ææ ·å¼ (box-shadow, transform ç)
Step 5: æåå æ°æ®
- æ é¢: æä»¶åï¼å»é¤ .md åç¼ï¼
- ä½è : ä»é ç½®æä»¶è¯»åï¼å¦æé ç½®äºï¼ï¼å¦åç空
- å°é¢: èªå¨ä½¿ç¨é»è®¤å°é¢å¾ï¼å¦ææç« 没æå¾çï¼
Step 6: åå¸è稿
python3 << 'EOF'
import sys
sys.path.insert(0, '/Users/as/.claude/skills/wechat-publisher/scripts')
from publisher import WeChatPublisher
with open('/tmp/article_styled.html', 'r', encoding='utf-8') as f:
content = f.read()
publisher = WeChatPublisher()
result = publisher.create_draft(
title="æç« æ é¢",
content=content,
# author åæ°å¯ä»¥çç¥ï¼ä¼èªå¨ä½¿ç¨é
ç½®æä»¶ä¸çä½è
å
# 妿éè¦è¦çé
ç½®ï¼å¯ä»¥ä¼ å
¥: author="ç¹å®ä½è
å"
thumb_media_id="", # ç空åèªå¨ä½¿ç¨é»è®¤é»è²å°é¢
digest="",
content_base_dir="/path/to/article/directory"
)
print(f"Draft media_id: {result['media_id']}")
EOF
Step 7: æ¸ ç
rm -f /tmp/article_styled.html
æ¥åæåä¿¡æ¯ï¼
â æç« å·²æååå¸å°å¾®ä¿¡è稿箱ï¼
Draft ID: {media_id}
æ¥çè稿: https://mp.weixin.qq.com â ç´ æç®¡ç â è稿箱
èµæºæä»¶
- é»è®¤å°é¢å¾:
assets/default_cover.png(900×500, 纯é»è²)
åèææ¡£
- AI è½¬æ¢æç¤ºè¯:
references/AI_CONVERTER_PROMPT.md