mirror of
https://github.com/JimLiu/baoyu-skills.git
synced 2026-08-08 09:53:02 +08:00
feat: add baoyu- prefix
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
# Article Posting (文章发表)
|
||||
|
||||
Post markdown articles to WeChat Official Account with full formatting support.
|
||||
|
||||
## Usage
|
||||
|
||||
```bash
|
||||
# Post markdown article
|
||||
npx -y bun ./scripts/wechat-article.ts --markdown article.md
|
||||
|
||||
# With theme
|
||||
npx -y bun ./scripts/wechat-article.ts --markdown article.md --theme grace
|
||||
|
||||
# With explicit options
|
||||
npx -y bun ./scripts/wechat-article.ts --markdown article.md --author "作者名" --summary "摘要"
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
| Parameter | Description |
|
||||
|-----------|-------------|
|
||||
| `--markdown <path>` | Markdown file to convert and post |
|
||||
| `--theme <name>` | Theme: default, grace, or simple |
|
||||
| `--title <text>` | Override title (auto-extracted from markdown) |
|
||||
| `--author <name>` | Author name (default: 宝玉) |
|
||||
| `--summary <text>` | Article summary |
|
||||
| `--html <path>` | Pre-rendered HTML file (alternative to markdown) |
|
||||
| `--profile <dir>` | Chrome profile directory |
|
||||
|
||||
## Markdown Format
|
||||
|
||||
```markdown
|
||||
---
|
||||
title: Article Title
|
||||
author: Author Name
|
||||
---
|
||||
|
||||
# Title (becomes article title)
|
||||
|
||||
Regular paragraph with **bold** and *italic*.
|
||||
|
||||
## Section Header
|
||||
|
||||

|
||||
|
||||
- List item 1
|
||||
- List item 2
|
||||
|
||||
> Blockquote text
|
||||
|
||||
[Link text](https://example.com)
|
||||
```
|
||||
|
||||
## Image Handling
|
||||
|
||||
1. **Parse**: Images in markdown are replaced with `[[IMAGE_PLACEHOLDER_N]]`
|
||||
2. **Render**: HTML is generated with placeholders in text
|
||||
3. **Paste**: HTML content is pasted into WeChat editor
|
||||
4. **Replace**: For each placeholder:
|
||||
- Find and select the placeholder text
|
||||
- Scroll into view
|
||||
- Press Backspace to delete the placeholder
|
||||
- Paste the image from clipboard
|
||||
|
||||
## Scripts
|
||||
|
||||
| Script | Purpose |
|
||||
|--------|---------|
|
||||
| `wechat-article.ts` | Main article publishing script |
|
||||
| `md-to-wechat.ts` | Markdown to HTML with placeholders |
|
||||
| `md/render.ts` | Markdown rendering with themes |
|
||||
|
||||
## Example Session
|
||||
|
||||
```
|
||||
User: /post-to-wechat --markdown ./article.md
|
||||
|
||||
Claude:
|
||||
1. Parses markdown, finds 5 images
|
||||
2. Generates HTML with placeholders
|
||||
3. Opens Chrome, navigates to WeChat editor
|
||||
4. Pastes HTML content
|
||||
5. For each image:
|
||||
- Selects [[IMAGE_PLACEHOLDER_1]]
|
||||
- Scrolls into view
|
||||
- Presses Backspace to delete
|
||||
- Pastes image
|
||||
6. Reports: "Article composed with 5 images."
|
||||
```
|
||||
@@ -0,0 +1,92 @@
|
||||
# Image-Text Posting (图文发表)
|
||||
|
||||
Post image-text messages with multiple images to WeChat Official Account.
|
||||
|
||||
## Usage
|
||||
|
||||
```bash
|
||||
# Post with images and markdown file (title/content extracted automatically)
|
||||
npx -y bun ./scripts/wechat-browser.ts --markdown source.md --images ./images/
|
||||
|
||||
# Post with explicit title and content
|
||||
npx -y bun ./scripts/wechat-browser.ts --title "标题" --content "内容" --image img1.png --image img2.png
|
||||
|
||||
# Save as draft
|
||||
npx -y bun ./scripts/wechat-browser.ts --markdown source.md --images ./images/ --submit
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
| Parameter | Description |
|
||||
|-----------|-------------|
|
||||
| `--markdown <path>` | Markdown file for title/content extraction |
|
||||
| `--images <dir>` | Directory containing images (sorted by name) |
|
||||
| `--title <text>` | Article title (max 20 chars, auto-compressed if too long) |
|
||||
| `--content <text>` | Article content (max 1000 chars, auto-compressed if too long) |
|
||||
| `--image <path>` | Single image file (can be repeated) |
|
||||
| `--submit` | Save as draft (default: preview only) |
|
||||
| `--profile <dir>` | Chrome profile directory |
|
||||
|
||||
## Auto Title/Content from Markdown
|
||||
|
||||
When using `--markdown`, the script:
|
||||
|
||||
1. **Parses frontmatter** for title and author:
|
||||
```yaml
|
||||
---
|
||||
title: 文章标题
|
||||
author: 作者名
|
||||
---
|
||||
```
|
||||
|
||||
2. **Falls back to H1** if no frontmatter title:
|
||||
```markdown
|
||||
# 这将成为标题
|
||||
```
|
||||
|
||||
3. **Compresses title** to 20 characters if too long:
|
||||
- Original: "如何在一天内彻底重塑你的人生"
|
||||
- Compressed: "一天彻底重塑你的人生"
|
||||
|
||||
4. **Extracts first paragraphs** as content (max 1000 chars)
|
||||
|
||||
## Image Directory Mode
|
||||
|
||||
When using `--images <dir>`:
|
||||
|
||||
- All PNG/JPG files in directory are uploaded
|
||||
- Files are sorted alphabetically by name
|
||||
- Naming convention: `01-cover.png`, `02-content.png`, etc.
|
||||
|
||||
## Constraints
|
||||
|
||||
| Field | Max Length | Notes |
|
||||
|-------|------------|-------|
|
||||
| Title | 20 chars | Auto-compressed if longer |
|
||||
| Content | 1000 chars | Auto-compressed if longer |
|
||||
| Images | 9 max | WeChat limit |
|
||||
|
||||
## Example Session
|
||||
|
||||
```
|
||||
User: /post-to-wechat --markdown ./article.md --images ./xhs-images/
|
||||
|
||||
Claude:
|
||||
1. Parses markdown meta:
|
||||
- Title: "如何在一天内彻底重塑你的人生" → "一天内重塑你的人生"
|
||||
- Author: from frontmatter or default
|
||||
2. Extracts content from first paragraphs
|
||||
3. Finds 7 images in xhs-images/
|
||||
4. Opens Chrome, navigates to WeChat "图文" editor
|
||||
5. Uploads all images
|
||||
6. Fills title and content
|
||||
7. Reports: "Image-text posted with 7 images."
|
||||
```
|
||||
|
||||
## Scripts
|
||||
|
||||
| Script | Purpose |
|
||||
|--------|---------|
|
||||
| `wechat-browser.ts` | Main image-text posting script |
|
||||
| `cdp.ts` | Chrome DevTools Protocol utilities |
|
||||
| `copy-to-clipboard.ts` | Clipboard operations |
|
||||
Reference in New Issue
Block a user