🎯

baoyu-url-to-markdown

🎯Skill

from yelban/baoyu-skills.tw

VibeIndex|
What it does

Converts web pages to clean markdown by fetching URLs via Chrome DevTools Protocol, supporting automatic and manual capture modes.

πŸ“¦

Part of

yelban/baoyu-skills.tw(16 items)

baoyu-url-to-markdown

Installation

npxRun with npx
npx -y bun ${SKILL_DIR}/scripts/main.ts <url>
npxRun with npx
npx -y bun ${SKILL_DIR}/scripts/main.ts <url> --wait
npxRun with npx
npx -y bun ${SKILL_DIR}/scripts/main.ts <url> -o output.md
πŸ“– Extracted from docs: yelban/baoyu-skills.tw
2Installs
-
AddedFeb 4, 2026

Skill Details

SKILL.md

Fetch any URL and convert to markdown using Chrome CDP. Supports two modes - auto-capture on page load, or wait for user signal (for pages requiring login). Use when user wants to save a webpage as markdown.

Overview

# URL to Markdown

Fetches any URL via Chrome CDP and converts HTML to clean markdown.

Script Directory

Important: All scripts are located in the scripts/ subdirectory of this skill.

Agent Execution Instructions:

  1. Determine this SKILL.md file's directory path as SKILL_DIR
  2. Script path = ${SKILL_DIR}/scripts/.ts
  3. Replace all ${SKILL_DIR} in this document with the actual path

Script Reference:

| Script | Purpose |

|--------|---------|

| scripts/main.ts | CLI entry point for URL fetching |

Preferences (EXTEND.md)

Use Bash to check EXTEND.md existence (priority order):

```bash

# Check project-level first

test -f .baoyu-skills/baoyu-url-to-markdown/EXTEND.md && echo "project"

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

test -f "$HOME/.baoyu-skills/baoyu-url-to-markdown/EXTEND.md" && echo "user"

```

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”

β”‚ Path β”‚ Location β”‚

β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€

β”‚ .baoyu-skills/baoyu-url-to-markdown/EXTEND.md β”‚ Project directory β”‚

β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€

β”‚ $HOME/.baoyu-skills/baoyu-url-to-markdown/EXTEND.md β”‚ User home β”‚

β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”

β”‚ Result β”‚ Action β”‚

β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€

β”‚ Found β”‚ Read, parse, apply settings β”‚

β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€

β”‚ Not found β”‚ Use defaults β”‚

β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

EXTEND.md Supports: Default output directory | Default capture mode | Timeout settings

Features

  • Chrome CDP for full JavaScript rendering
  • Two capture modes: auto or wait-for-user
  • Clean markdown output with metadata
  • Handles login-required pages via wait mode

Usage

```bash

# Auto mode (default) - capture when page loads

npx -y bun ${SKILL_DIR}/scripts/main.ts

# Wait mode - wait for user signal before capture

npx -y bun ${SKILL_DIR}/scripts/main.ts --wait

# Save to specific file

npx -y bun ${SKILL_DIR}/scripts/main.ts -o output.md

```

Options

| Option | Description |

|--------|-------------|

| | URL to fetch |

| -o | Output file path (default: auto-generated) |

| --wait | Wait for user signal before capturing |

| --timeout | Page load timeout (default: 30000) |

Capture Modes

| Mode | Behavior | Use When |

|------|----------|----------|

| Auto (default) | Capture on network idle | Public pages, static content |

| Wait (--wait) | User signals when ready | Login-required, lazy loading, paywalls |

Wait mode workflow:

  1. Run with --wait β†’ script outputs "Press Enter when ready"
  2. Ask user to confirm page is ready
  3. Send newline to stdin to trigger capture

Output Format

YAML front matter with url, title, description, author, published, captured_at fields, followed by converted markdown content.

Output Directory

```

url-to-markdown//.md

```

  • : From page title or URL path (kebab-case, 2-6 words)
  • Conflict resolution: Append timestamp -YYYYMMDD-HHMMSS.md

Environment Variables

| Variable | Description |

|----------|-------------|

| URL_CHROME_PATH | Custom Chrome executable path |

| URL_DATA_DIR | Custom data directory |

| URL_CHROME_PROFILE_DIR | Custom Chrome profile directory |

Troubleshooting: Chrome not found β†’ set URL_CHROME_PATH. Timeout β†’ increase --timeout. Complex pages β†’ try --wait mode.

Extension Support

Custom configurations via EXTEND.md. See Preferences section for paths and supported options.

More from this repository10

🎯
baoyu-danger-gemini-web🎯Skill

Generates images and text via reverse-engineered Gemini Web API, supporting text, image, and vision-based AI generation.

🎯
baoyu-article-illustrator🎯Skill

Generates AI-powered illustrations for articles using Midjourney, tailored to match the content and style of the text.

🎯
baoyu-xhs-images🎯Skill

Generates and manages Xiaohongshu (Red) style images with customizable AI-driven design parameters.

🎯
baoyu-slide-deck🎯Skill

Generates professional slide deck images from content, creating stylized presentations with customizable options for audience, style, and language.

🎯
baoyu-post-to-x🎯Skill

I apologize, but I cannot generate a description without seeing the actual content or context of the "baoyu-post-to-x" skill. Could you provide more details about what this specific skill does? Wit...

🎯
baoyu-compress-image🎯Skill

Automatically compresses and optimizes images using the best available tool, converting to WebP or other formats with quality control.

🎯
baoyu-cover-image🎯Skill

Generates customizable article cover images with 5-dimensional design options, supporting multiple styles, palettes, and aspect ratios.

🎯
baoyu-post-to-wechat🎯Skill

Automatically posts blog articles to WeChat Official Account platform via API integration.

🎯
release-skills🎯Skill

Automatically detects and updates version files and multilingual changelogs across various project types with intelligent version bumping and release workflows.

🎯
baoyu-danger-x-to-markdown🎯Skill

Converts X (Twitter) tweets and threads to markdown with YAML front matter, requiring user consent for API usage.