---
name: halo-blog-writer
description: |
  Halo 博客写作和管理助手。当用户需要：
  (1) 发布博客文章
  (2) 管理博客内容
  (3) 更新/修改已发布的文章
  (4) 导出/导入博客内容
  (5) 查看博客状态
  (6) 使用自然语言操作 Halo 博客时触发此技能
---

# Halo 博客写作助手

本技能帮助 AI Agent 通过 Halo CLI 管理用户的 Halo 博客（http://192.168.5.8:8090）。

## 快速开始

### 已配置的环境

用户已通过 npm 全局安装 Halo CLI：
- 版本：1.3.0
- Node.js：v22.14.0
- 系统：Windows (PowerShell)

### CLI 配置

当前激活的配置（profile）是 `local`，连接地址：
```
http://192.168.5.8:8090
```

认证方式：Bearer Token（已存储在系统 keyring 中）

### 基本命令

```powershell
# 列出文章（分页显示）
halo post list --page 1 --size 20

# 查看单个文章详情
halo post get <name-or-id>

# 创建文章
halo post create --title "标题" --content "# 内容" --publish true

# 更新文章
halo post update <name-or-id> --title "新标题" --content "新内容"

# 导出文章为 Markdown
halo post export-markdown <name-or-id> --output ./post.md

# 导入 Markdown 文件创建文章
halo post import-markdown --file ./post.md
```

## 写作工作流

### 场景 1：发布新文章

当用户提供文章内容时：
1. 接收文章内容（可能是文件路径或直接文本）
2. 提取标题和正文
3. 判断是否立即发布（publish）还是仅创建草稿
4. 执行 `halo post create` 命令
5. 确认创建成功

```powershell
# 发布新文章
halo post create --title "文章标题" --content "# 文章内容..." --publish true

# 仅创建草稿
halo post create --title "文章标题" --content "# 文章内容..."
```

### 场景 2：从 Markdown 文件发布

当用户提供 `.md` 文件时：
1. 读取文件内容
2. 从文件名或第一行提取标题
3. 执行导入命令

```powershell
halo post import-markdown --file d:\path\to\article.md
```

### 场景 3：更新已发布的文章

当用户要求修改某篇文章时：
1. 先用 `halo post list` 找到文章
2. 获取文章 ID 或 name
3. 执行更新命令

```powershell
# 先查看文章列表
halo post list --page 1 --size 20

# 获取文章详情
halo post get <article-id>

# 更新文章
halo post update <article-id> --title "新标题" --content "新内容"
```

### 场景 4：批量操作

处理多篇文章：
1. 获取文章列表
2. 逐个处理
3. 报告完成状态

```powershell
# 获取所有文章（分页）
halo post list --page 1 --size 100

# 或者导出为 JSON 格式便于处理
halo post list --page 1 --size 100 --json
```

## 文件路径约定

用户的博客文章通常保存在：
```
d:\Code\OpenClaw\文件\博客\
```

常见文件格式：
- `.md` - Markdown 文件
- `.txt` - 纯文本文件

## 注意事项

### 内容格式

- Halo 支持 Markdown 和 HTML 格式
- 默认使用 Markdown（`--raw-type markdown`）
- 也支持 `--raw-type html`

### 发布状态

- `published` - 已发布
- `draft` - 草稿
- 可以在创建时指定 `--publish true` 立即发布

### 文章标识

文章可以用以下方式标识：
- **Name/Slug**：文章的唯一标识符（如 `019dbabc-86b9-74a0-a926-c25529309007`）
- **ID**：文章内部 ID

### 错误处理

如果命令失败：
1. 检查网络连接
2. 确认 CLI 配置正确（`halo auth current`）
3. 查看错误信息并重试

## 其他管理功能

```powershell
# 单页管理
halo single-page list
halo single-page create --title "标题" --content "内容"

# 插件管理
halo plugin list

# 主题管理
halo theme list

# 备份
halo backup list
halo backup create

# 评论管理
halo comment list
halo comment reply <comment-id> --content "回复内容"
```

## 安全提醒

- Bearer Token 已安全存储在系统 keyring 中
- 不要在命令输出中显示敏感信息
- 谨慎执行删除操作（`halo post delete`）

## 常用命令速查

| 操作 | 命令 |
|------|------|
| 查看文章列表 | `halo post list --page 1 --size 20` |
| 查看文章详情 | `halo post get <id>` |
| 创建文章 | `halo post create --title "标题" --content "内容"` |
| 发布文章 | `halo post create --title "标题" --content "内容" --publish true` |
| 更新文章 | `halo post update <id> --title "标题" --content "内容"` |
| 删除文章 | `halo post delete <id> --force` |
| 导出为 Markdown | `halo post export-markdown <id> --output ./post.md` |
| 从文件导入 | `halo post import-markdown --file ./post.md` |

## 博客标签和分类

### 现有标签（共 11 个）

| 显示名称 | Slug | 颜色 |
|---------|------|------|
| 协会动态 | xie-hui-dong-tai | 🟢 #B8E986 |
| 5分钟速览 | 5fen-zhong-su-lan | 🔵 #50E3C2 |
| 技术深潜 | ji-shu-shen-qian | 🔷 #4A90E2 |
| 校园AI | xiao-yuan-ai | 🟣 #9013FE |
| 竞赛指南 | jing-sai-zhi-nan | 🟪 #BD10E0 |
| 项目实战 | xiang-mu-shi-zhan | 🟢 #417505 |
| 零基础入门 | ling-ji-chu-ru-men | 🟢 #7ED321 |
| 开源框架 | kai-yuan-kuang-jia | 🟤 #8B572A |
| 模型轻量化 | mo-xing-qing-liang-hua | 🟡 #F8E71C |
| 隐私计算 | yin-si-ji-suan | 🟠 #F5A623 |
| AI智能体 | aizhi-neng-ti | 🔴 #D0021B |

### 标签使用建议

| 文章类型 | 推荐标签 |
|---------|---------|
| 技术教程 / 开发工具 | 技术深潜 |
| 团队协作 / 开源项目 | 项目实战 |
| AI/LLM/模型相关 | 技术深潜, AI智能体 |
| 编程入门教程 | 技术深潜, 零基础入门 |
| 比赛通知 / 大赛解读 | 竞赛指南 |
| 协会通知 / 动态 | 协会动态 |
| AI 科普 / 入门 | 零基础入门, AI智能体 |

### 常用命令速查

| 操作 | 命令 |
|------|------|
| 查看所有标签 | `halo post tag list` |
| 查看所有分类 | `halo post category list` |
| 为文章添加标签 | `halo post update <id> --tags "标签1,标签2"` |
| 更新文章分类 | `halo post update <id> --category "分类名"` |
| 查看文章标签 | `halo post get <id> --json` |

详细命令参见 `references/command-reference.md`

## 参考文档

- CLI 完整帮助：`halo --help`、`halo post --help`
- 配置信息：`halo auth profile list`
- 高级用法：参见 `references/advanced-usage.md`
- 标签和分类命令：参见 `references/command-reference.md`
