wechat-article-formatter
npx skills add https://github.com/bnd-1/wechat_article_skills --skill wechat-article-formatter
Agent 安装分布
Skill 文档
å¾®ä¿¡å ¬ä¼å·æç« æ ¼å¼åå·¥å ·ï¼Claude æ§è¡æåï¼
ç®æ ï¼å° Markdown æç« 转æ¢ä¸ºéé å¾®ä¿¡å ¬ä¼å·çç²¾ç¾ HTMLï¼å®ç°ä¸é®åå¸ã
æ ¸å¿ä»·å¼ï¼æçæå 15 åï¼30åé â 2åéï¼ï¼æ ¼å¼ä¸è´ä¸ä¸ã
â¡ æ§è¡æµç¨ï¼ä¸¥æ ¼éµå®ï¼
æ¥éª¤1ï¼è·åè¾å ¥æä»¶
åºæ¯å¤æï¼
| åºæ¯ | å¦ä½å¤ç |
|---|---|
| ç¨æ·æä¾æä»¶è·¯å¾ | ç´æ¥ä½¿ç¨è¯¥è·¯å¾ |
| ç¨æ·ç²è´´ Markdown å 容 | å ä½¿ç¨ Write å·¥å ·ä¿å为 .md æä»¶ |
| å使ç¨è¿ wechat-tech-writer | èªå¨æ¥æ¾ææ°çæç .md æä»¶ï¼è§éææå¯¼ï¼ |
| ç¨æ·åªè¯´”ç¾åæç« “ | 询é®ç¨æ·ï¼æä»¶è·¯å¾æç²è´´å 容 |
èªå¨æ£æµææ°æç« ï¼ä¸ wechat-tech-writer éæï¼ï¼
# æ¥æ¾å½åç®å½ææ°ç .md æä»¶
latest_md=$(ls -t *.md 2>/dev/null | head -1)
if [ -n "$latest_md" ]; then
echo "æ£æµå°ææ°æç« ï¼$latest_md"
fi
æ¥éª¤2ï¼æ£æ¥ examples ç®å½ï¼ä¼å 使ç¨ç²¾ç¾æ¨¡æ¿ï¼
â ï¸ éè¦è§åï¼
- ä¼å ä½¿ç¨ examples ä¸çç²¾ç¾æ¨¡æ¿ï¼èéåºç¡ CSS 主é¢
- ä¸è¦æ¸²æ H1 æ é¢ï¼å¾®ä¿¡å ¬ä¼å·æç¬ç«çæ é¢è¾å ¥æ¡ï¼HTML ä¸ä¸åºå å«æç« æ é¢
æ£æ¥å½ä»¤ï¼
cd /root/.claude/skills/wechat-article-formatter
ls -lh examples/
å¯ç¨æ¨¡æ¿ï¼
| æ¨¡æ¿æä»¶ | 飿 ¼ç¹è² | éç¨åºæ¯ |
|---|---|---|
| VSCode èè²ç§æé£.html | 导è¯åãåºå·ç« èæ é¢ãåè½å¡çãæä½æ¥éª¤ | ææ¯æç« ã产åä»ç»ãæç¨ |
| 红è对å³Â·æ·±åº¦æµè¯æ¨¡æ¿.html | æ¸åæ é¢ã对æ¯å¡çãæ°æ®è¡¨æ ¼ãå¼ç¨éå¥ | 对æ¯è¯æµãæ·±åº¦åæ |
| æå®¢æé»é£.html | æ·±è²èæ¯ãæå®¢é£æ ¼ | ææ¯æ·±åº¦æç« ãé»å®¢é£æ ¼ |
| ç°ä»£æç®é£.html | ç®çº¦æ¸ ç½ | éç¨æç« ãç®æ´é£æ ¼ |
éæ©é»è¾ï¼
æç« åæï¼
ââ ææ¯/产åä»ç»ç±» â VSCode èè²ç§æé£ â
ââ 对æ¯/è¯æµç±» â 红è坹峿¨¡æ¿ â
ââ æ·±åº¦ææ¯æç« â æå®¢æé»é£
ââ éç¨å
容 â ç°ä»£æç®é£
æ§è¡æ¹å¼ï¼
- 读åéä¸çæ¨¡æ¿æä»¶
- åç §æ¨¡æ¿çç»ä»¶ç»æï¼å¯¼è¯åãå¡çãæ¥éª¤å表çï¼
- è·³è¿ Markdown ä¸ç H1 æ é¢ï¼# æ é¢ï¼ï¼ä»ç¬¬ä¸ä¸ªæ®µè½æ H2ï¼## ç« èï¼å¼å§
- æå¨å° Markdown å 容æ å°å°æ¨¡æ¿ç»ä»¶ä¸
- å¨ HTML å¼å¤´æ·»å 注éï¼
<!-- â ï¸ æ é¢è¯·å¨å¾®ä¿¡å ¬ä¼å·ç¼è¾å¨ä¸åç¬å¡«å --> - â ï¸ å
³é®æ¥éª¤ï¼è½¬æ¢ä»£ç åæ ¼å¼
- 使ç¨
scripts/convert-code-blocks.pyå°çæç HTML ä¸ç代ç å转æ¢ä¸ºå¾®ä¿¡å ¼å®¹æ ¼å¼ - å½ä»¤ï¼
python scripts/convert-code-blocks.py input.html output.html - è¿ä¼å°
<pre><code>转æ¢ä¸º<div>+<br>+ æ ¼å¼ï¼å¾®ä¿¡å¯ä¸æ¯æç代ç åæ ¼å¼ï¼
- 使ç¨
- çæç²¾ç¾ç HTML æä»¶
å¦ææ²¡æåéçæ¨¡æ¿ï¼æä½¿ç¨æ¥éª¤3çåºç¡ CSS 主é¢è½¬æ¢ã
æ¥éª¤3ï¼éæ©åºç¡ä¸»é¢ï¼ä» å½ examples æ å鿍¡æ¿æ¶ä½¿ç¨ï¼
å³çæ ï¼èªå¨éæ© OR 询é®ç¨æ·ï¼ï¼
æç« å
容åæï¼
ââ å
å«ä»£ç åï¼```ï¼æææ¯è¯æ±å¤ â techï¼ç§æé£ï¼
ââ å
嫿°æ®è¡¨æ ¼ãå䏿¯è¯ â businessï¼åå¡é£ï¼
ââ 纯æåãéç¨å
容 â minimalï¼ç®çº¦é£ï¼
主é¢å¯¹ç §è¡¨ï¼
| ä¸»é¢ | éç¨åºæ¯ | é è² | 使¶ä½¿ç¨ |
|---|---|---|---|
| tech | ææ¯æç« ãAIãç¼ç¨æç¨ | èç´«æ¸å | é»è®¤éæ©ï¼æ¥èª wechat-tech-writer çæç« |
| minimal | çæ´»éç¬ã读书ç¬è®° | é»ç½ç° | 纯æåå å®¹ï¼æ 代ç |
| business | å䏿¥åãæ°æ®åæ | æ·±èé | å å«è¡¨æ ¼ãæ°æ®ãå¾è¡¨ |
å¦ä½è¯¢é®ç¨æ·ï¼
æ£æµå°æç« å
å«ä»£ç åï¼å»ºè®®ä½¿ç¨ tech 主é¢ã
éè¦åæ¢ä¸»é¢åï¼ï¼tech / minimal / businessï¼
æ¥éª¤4ï¼æ§è¡è½¬æ¢
æ å转æ¢å½ä»¤ï¼
cd /root/.claude/skills/wechat-article-formatter
python scripts/markdown_to_html.py \
--input "{æä»¶è·¯å¾}" \
--theme {主é¢å} \
--output "{è¾åºè·¯å¾}" \
--preview
åæ°è¯´æï¼
--inputï¼Markdown æä»¶è·¯å¾ï¼å¿ éï¼--themeï¼tech / minimal / businessï¼é»è®¤ techï¼--outputï¼HTML è¾åºè·¯å¾ï¼å¯éï¼é»è®¤åå .htmlï¼--previewï¼è½¬æ¢åèªå¨å¨æµè§å¨æå¼é¢è§ï¼æ¨èï¼
示ä¾ï¼
# æå¸¸ç¨ï¼ä½¿ç¨ tech 主é¢è½¬æ¢å¹¶é¢è§
python scripts/markdown_to_html.py \
--input "Claude_Sonnet_4ä»ç».md" \
--theme tech \
--preview
æ¥éª¤5ï¼è´¨éæ£æ¥
转æ¢å®æåï¼å¿ é¡»æ£æ¥ï¼
ä½¿ç¨ Read å·¥å ·è¯»åçæç HTML æä»¶ï¼å 50 è¡ï¼ï¼æ£æ¥ï¼
| æ£æ¥é¡¹ | å¦ä½éªè¯ | 常è§é®é¢ |
|---|---|---|
| æ 颿 ·å¼ | æ¥ç <h1>, <h2> æ ç¾ç style 屿§ |
æ ·å¼ä¸¢å¤± â éæ°è½¬æ¢ |
| 代ç é«äº® | æ¥ç <pre><code> æ¯å¦æè¯è¨æ è¯ |
æ é«äº® â æ£æ¥ Markdown æ¯å¦æå®è¯è¨ |
| å¾çè·¯å¾ | æ¥ç <img src=""> çè·¯å¾ |
æ¬å°è·¯å¾ â æéç¨æ·éä¸ä¼ å°å¾®ä¿¡ |
| è¡¨æ ¼æ ¼å¼ | æ¥ç <table> æ¯å¦æå
èæ ·å¼ |
æ ¼å¼æ··ä¹± â ç®åè¡¨æ ¼åæ° |
å¿«éæ£æ¥å½ä»¤ï¼
# æ¥ç HTML æä»¶å 50 è¡
head -50 output.html
æ¥éª¤6ï¼é¢è§ååé¦
询é®ç¨æ·ï¼
â
è½¬æ¢æåï¼å·²çæï¼{è¾åºæä»¶è·¯å¾}
é¢è§ææï¼
- 已卿µè§å¨æå¼é¢è§
- æè®¿é®ï¼file://{ç»å¯¹è·¯å¾}
è¯·æ£æ¥ææï¼æ»¡æåï¼
- 满æ â è¿å
¥æ¥éª¤6ï¼å叿坼ï¼
- éè¦è°æ´ â å¯ä»¥åæ¢ä¸»é¢ææå¨ä¿®å¤
å¦æç¨æ·ä¸æ»¡æï¼
| é®é¢ | è§£å³æ¹æ¡ |
|---|---|
| “é¢è²ä¸å欢” | 忢䏻é¢éæ°çæï¼tech/minimal/businessï¼ |
| “代ç åæ²¡é«äº®” | æ£æ¥ Markdown 代ç 忝妿å®è¯è¨ï¼“`pythonï¼ |
| “å¾çæ¾ç¤ºä¸æ£å¸¸” | æéï¼æ¬å°å¾çéä¸ä¼ å°å¾®ä¿¡ç¼è¾å¨ |
| “è¡¨æ ¼å¤ªå®½” | 建议ç®åè¡¨æ ¼ï¼â¤4åï¼ææ¥åæ¨ªåæ»å¨ |
æ¥éª¤7ï¼å叿坼
è¾åºç»ç¨æ·ç宿´æå¯¼ï¼
ð åå¸å°å¾®ä¿¡å
¬ä¼å·æ¥éª¤ï¼
1. æå¼å¾®ä¿¡å
¬ä¼å·ç¼è¾å¨
2. â
卿 颿 å¡«åæç« æ é¢ï¼{ä» Markdown æåçæ é¢}
3. æå¼çæç HTML æä»¶ï¼{æä»¶è·¯å¾}
4. 卿µè§å¨ä¸æ Ctrl+Aï¼å
¨éï¼â Ctrl+Cï¼å¤å¶ï¼
5. ç²è´´å°ç¼è¾å¨æ£æåºï¼Ctrl+Vï¼
6. å¤çå¾çï¼
- å 餿 æ³æ¾ç¤ºçæ¬å°å¾çå¼ç¨
- éæ°ä¸ä¼ å¾çå°å¾®ä¿¡ç¼è¾å¨
6. æåæ£æ¥ï¼æ é¢å±çº§ã段è½é´è·ã代ç å
7. 使ç¨å¾®ä¿¡ç¼è¾å¨ç"é¢è§"åè½å¨ææºæ¥ç
8. 确认æ 误ååå¸
â ï¸ æ³¨æäºé¡¹ï¼
- æ ·å¼å·²å
èï¼å¯ç´æ¥ç²è´´
- æ¬å°å¾çééæ°ä¸ä¼
- ç²è´´å微信ç¼è¾å¨å¯è½å¾®è°é¨åæ ·å¼ï¼æ£å¸¸ï¼
详ç»å叿åï¼references/publishing-guide.md
ð ä¸ wechat-tech-writer éæ
åºæ¯ï¼åç¨ wechat-tech-writer çææç«
è¯å«æ å¿ï¼
- ç¨æ·å说返åä¸ç¯å ³äºXXXçæç« “
- å½åç®å½ææ°çæç .md æä»¶
èªå¨åæµç¨ï¼
# 1. æ¥æ¾ææ°æç«
latest_article=$(ls -t *.md 2>/dev/null | head -1)
# 2. 确认æ¯å¦æ¯ç®æ æç«
echo "æ£æµå°ææ°æç« ï¼$latest_article"
echo "æ¯å¦è¦è½¬æ¢è¿ç¯æç« ï¼(y/n)"
# 3. èªå¨éæ© tech 主é¢ï¼wechat-tech-writer 主è¦çæææ¯æç« ï¼
python scripts/markdown_to_html.py \
--input "$latest_article" \
--theme tech \
--preview
æ ç¼è¡æ¥è¯æ¯ï¼
æ£æµå°ä½ åç¨ wechat-tech-writer çæäºæç« ï¼{æä»¶å}
ç°å¨ä¸ºä½ ç¾åæ ¼å¼ï¼ä½¿ç¨ tech 主é¢...
â é误å¤ç表
| éè¯¯ä¿¡æ¯ | åå | Claude åºè¯¥åä»ä¹ |
|---|---|---|
FileNotFoundError: Input file not found |
æä»¶è·¯å¾é误 | 询é®ç¨æ·æ£ç¡®çæä»¶è·¯å¾ |
Unknown theme: xxx |
主é¢åé误 | æç¤ºå¯ç¨ä¸»é¢ï¼tech/minimal/business |
Theme CSS file not found |
ä¸»é¢æä»¶ç¼ºå¤± | 使ç¨é»è®¤ tech 主é¢éè¯ |
| è½¬æ¢æåä½ä»£ç æ é«äº® | Markdown æªæå®è¯è¨ | æéç¨æ·ä¿®æ¹ä»£ç å3`pythonï¼ |
| å¾çæ æ³æ¾ç¤º | æ¬å°è·¯å¾æå¤é¾å¤±æ | æéç¨æ·å¨å¾®ä¿¡ç¼è¾å¨éæ°ä¸ä¼ |
| è¡¨æ ¼æ ¼å¼æ··ä¹± | è¡¨æ ¼è¿å®½ | 建议ç®åè¡¨æ ¼æè½¬ä¸ºå¾ç |
ð å¿«éåè
æå¸¸ç¨ç 3 个å½ä»¤
1. æ å转æ¢ï¼æå¸¸ç¨ï¼ï¼
python scripts/markdown_to_html.py --input article.md --theme tech --preview
2. æ¹é转æ¢ï¼å¤ç¯æç« ï¼ï¼
python scripts/batch_convert.py --input articles/ --theme minimal --workers 8
3. 宿¶é¢è§ï¼è¾¹åè¾¹çï¼ï¼
python scripts/preview_generator.py --input article.md --theme business
常è§é®é¢å¿«éè§£ç
Q: ç²è´´å°å¾®ä¿¡åæ ·å¼ä¸¢å¤±ï¼ A: 使稔ç²è´´”èé”ç²è´´å¹¶å¹é æ ·å¼”ï¼ææ¸ ç©ºç¼è¾å¨åéæ°ç²è´´ã
Q: 代ç åæ²¡æé«äº®ï¼ A: ç¡®ä¿ Markdown 䏿å®äºè¯è¨ï¼“`pythonï¼ä¸æ¯ “`ï¼
Q: å¦ä½èªå®ä¹ä¸»é¢é¢è²ï¼
A: å¤å¶ templates/tech-theme.css â ä¿®æ¹é¢è²åé â ä½¿ç¨ --theme my-theme
ð 宿´ææ¡£å¯¼èª
æ¬ææ¡£ï¼SKILL.mdï¼ï¼Claude æ§è¡æåï¼ç²¾ç®çï¼
å ¶ä»ææ¡£ï¼ç¨æ·æåï¼ï¼
- QUICKSTART.md – 3 åéå¿«éå¼å§ï¼æ°å¢ï¼
- README.md – 宿´åè½ä»ç»ååæ°è¯´æ
- EXAMPLES.md – 3 个详ç»ä½¿ç¨ç¤ºä¾
- references/publishing-guide.md – 详ç»å叿¥éª¤
- references/theme-customization.md – 主é¢èªå®ä¹æå
- references/wechat-constraints.md – 微信平å°éå¶è¯´æ
å¦ä½ä½¿ç¨ææ¡£ï¼
- Claude 主è¦ç SKILL.mdï¼æ¬ææ¡£ï¼å QUICKSTART.md
- éè¦è¯¦ç»ä¿¡æ¯æ¶åç references/ ç®å½
- ç¨æ·ä¸»è¦ç README.md å EXAMPLES.md
â æ§è¡æ£æ¥æ¸ åï¼æ¯æ¬¡æ§è¡å®æ¯å确认ï¼
- å·²è·åè¾å ¥æä»¶ï¼è·¯å¾æå 容ï¼
- 已鿩åé主é¢ï¼èªå¨å¤ææè¯¢é®ç¨æ·ï¼
- å·²æ§è¡è½¬æ¢å½ä»¤
- å·²æ£æ¥çæç HTML æä»¶ï¼æ é¢ã代ç ãå¾çï¼
- 已询é®ç¨æ·é¢è§æææ¯å¦æ»¡æ
- å·²æä¾å®æ´çå叿坼
- å·²å¤çå¯è½åºç°çé误
è®°ä½ï¼è¿ä¸ª skill çæ ¸å¿æ¯èªå¨å + ä¸ä¸åï¼è®©ç¨æ· 2 åé宿忬 30 åéçå·¥ä½ï¼