--- 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 # 创建文章 halo post create --title "标题" --content "# 内容" --publish true # 更新文章 halo post update --title "新标题" --content "新内容" # 导出文章为 Markdown halo post export-markdown --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 # 更新文章 halo post update --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 --content "回复内容" ``` ## 安全提醒 - Bearer Token 已安全存储在系统 keyring 中 - 不要在命令输出中显示敏感信息 - 谨慎执行删除操作(`halo post delete`) ## 常用命令速查 | 操作 | 命令 | |------|------| | 查看文章列表 | `halo post list --page 1 --size 20` | | 查看文章详情 | `halo post get ` | | 创建文章 | `halo post create --title "标题" --content "内容"` | | 发布文章 | `halo post create --title "标题" --content "内容" --publish true` | | 更新文章 | `halo post update --title "标题" --content "内容"` | | 删除文章 | `halo post delete --force` | | 导出为 Markdown | `halo post export-markdown --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 --tags "标签1,标签2"` | | 更新文章分类 | `halo post update --category "分类名"` | | 查看文章标签 | `halo post get --json` | 详细命令参见 `references/command-reference.md` ## 参考文档 - CLI 完整帮助:`halo --help`、`halo post --help` - 配置信息:`halo auth profile list` - 高级用法:参见 `references/advanced-usage.md` - 标签和分类命令:参见 `references/command-reference.md`