Add 260+ Claude Code skills from skills.sh
Complete collection of AI agent skills including: - Frontend Development (Vue, React, Next.js, Three.js) - Backend Development (NestJS, FastAPI, Node.js) - Mobile Development (React Native, Expo) - Testing (E2E, frontend, webapp) - DevOps (GitHub Actions, CI/CD) - Marketing (SEO, copywriting, analytics) - Security (binary analysis, vulnerability scanning) - And many more... Synchronized from: https://skills.sh/ Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
331
meme-factory/skill.md
Normal file
331
meme-factory/skill.md
Normal file
@@ -0,0 +1,331 @@
|
||||
---
|
||||
name: meme-factory
|
||||
description: Generate memes using the memegen.link API. Use when users request memes, want to add humor to content, or need visual aids for social media. Supports 100+ popular templates with custom text and styling.
|
||||
---
|
||||
|
||||
# Meme Factory
|
||||
|
||||
Create memes using the free memegen.link API and textual meme formats.
|
||||
|
||||
---
|
||||
|
||||
## Triggers
|
||||
|
||||
| Trigger | Description |
|
||||
|---------|-------------|
|
||||
| `/meme-factory` | Manual invocation |
|
||||
| `/meme-factory {template} {top} {bottom}` | Direct meme generation |
|
||||
| `meme-factory: create a meme about X` | Natural language request |
|
||||
|
||||
---
|
||||
|
||||
## Quick Reference
|
||||
|
||||
| Action | Format |
|
||||
|--------|--------|
|
||||
| Basic meme | `https://api.memegen.link/images/{template}/{top}/{bottom}.png` |
|
||||
| With sizing | `?width=1200&height=630` |
|
||||
| Custom background | `?style=https://example.com/image.jpg` |
|
||||
| All templates | https://api.memegen.link/templates/ |
|
||||
| Interactive docs | https://api.memegen.link/docs/ |
|
||||
|
||||
**Additional Resources:**
|
||||
- [Markdown Memes Guide](references/markdown-memes-guide.md) - 15+ textual meme formats
|
||||
- [Examples](references/examples.md) - Practical usage examples
|
||||
- [meme_generator.py](scripts/meme_generator.py) - Python helper script
|
||||
|
||||
---
|
||||
|
||||
## Quick Start
|
||||
|
||||
### Basic Meme Structure
|
||||
|
||||
```
|
||||
https://api.memegen.link/images/{template}/{top_text}/{bottom_text}.{extension}
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```
|
||||
https://api.memegen.link/images/buzz/memes/memes_everywhere.png
|
||||
```
|
||||
|
||||
Result: Buzz Lightyear meme with "memes" at top and "memes everywhere" at bottom.
|
||||
|
||||
### Text Formatting
|
||||
|
||||
| Character | Encoding |
|
||||
|-----------|----------|
|
||||
| Space | `_` or `-` |
|
||||
| Newline | `~n` |
|
||||
| Question mark | `~q` |
|
||||
| Percent | `~p` |
|
||||
| Slash | `~s` |
|
||||
| Hash | `~h` |
|
||||
| Single quote | `''` |
|
||||
| Double quote | `""` |
|
||||
|
||||
---
|
||||
|
||||
## Popular Templates
|
||||
|
||||
| Template | Use Case | Example |
|
||||
|----------|----------|---------|
|
||||
| `buzz` | X, X everywhere | bugs/bugs_everywhere |
|
||||
| `drake` | Comparisons | manual_testing/automated_testing |
|
||||
| `success` | Victories | deployed/no_errors |
|
||||
| `fine` | Things going wrong | server_on_fire/this_is_fine |
|
||||
| `fry` | Uncertainty | not_sure_if_bug/or_feature |
|
||||
| `changemind` | Hot takes | tabs_are_better_than_spaces |
|
||||
| `distracted` | Priorities | my_code/new_framework/current_project |
|
||||
| `mordor` | One does not simply | one_does_not_simply/deploy_on_friday |
|
||||
|
||||
---
|
||||
|
||||
## Template Selection Guide
|
||||
|
||||
| Context | Template | Why |
|
||||
|---------|----------|-----|
|
||||
| Comparing options | `drake` | Two-panel reject/approve format |
|
||||
| Celebrating wins | `success` | Positive outcome emphasis |
|
||||
| Problems ignored | `fine` | Ironic "everything is fine" |
|
||||
| Uncertainty | `fry` | "Not sure if X or Y" format |
|
||||
| Controversial opinion | `changemind` | Statement + challenge |
|
||||
| Ubiquitous things | `buzz` | "X, X everywhere" |
|
||||
| Bad ideas | `mordor` | "One does not simply..." |
|
||||
|
||||
---
|
||||
|
||||
## Validation
|
||||
|
||||
After generating a meme:
|
||||
|
||||
- [ ] URL returns valid image (test in browser)
|
||||
- [ ] Text is readable (not too long)
|
||||
- [ ] Template matches the message context
|
||||
- [ ] Special characters properly encoded
|
||||
- [ ] Dimensions appropriate for platform
|
||||
|
||||
### Platform Dimensions
|
||||
|
||||
| Platform | Dimensions |
|
||||
|----------|------------|
|
||||
| Social media (Open Graph) | 1200x630 |
|
||||
| Slack/Discord | 800x600 |
|
||||
| GitHub | Default |
|
||||
|
||||
---
|
||||
|
||||
## Anti-Patterns
|
||||
|
||||
| Avoid | Why | Instead |
|
||||
|-------|-----|---------|
|
||||
| Spaces without encoding | URL breaks | Use `_` or `-` |
|
||||
| Too much text | Unreadable | 2-6 words per line |
|
||||
| Wrong template | Message mismatch | Match template to context |
|
||||
| Missing extension | Invalid URL | Always include `.png`, `.jpg`, etc. |
|
||||
| Unencoded special chars | URL breaks | Use `~q`, `~s`, `~p`, etc. |
|
||||
| Assuming template exists | 404 error | Check templates list first |
|
||||
|
||||
---
|
||||
|
||||
## Verification
|
||||
|
||||
Meme generation is successful when:
|
||||
|
||||
1. **URL is valid** - Returns HTTP 200
|
||||
2. **Image renders** - Displays correctly in markdown
|
||||
3. **Text is visible** - Properly formatted on image
|
||||
4. **Context matches** - Template fits the message
|
||||
|
||||
**Test command:**
|
||||
```bash
|
||||
curl -I "https://api.memegen.link/images/buzz/test/test.png"
|
||||
# Should return: HTTP/2 200
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
<details>
|
||||
<summary><strong>Deep Dive: Advanced Features</strong></summary>
|
||||
|
||||
### Image Formats
|
||||
|
||||
| Extension | Use Case |
|
||||
|-----------|----------|
|
||||
| `.png` | Best quality, default |
|
||||
| `.jpg` | Smaller file size |
|
||||
| `.webp` | Modern, good compression |
|
||||
| `.gif` | Animated templates |
|
||||
|
||||
### Dimensions
|
||||
|
||||
```
|
||||
?width=800
|
||||
?height=600
|
||||
?width=800&height=600 (padded to exact)
|
||||
```
|
||||
|
||||
### Layout Options
|
||||
|
||||
```
|
||||
?layout=top # Text at top only
|
||||
?layout=bottom # Text at bottom only
|
||||
?layout=default # Standard top/bottom
|
||||
```
|
||||
|
||||
### Custom Fonts
|
||||
|
||||
View available: https://api.memegen.link/fonts/
|
||||
|
||||
```
|
||||
?font=impact (default)
|
||||
```
|
||||
|
||||
### Custom Images
|
||||
|
||||
Use any image as background:
|
||||
|
||||
```
|
||||
https://api.memegen.link/images/custom/hello/world.png?style=https://example.com/image.jpg
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><strong>Deep Dive: Contextual Memes</strong></summary>
|
||||
|
||||
### Code Reviews
|
||||
|
||||
```
|
||||
Template: fry
|
||||
https://api.memegen.link/images/fry/not_sure_if_feature/or_bug.png
|
||||
```
|
||||
|
||||
### Deployments
|
||||
|
||||
```
|
||||
Template: interesting
|
||||
https://api.memegen.link/images/interesting/i_dont_always_test/but_when_i_do_i_do_it_in_production.png
|
||||
```
|
||||
|
||||
### Documentation
|
||||
|
||||
```
|
||||
Template: yodawg
|
||||
https://api.memegen.link/images/yodawg/yo_dawg_i_heard_you_like_docs/so_i_documented_the_documentation.png
|
||||
```
|
||||
|
||||
### Performance Issues
|
||||
|
||||
```
|
||||
Template: fine
|
||||
https://api.memegen.link/images/fine/memory_usage_at_99~/this_is_fine.png
|
||||
```
|
||||
|
||||
### Successful Deploy
|
||||
|
||||
```
|
||||
Template: success
|
||||
https://api.memegen.link/images/success/deployed_to_production/zero_downtime.png
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><strong>Deep Dive: Workflow Integration</strong></summary>
|
||||
|
||||
### Generating Memes in Response
|
||||
|
||||
```markdown
|
||||
Here's a relevant meme:
|
||||
|
||||

|
||||
```
|
||||
|
||||
### Dynamic Generation (Python)
|
||||
|
||||
```python
|
||||
def generate_status_meme(status: str, message: str):
|
||||
template_map = {
|
||||
"success": "success",
|
||||
"failure": "fine",
|
||||
"review": "fry",
|
||||
"deploy": "interesting"
|
||||
}
|
||||
|
||||
template = template_map.get(status, "buzz")
|
||||
words = message.split()
|
||||
top = "_".join(words[0:3])
|
||||
bottom = "_".join(words[3:6])
|
||||
|
||||
return f"https://api.memegen.link/images/{template}/{top}/{bottom}.png"
|
||||
```
|
||||
|
||||
### Using the Helper Script
|
||||
|
||||
```python
|
||||
from meme_generator import MemeGenerator
|
||||
|
||||
meme = MemeGenerator()
|
||||
url = meme.generate("buzz", "features", "features everywhere")
|
||||
print(url)
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><strong>Deep Dive: API Reference</strong></summary>
|
||||
|
||||
### Endpoints
|
||||
|
||||
| Endpoint | Purpose |
|
||||
|----------|---------|
|
||||
| `/templates/` | List all templates |
|
||||
| `/templates/{id}` | Template details |
|
||||
| `/fonts/` | Available fonts |
|
||||
| `/images/{template}/{top}/{bottom}.{ext}` | Generate meme |
|
||||
|
||||
### API Characteristics
|
||||
|
||||
- Free and open-source
|
||||
- No API key required
|
||||
- No rate limiting (normal use)
|
||||
- Stateless (all info in URL)
|
||||
- Images generated on-demand
|
||||
|
||||
### Error Handling
|
||||
|
||||
1. Check template at https://api.memegen.link/templates/
|
||||
2. Verify text formatting (underscores for spaces)
|
||||
3. Check special character encoding
|
||||
4. Ensure valid extension
|
||||
5. Test URL in browser
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
## References
|
||||
|
||||
| Document | Content |
|
||||
|----------|---------|
|
||||
| [markdown-memes-guide.md](references/markdown-memes-guide.md) | 15+ textual meme formats (greentext, copypasta, ASCII, etc.) |
|
||||
| [examples.md](references/examples.md) | Practical usage examples |
|
||||
|
||||
### Scripts
|
||||
|
||||
| Script | Purpose |
|
||||
|--------|---------|
|
||||
| [meme_generator.py](scripts/meme_generator.py) | Python helper for meme generation |
|
||||
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
Generate contextual memes to:
|
||||
- Add humor to conversations
|
||||
- Create social media visuals
|
||||
- Make code reviews engaging
|
||||
- Celebrate successes
|
||||
|
||||
**Golden rule:** Keep text concise, match template to context.
|
||||
Reference in New Issue
Block a user