Files
Obsidian/.trae/skills/halo-blog-writer/SKILL.md
T
Serendipity 8ccc32be0b feat(halo): 添加图片上传功能并完善发布流程
- 实现图片上传服务,支持检测并上传本地图片到 Halo
- 优化发布流程,添加详细日志和错误处理
- 更新任务清单和检查列表以反映完成状态
- 添加 Halo 博客写作技能文档
2026-04-26 16:47:41 +08:00

6.2 KiB
Raw Blame History

name, description
name description
halo-blog-writer 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.jsv22.14.0
  • 系统:Windows (PowerShell)

CLI 配置

当前激活的配置(profile)是 local,连接地址:

http://192.168.5.8:8090

认证方式:Bearer Token(已存储在系统 keyring 中)

基本命令

# 列出文章(分页显示)
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. 确认创建成功
# 发布新文章
halo post create --title "文章标题" --content "# 文章内容..." --publish true

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

场景 2:从 Markdown 文件发布

当用户提供 .md 文件时:

  1. 读取文件内容
  2. 从文件名或第一行提取标题
  3. 执行导入命令
halo post import-markdown --file d:\path\to\article.md

场景 3:更新已发布的文章

当用户要求修改某篇文章时:

  1. 先用 halo post list 找到文章
  2. 获取文章 ID 或 name
  3. 执行更新命令
# 先查看文章列表
halo post list --page 1 --size 20

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

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

场景 4:批量操作

处理多篇文章:

  1. 获取文章列表
  2. 逐个处理
  3. 报告完成状态
# 获取所有文章(分页)
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. 查看错误信息并重试

其他管理功能

# 单页管理
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 --helphalo post --help
  • 配置信息:halo auth profile list
  • 高级用法:参见 references/advanced-usage.md
  • 标签和分类命令:参见 references/command-reference.md