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

10 KiB
Raw Permalink Blame History

Halo CLI 命令参考

完整命令列表和详细用法。

认证相关(auth

# 查看当前认证状态
halo auth current

# 列出所有配置
halo auth profile list

# 登录(Bearer Token
halo auth login --profile local --url http://192.168.5.8:8090 --auth-type bearer --token <token>

# 登录(Basic Auth
halo auth login --profile local --url http://192.168.5.8:8090 --auth-type basic --username admin --password <password>

# 移除配置
halo auth remove local

# 切换默认配置
halo auth default production

文章管理(post

列出文章

# 基本列表
halo post list

# 分页
halo post list --page 1 --size 20

# JSON 格式(便于脚本处理)
halo post list --page 1 --size 20 --json

# 按状态筛选
halo post list --status published
halo post list --status draft

获取文章

# 查看文章详情
halo post get 019dbabc-86b9-74a0-a926-c25529309007

# JSON 格式
halo post get 019dbabc-86b9-74a0-a926-c25529309007 --json

创建文章

# 基本创建(草稿)
halo post create --title "我的第一篇文章" --content "# 标题\n\n内容..."

# 创建并发布
halo post create --title "我的第一篇文章" --content "# 标题" --publish true

# 使用 HTML 格式
halo post create --title "HTML 文章" --content "<h1>标题</h1><p>内容</p>" --raw-type html

# 指定分类
halo post create --title "文章" --content "内容" --category "技术"

# 指定标签
halo post create --title "文章" --content "内容" --tags "Python,教程"

更新文章

# 更新标题
halo post update 019dbabc-86b9-74a0-a926-c25529309007 --title "新标题"

# 更新内容
halo post update 019dbabc-86b9-74a0-a926-c25529309007 --content "# 新内容"

# 同时更新标题和内容
halo post update 019dbabc-86b9-74a0-a926-c25529309007 --title "新标题" --content "新内容"

# 更新标签
halo post update 019dbabc-86b9-74a0-a926-c25529309007 --tags "新标签1,新标签2"

# 发布草稿
halo post update 019dbabc-86b9-74a0-a926-c25529309007 --publish true

# 取消发布
halo post update 019dbabc-86b9-74a0-a926-c25529309007 --unpublish

删除文章

# 删除文章(会提示确认)
halo post delete 019dbabc-86b9-74a0-a926-c25529309007

# 强制删除(跳过确认)
halo post delete 019dbabc-86b9-74a0-a926-c25529309007 --force

导出文章

# 导出为 JSON
halo post export-json 019dbabc-86b9-74a0-a926-c25529309007

# 导出到指定文件
halo post export-json 019dbabc-86b9-74a0-a926-c25529309007 --output ./backup/post.json

# 导出为 Markdown
halo post export-markdown 019dbabc-86b9-74a0-a926-c25529309007

# 导出到指定文件
halo post export-markdown 019dbabc-86b9-74a0-a926-c25529309007 --output ./backup/post.md

导入文章

# 从 JSON 文件导入
halo post import-json --file ./backup/post.json

# 从 JSON 字符串导入
halo post import-json --raw '{"post": {...}, "content": "..."}'

# 从 Markdown 文件导入
halo post import-markdown --file ./backup/post.md

# 导入并发布
halo post import-markdown --file ./post.md --publish true

文章标签管理

# 列出所有标签
halo post tag list

# 创建标签
halo post tag create --name "Python" --slug "python" --color "#3776AB"

# 更新标签名称
halo post tag update python --name "Python编程"

# 更新标签颜色
halo post tag update python --color "#3776AB"

# 删除标签
halo post tag delete python

# 查看标签下的文章数量
halo post tag list --verbose

文章分类管理

# 列出所有分类
halo post category list

# 创建分类
halo post category create --name "技术" --slug "tech" --priority 10

# 更新分类
halo post category update tech --name "技术分享" --priority 5

# 删除分类
halo post category delete tech

# 设置分类优先级(数字越大排序越靠前)
halo post category update tech --priority 10

为文章设置标签和分类

# 创建文章时设置标签
halo post create --title "标题" --content "内容" --tags "Python,教程"

# 创建文章时设置分类
halo post create --title "标题" --content "内容" --category "技术"

# 同时设置标签和分类
halo post create --title "标题" --content "内容" --tags "AI,教程" --category "技术"

# 更新文章的标签
halo post update <id> --tags "新标签1,新标签2"

# 更新文章的分类
halo post update <id> --category "技术分享"

# 清除文章的标签
halo post update <id> --tags ""

# 清除文章的分类
halo post update <id> --category ""

查询文章标签和分类

# 查看某篇文章的标签(JSON 格式)
halo post get <id> --json | Select-String -Pattern "tags"

# 列出所有带有特定标签的文章
halo post list --page 1 --size 100 --json | ConvertFrom-Json | Where-Object {
    $_.spec.tags -contains "AI智能体"
}

# 列出所有带有特定分类的文章
halo post list --page 1 --size 100 --json | ConvertFrom-Json | Where-Object {
    $_.spec.categories -contains "技术深潜"
}

批量修改标签

# 为所有无标签的文章添加标签
$posts = halo post list --page 1 --size 100 --json | ConvertFrom-Json
foreach ($post in $posts.items) {
    if ($post.spec.tags.Count -eq 0) {
        halo post update $post.name --tags "技术深潜"
        Write-Host "已为 '$($post.spec.title)' 添加标签"
    }
}

# 将所有文章从"旧标签"迁移到"新标签"
$posts = halo post list --page 1 --size 100 --json | ConvertFrom-Json
foreach ($post in $posts.items) {
    if ($post.spec.tags -contains "旧标签") {
        $newTags = $post.spec.tags -replace "旧标签", "新标签"
        halo post update $post.name --tags ($newTags -join ",")
    }
}

博客现有标签参考

显示名称 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

博客现有分类参考

显示名称 Slug
行业望远镜 xing-ye-wang-yuan-jing
协会进行时 xie-hui-jin-xing-shi
校园AI日记 xiao-yuan-airi-ji
竞赛能量站 jing-sai-neng-liang-zhan
成长实验室 cheng-chang-shi-yan-shi
智能体前沿 zhi-neng-ti-qian-yan
默认分类 default

单页管理(single-page

# 列出单页
halo single-page list

# 查看单页
halo single-page get <name>

# 创建单页
halo single-page create --title "关于我们" --content "公司介绍..."

# 更新单页
halo single-page update about --title "关于我们" --content "新内容"

# 删除单页
halo single-page delete about --force

# 导出/导入
halo single-page export-markdown <name> --output ./page.md
halo single-page import-markdown --file ./page.md

搜索内容(search

# 搜索公开文章
halo search "Python 教程"

# 搜索并限制结果
halo search "教程" --limit 10

# 搜索并显示详细信息
halo search "教程" --json

插件管理(plugin

# 列出插件
halo plugin list

# 获取插件详情
halo plugin get <plugin-name>

# 升级插件
halo plugin upgrade <plugin-name>

# 升级所有插件
halo plugin upgrade --all

# 启用/禁用插件
halo plugin enable <plugin-name>
halo plugin disable <plugin-name>

主题管理(theme

# 列出主题
halo theme list

# 获取主题详情
halo theme get <theme-name>

# 升级主题
halo theme upgrade <theme-name>

# 切换主题
halo theme active <theme-name>

附件管理(attachment

# 列出附件
halo attachment list

# 上传附件
halo attachment upload --file ./image.png

# 删除附件
halo attachment delete <attachment-id>

备份管理(backup

# 列出备份
halo backup list

# 创建备份
halo backup create

# 下载备份
halo backup download <backup-id> --output ./backup.zip

# 删除备份
halo backup delete <backup-id>

动态管理(moment

# 列出动态
halo moment list

# 创建动态
halo moment create --content "今天写了两篇博客!"

# 删除动态
halo moment delete <moment-id>

评论管理(comment

# 列出评论
halo comment list

# 列出未审核评论
halo comment list --status pending

# 回复评论
halo comment reply <comment-id> --content "感谢您的评论!"

# 审核评论
halo comment approve <comment-id>
halo comment reject <comment-id>

# 删除评论
halo comment delete <comment-id>

通知管理(notification

# 列出通知
halo notification list

# 标记已读
halo notification mark-read <notification-id>

# 全部标记已读
halo notification mark-all-read

# 删除通知
halo notification delete <notification-id>

Shell 补全

# bash
eval "$(halo completion bash)"

# zsh
eval "$(halo completion zsh)"

# PowerShell(自动添加到配置文件)
halo completion powershell >> $PROFILE

输出格式

普通输出

# 表格格式(默认)
halo post list

# JSON 格式
halo post list --json

# YAML 格式
halo post list --yaml

颜色输出

# 彩色输出(默认)
halo post list --color

# 禁用颜色
halo post list --no-color

超时和重试

# 设置超时(秒)
halo post list --timeout 60

# 重试次数
halo post list --retry 3

调试

# 显示调试信息
halo --debug post list

# 显示完整错误
halo post create --title "Test" --content "Content" --verbose

# 查看版本
halo --version

# 查看帮助
halo --help
halo post --help