8ccc32be0b
- 实现图片上传服务,支持检测并上传本地图片到 Halo - 优化发布流程,添加详细日志和错误处理 - 更新任务清单和检查列表以反映完成状态 - 添加 Halo 博客写作技能文档
247 lines
6.2 KiB
Markdown
247 lines
6.2 KiB
Markdown
---
|
||
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`
|