SKILLS/leetcode-daily-card/SKILL.md

111 lines
2.7 KiB
Markdown

---
name: leetcode-daily-card
description: A Node.js script that fetches the daily LeetCode challenge and renders it as a PNG card, HTML page, or Markdown document.
metadata: {"clawdbot":{"emoji":"📋","os":["linux","darwin","win32"]}}
---
# LeetCode Daily Card Generator
A Node.js script that automatically fetches the daily LeetCode challenge and renders it as a PNG card, HTML page, or Markdown document.
## Features
- **Automatic Daily Fetch**: Retrieves the current daily LeetCode problem via GraphQL API
- **Browser Rendering**: Uses Puppeteer for high-quality PNG output with CSS styling
- **Multiple Output Formats**: `.png` (image), `.html` (styled page), `.md` (markdown)
- **Theme Support**: Light and dark themes
- **CJK Support**: Noto Sans SC and system fonts for Chinese characters
- **Code Highlighting**: Syntax highlighting via highlight.js
- **LaTeX Support**: KaTeX rendering for math formulas
## Installation
```bash
cd scripts
npm install
```
## Dependencies
- **puppeteer-core**: Browser automation (uses local Chrome/Edge)
- **marked**: Markdown parsing
- **katex**: LaTeX math rendering
- **highlight.js**: Code syntax highlighting
## Usage
```bash
# Generate PNG card (default light theme)
node run.js output.png
# Generate PNG with dark theme
node run.js output.png --dark
# Generate HTML page
node run.js output.html
# Generate Markdown document
node run.js output.md
# Custom max width (for long descriptions)
node run.js output.png --max-width=800 --dark
```
## Output Formats
### PNG Card
- Gradient header with date and LeetCode icon
- Question title, ID, difficulty badge, acceptance rate
- Tags as styled pills
- Full problem description with code formatting
- Footer with link to problem page
### HTML Page
- Same styling as PNG, exportable as standalone file
- Responsive design
- Interactive links
### Markdown Document
- Clean Markdown formatting
- Question metadata in Info section
- Full problem description
- Example test cases
- Link to problem page
## Supported Platforms
- **Windows**: Chrome/Edge from default installation paths
- **macOS**: Chrome/Edge from Applications
- **Linux**: Chrome/Chromium from system PATH
## Workflow
```
LeetCode GraphQL API
Fetch Question Data
Generate HTML Template
Browser Rendering (PNG) / File Output (HTML/MD)
```
## Browser Configuration
The script auto-detects installed browsers in this order:
1. `CHROME_PATH` environment variable
2. Google Chrome
3. Microsoft Edge
4. Chromium
```bash
# Force specific browser
CHROME_PATH="C:\Program Files\Google\Chrome\Application\chrome.exe" node run.js output.png
```
## Notes
- Requires internet access to fetch from LeetCode API
- Browser must be installed for PNG/HTML output
- Markdown output works without browser