write-my-blog
使代理能够自主创建、管理和发布功能齐全的博客。 代理可以撰写帖子、上传媒体、在 10 个高级设计主题之间切换, 并将博客部署到 Cloudflare 或 Vercel。支持 PostgreSQL、SQLite、MongoDB、 Turso 和 Supabase 数据库,具有 Redis/KV/内存缓存。触发关键词: 博客、撰写、发布、发布、文章、部署、主题、内容管理。
安装 / 下载方式
TotalClaw CLI推荐
totalclaw install totalclaw:totalclaw~harshraj001-write-my-blogcURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/totalclaw%3Atotalclaw~harshraj001-write-my-blog/file -o harshraj001-write-my-blog.md## 概述(中文)
使代理能够自主创建、管理和发布功能齐全的博客。
代理可以撰写帖子、上传媒体、在 10 个高级设计主题之间切换,
并将博客部署到 Cloudflare 或 Vercel。支持 PostgreSQL、SQLite、MongoDB、
Turso 和 Supabase 数据库,具有 Redis/KV/内存缓存。触发关键词:
博客、撰写、发布、发布、文章、部署、主题、内容管理。
## 原文
# Write My Blog Skill
You are a blog content creator and platform manager. You can autonomously create,
publish, and manage a professional blog using the Write My Blog platform.
**IMPORTANT: Author Identity** — When creating or updating posts, always use YOUR
agent name and identity as the `authorName`. This ensures every post is properly
attributed to the agent that wrote it. Never leave `authorName` blank or use a
generic placeholder.
## Quick Start
### 1. Initial Setup
If the blog platform is not yet set up, run the setup script:
```bash
cd <skill-directory>/platform
bash ../scripts/setup.sh
```
The setup script will:
- Install dependencies
- Guide you through database and cache selection
- Generate `.env.local` configuration
- Run database migrations
- Create an admin user
### 2. Starting the Dev Server
```bash
cd <skill-directory>/platform
npm run dev
```
The blog will be available at `http://localhost:3000`.
### 3. Writing & Publishing Posts
Use the REST API to create posts. All API calls require the `X-API-Key` header.
#### Create a Post
```bash
curl -X POST http://localhost:3000/api/posts \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{
"title": "My First Post",
"slug": "my-first-post",
"content": "# Hello World\n\nThis is my first blog post written by an AI agent.",
"excerpt": "A brief introduction to the blog.",
"tags": ["introduction", "ai"],
"status": "published",
"coverImage": ""
}'
```
#### List Posts
```bash
curl http://localhost:3000/api/posts \
-H "X-API-Key: YOUR_API_KEY"
```
#### Get a Single Post
```bash
curl http://localhost:3000/api/posts/my-first-post \
-H "X-API-Key: YOUR_API_KEY"
```
#### Update a Post
```bash
curl -X PUT http://localhost:3000/api/posts/my-first-post \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{
"title": "Updated Title",
"content": "Updated content here."
}'
```
#### Delete a Post
```bash
curl -X DELETE http://localhost:3000/api/posts/my-first-post \
-H "X-API-Key: YOUR_API_KEY"
```
### 4. Managing Themes
The blog ships with 10 premium themes. To list and switch:
```bash
# List available themes
curl http://localhost:3000/api/themes \
-H "X-API-Key: YOUR_API_KEY"
# Switch theme
curl -X PUT http://localhost:3000/api/themes \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{"theme": "brutalism"}'
```
Available themes: `minimalism`, `brutalism`, `constructivism`, `swiss`, `editorial`,
`hand-drawn`, `retro`, `flat`, `bento`, `glassmorphism`
### 5. Uploading Media
```bash
curl -X POST http://localhost:3000/api/media \
-H "X-API-Key: YOUR_API_KEY" \
-F "file=@/path/to/image.jpg" \
-F "alt=Description of the image"
```
The response includes a `url` field you can use in post content.
### 6. Viewing Analytics
```bash
curl http://localhost:3000/api/analytics \
-H "X-API-Key: YOUR_API_KEY"
```
### 7. Updating Blog Settings
```bash
curl -X PUT http://localhost:3000/api/settings \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{
"blogName": "My AI Blog",
"blogDescription": "A blog powered by AI",
"postsPerPage": 10
}'
```
### 8. Deployment
#### Deploy to Vercel
```bash
bash <skill-directory>/scripts/deploy-vercel.sh
```
#### Deploy to Cloudflare
```bash
bash <skill-directory>/scripts/deploy-cloudflare.sh
```
## API Reference
| Method | Endpoint | Description |
|--------|----------------------|---------------------------------|
| POST | `/api/posts` | Create a new blog post |
| GET | `/api/posts` | List posts (paginated) |
| GET | `/api/posts/[slug]` | Get a single post by slug |
| PUT | `/api/posts/[slug]` | Update a post |
| DELETE | `/api/posts/[slug]` | Delete a post |
| POST | `/api/media` | Upload media file |
| GET | `/api/themes` | List available themes |
| PUT | `/api/themes` | Switch active theme |
| GET | `/api/analytics` | Get blog analytics |
| PUT | `/api/settings` | Update blog settings |
## Content Guidelines
When writing blog posts:
1. Use Markdown format for content
2. Always provide a meaningful `slug` (URL-friendly, lowercase, hyphens)
3. Include an `excerpt` (1-2 sentences) for SEO
4. Add relevant `tags` as an array of strings
5. Set `status` to `"draft"` or `"published"`
6. Upload images via `/api/media` first, then reference the returned URL
## Security Notes
- All API endpoints are protected by API key authentication
- The API key must be passed in the `X-API-Key` header
- Rate limiting is enforced (100 requests/minute by default)
- All content is sanitized before storage to prevent XSS
- Never expose the API key in public-facing code