Install
openclaw skills install @thcjp/hugo-blog将Markdown文章。支持自动化配置和灵活的参数设置,适支持多种应用场景,提升生产力效果。博客发布工具工具。支持自动化配置和灵活的参数设置,适用于多种工作场景,提升工作效率和准确性。博客发布工具是一款高效实用的工具。hugo-blog-publisher支持多种配置选项。Use when 需要提升效率、自动化流程、批量处理、工作流优化时使用。不适用于需要人工创意判断的任务。
openclaw skills install @thcjp/hugo-blog核心功能: 本技能提供自动化配置和灵活的参数设置、多种应用场景、多种配置选项、时使用、、工作流优化时使用等能力。
将Markdown文章发布到静态站点生成器博客并推送到代码仓库.
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | 博客发布工具处理的输入数据或指令 |
| options | object | 否 | 附加配置选项,如模式选择、格式偏好等 |
| callback_url | string | 否 | 异步处理完成后的回调通知URL |
| 能力 | 免费版 | 付费版 |
|---|---|---|
| 基础功能 | 支持 | 支持 |
| 博客发布工具章发布到静态站点生成 | 不支持 | 支持 |
| 复杂工作流可视化编排 | 不支持 | 支持 |
| 条件分支与异常重试 | 不支持 | 支持 |
| 定时触发与事件驱动 | 不支持 | 支持 |
| 执行日志与审计追踪 | 不支持 | 支持 |
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent内置LLM提供 |
需要配置对应API Key,详见上文环境配置章节
API Key配置方式:
export API_KEY="${API_KEY:?请设置环境变量}"
配置后需重启会话或开启新终端生效。API Key应妥善保管,避免泄露到版本控制系统.
从用户提供的文章内容中自动提取:
["ai"])["tech"])content/posts/{slug}.mddate 字段中指定---
title: "文章标题"
date: 2026-07-21
draft: false
tags: ["tag1", "tag2"]
categories: ["tech"]
description: "文章描述"
---
规则:
categories:使用已有分类的小写英文slug,如 tech, investment, ai, phototags:使用小写英文slug,不用中文slug:文件名使用小写英文,不用中文文章frontmatter用英文slug,页面展示用中文,通过 _index.md 实现:
tags: ["ssg", "server-side-rendering"]
categories: ["tech"]
content/tags/<slug>/_index.md
content/categories/<slug>/_index.md
---
title: "显示的中文名"
---
| Slug | 中文显示 |
|---|---|
| tech | 技术 |
| photo | 摄影 |
| ai | AI |
| investment | 投资 |
| science | 科学 |
| art | 艺术 |
| life | 生活 |
| reading-notes | 读书笔记 |
| Slug(续) | 中文显示 |
|---|---|
| ai | AI |
| llm | 大语言模型 |
| agent | 智能体 |
| programming | 编程 |
| kubernetes | Kubernetes |
| rag | RAG |
在领先段或导言后添加 <!--more-->,让列表页显示摘要。位置通常在领先段结束后的空行或导言和正文之间.
从博客目录自动检测git状态并推送:
cd {博客路径}
git add content/posts/{文件名}
git commit -m "新增:{文章标题}"
git push
git推送 选项根据用户提供的博客信息返回相应链接,不硬编码域名.
详细的输入输出格式请参考下方章节说明。
hugo-blog-publisher的相关能力自动尝试从以下位置读取博客配置:
MEMORY.md / USER.md)中的博客域名、路径等.git 配置如果未找到配置,才询问用户.
用户输入文章内容后,系统自动完成:
# 1. 生成文件
content/posts/hugo-blog-deployment.md
# ...
# 2. 文件内容
---
title: "静态站点部署指南"
date: 2026-07-21
draft: false
tags: ["ssg", "deployment"]
categories: ["tech"]
description: "如何将静态站点部署到生产环境"
---
# ...
本文介绍静态站点的部署流程.
# ...
<!--more-->
# ...
## 准备工作
# ...
首先确保本地环境已安装所有依赖...
# 3. 如需新标签,创建映射
content/tags/deployment/_index.md
# 内容: ---\ntitle: "部署"\n
---
# ...
# 4. Git推送
cd $HOME/my-blog
git add content/posts/hugo-blog-deployment.md
git commit -m "新增:静态站点部署指南"
git push
输出:
文章已发布成功!
部署链接: https://example.com/posts/hugo-blog-deployment/
当文章使用了新标签 docker,需要创建映射文件:
# 创建 content/tags/docker/_index.md
---
title: "Docker"
---
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 博客路径未找到 | 配置文件缺失 | 检查 MEMORY.md 或 .git 配置,询问用户提供博客路径 |
| Git推送认证失败 | SSH key或credentials未配置 | 确保用户已配置SSH key或git credentials |
| 文件名slug冲突 | 同名文章已存在 | 检查 content/posts/ 目录,添加日期前缀或修改slug |
| front matter格式错误 | YAML语法问题 | 确保YAML缩进正确,字符串用引号包裹 |
| 新标签缺少映射文件 | _index.md 未创建 | 为每个新标签/分类创建 content/tags/<slug>/_index.md |
<!--more--> 位置错误 | 截断标记缺失或位置不当 | 在领先段结束后的空行添加截断标记 |
| 中文slug问题 | 文件名包含中文字符 | 使用拼音或英文关键词作为slug,保持小写连字符格式 |
A: frontmatter中使用小写英文slug(如 tech, ai),页面展示通过 _index.md 映射为中文。不用i18n配置,全部用 _index.md 映射.
A: 需要创建 content/tags/<slug>/_index.md 文件,内容为 ---\ntitle: "中文显示名"\n---。例如标签 docker 创建文件后title设为 "Docker".
<!--more--> 应该放在哪里?A: 通常放在领先段结束后的空行,或导言和正文之间。列表页只显示截断标记之前的内容作为摘要.
A: 建议使用 "新增:" 前缀,如 git commit -m "新增:文章标题".
A: 默认使用当前目录的 blog 子目录。也可从用户记忆文件(MEMORY.md / USER.md)或 .git 配置中自动检测.
A: AI、RAG、NLP、Kubernetes、Go、PHP、SQL、SSG、Server-Side Rendering等技术名称直接用英文slug,不需要中文映射.
A: 文件名不包含日期,日期在front matter的 date 字段中指定。文件名格式为 content/posts/{slug}.md.
_index.md 文件方式,不用i18n| 错误现象 | 可能原因 | 诊断步骤 | 解决方案 |
|---|---|---|---|
| 文章发布失败 | Git仓库配置错误 | 检查Git仓库配置,确保SSH key正确且权限设置正确 | 重新配置Git仓库,确保SSH key正确,并检查权限设置 |
| 文章内容未正确渲染 | Markdown格式错误 | 检查文章内容中的Markdown格式,确保格式正确 | 修正Markdown格式,重新发布文章 |
| 文章标题或标签未正确提取 | 标题或标签格式不正确 | 检查文章标题或标签的格式,确保符合要求 | 修正标题或标签格式,重新发布文章 |
| 部署链接无法访问 | 部署链接配置错误 | 检查部署链接配置,确保域名和路径正确 | 修正部署链接配置,重新发布文章 |
| 文件名冲突 | 文件名已存在 | 检查文件名是否已存在,确保文件名唯一 | 修改文件名,重新发布文章 |
| 风险项 | 等级 | 防护措施 | 验证方法 |
|---|---|---|---|
| API Key泄露 | 高 | 使用环境变量存储API Key,避免在代码中硬编码 | 定期检查代码库,确保API Key未泄露 |
| Git仓库未加密 | 中 | 使用SSH key加密Git仓库 | 检查SSH key设置,确保Git仓库加密 |
| 文件名注入攻击 | 中 | 确保文件名不包含用户输入,避免注入攻击 | 对用户输入进行过滤和验证 |
| 不正确的权限设置 | 中 | 确保博客目录和文件权限正确设置 | 定期检查权限设置,确保安全 |
| 数据库注入攻击 | 高 | 使用参数化查询,避免直接拼接SQL语句 | 对所有数据库操作使用参数化查询 |
| 提升效率 | 量化分析 |
|---|---|
| 自动化内容分析 | 将手动提取标题、标签、分类的时间从30分钟缩短到5分钟 |
| 自动生成Front Matter | 将手动编写Front Matter的时间从15分钟缩短到2分钟 |
| 自动Git推送 | 将手动Git推送的时间从10分钟缩短到1分钟 |
| 自动生成部署链接 | 将手动生成部署链接的时间从5分钟缩短到1分钟 |
| 自动化工作流 | 将整个发布流程的时间从1小时缩短到10分钟 |
| 差异化对比 | Hugo Blog Publisher | 其他静态站点生成器 |
|---|---|---|
| 自动化程度 | 高度自动化,简化发布流程 | 部分自动化,需要手动操作 |
| 支持的博客平台 | 支持Hugo等静态站点生成器 | 支持多种静态站点生成器,但自动化程度较低 |
| 灵活性 | 提供丰富的配置选项,支持定制化需求 | 配置选项有限,难以满足复杂需求 |
| 易用性 | 界面友好,易于上手 | 部分功能复杂,学习曲线较陡峭 |
| 社区支持 | 拥有活跃的社区,问题解决速度快 | 社区支持有限,问题解决速度慢 |
A1: 将Markdown文章。支持文本指令和结构化参数输入,具体格式参考使用流程章节。
A2: 是的,部分功能需要配置对应平台的API Key。请在依赖说明章节查看具体要求,并通过环境变量安全配置。
A3: 检查命令参数是否正确,确认运行环境支持exec能力。如遇权限问题,请参照错误处理章节排查。
| 操作场景 | 手动耗时 | 自动化耗时 | 效率提升 |
|---|---|---|---|
| 文件解析与提取 | 5-10分钟/个 | <5秒/个 | 60-120x |
| 批量文件处理(100个) | 8-16小时 | <5分钟 | 96-192x |
| API调用与响应解析 | 2-3分钟/次 | <1秒/次 | 120-180x |
| 多接口数据聚合 | 15-30分钟 | <10秒 | 90-180x |
| 命令执行与结果收集 | 3-5分钟/次 | <2秒/次 | 90-150x |
| 重复任务批量执行 | 因任务而异 | 线性缩减 | 5-50x |
| 错误排查与修复 | 10-30分钟 | <30秒 | 20-60x |
| 对比维度 | 博客发布工具 | 传统手动方式 | 通用脚本工具 |
|---|---|---|---|
| 自动化程度 | 全流程自动 | 完全手动 | 部分自动 |
| 错误处理 | 内置错误恢复 | 依赖人工经验 | 基本try-catch |
| 可复用性 | 参数化配置 | 一次性脚本 | 模板化 |
| 安全合规 | 内置安全检查 | 无安全保障 | 无安全保障 |
| 适用场景 | 将Markdown文章 | 通用场景 | 通用场景 |
针对博客发布工具使用中可能遇到的常见问题,提供以下排查方案:
| 错误类型 | 原因分析 | 解决方案 |
|---|---|---|
| API认证失败(401) | API密钥错误或过期 | 检查密钥配置,重新生成token |
| 接口限流(429) | 请求频率超出限制 | 降低调用频率,启用重试退避策略 |
| 响应超时(504) | 网络延迟或服务端负载过高 | 增加超时阈值,检查网络连接 |
| 文件不存在 | 路径错误或文件未创建 | 检查路径拼写,确认文件已生成 |
| 文件格式不支持 | 扩展名不在支持列表中 | 转换为支持的格式后重试 |
| 权限不足 | 当前用户无读写权限 | 检查文件权限,以管理员身份运行 |
| 命令执行失败 | 参数错误或环境依赖缺失 | 检查命令语法,确认依赖已安装 |
| 进程超时 | 命令执行时间过长 | 增加超时设置,优化命令参数 |
| 网络连接失败 | DNS解析失败或防火墙拦截 | 检查网络配置,确认代理设置 |