360 Secure SkillHub
360 安全技能中心

Hugo Blog Publisher

该 Skill 面向 Hugo 博客发文场景:从用户提供的文章内容中提取标题、标签和分类,生成英文 slug 文件名,渲染 front matter 并插入 <!--more--> 截断标记,必要时创建标签/分类的 _index.md 映射文件,最后在博客目录执行 Git 添加、提交与推送,并告知发布结果。配置可先从用户记忆文件或仓库 .git 配置中读取。

tanteng
tanteng
热度 82.07
最近更新 2026-05-17 13:07:25
分类:自动化依赖:读写文件 / 代码执行应用场景:博客写作 / 工作流 / 自动化脚本 / 模板

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add hugo-blog-publisher
Metadata
name
hugo-blog-publisher
version
1.1.0
description
发布文章到 Hugo 博客。用于当用户说"发布博客"、"推送到blog"、"post to blog"、"发布文章"等。自动完成 front matter 渲染、<!--more--> 标记添加、git 推送流程。

Hugo Blog Publisher

将 Markdown 文章发布到 Hugo 博客并推送到 GitHub。

自动读取配置

此 Skill 会自动尝试从以下位置读取博客配置:

  1. 用户记忆文件(MEMORY.md / USER.md)中的博客域名、路径等
  2. 博客目录下的 .git 配置

如果未找到配置,才询问用户。

使用前提

  1. 本地运行:此 Skill 需要在能够访问博客目录的机器上运行
  2. Git 配置:确保机器上有 Git 和 GitHub 访问权限

发布流程

1. 分析内容

从用户提供的文章内容中自动提取:

  • 标题:从 front matter 或内容中提取
  • 标签:根据内容主题自动判断(如 AI → ["ai"])
  • 分类:根据内容类型判断(如技术文章 → ["tech"])

2. 生成文件名

  • 格式: content/posts/{slug}.md
  • slug: 标题转为 URL 友好格式(小写、连字符、去除特殊字符)
  • 注意:文件名不要包含日期,日期在 front matter 的 date 字段中指定

3. 渲染 Front Matter

---
title: "文章标题"
date: YYYY-MM-DD
draft: false
tags: ["tag1", "tag2"]
categories: ["Category"]
description: "文章描述"
---

重要规则:

  • categories:使用已有分类(小写英文 slug),如 tech, investment, ai, photo
  • tags:使用小写英文 slug,不要用中文
  • slug:文件名使用小写英文,不要用中文

4. 标签/分类映射(重要)

文章 frontmatter 用英文 slug,页面展示用中文,通过 Hugo Taxonomy Branch Bundle 实现:

  1. frontmatter 中使用英文 slug:

    tags: ["ssg", "ssr"]
    categories: ["tech"]
    
  2. 如果遇到新标签/分类没有映射文件,需要创建:

    content/tags/<slug>/_index.md
    content/categories/<slug>/_index.md
    
  3. 文件内容极简:

    ---
    title: "显示的中文名"
    ---
    

不用 i18n,全部用 _index.md 映射!

常用分类 (categories)

Slug 中文显示
tech 技术
photo 摄影
ai AI
investment 投资
tech-news 科技资讯
science 科学
art 艺术
life 生活
reading-notes 读书笔记

常用标签 (tags)

Slug 中文显示
ai AI
llm 大语言模型
agent 智能体
programming 编程
thinking 思考
photography 摄影
camera 相机
photo 照片
options 期权
trading 交易
investment 投资
stock 股票
php PHP
go Go
kubernetes Kubernetes
rag RAG

专属名词(保持英文显示)

  • AI、RAG、NLP、Kubernetes、Go、Elasticsearch、PHP、SQL、Kimi、DeepSeek、Claude、GPT、SSG、SSR 等技术名称用英文 slug

5. 添加 截断标记

在第一段或导言后添加 <!--more-->,让列表页显示摘要。

位置通常在:

  • 第一段结束后的空行
  • 导言和正文之间

6. Git 推送

从博客目录自动检测 git 状态并推送:

cd {博客路径}
git add content/posts/{文件名}
git commit -m "新增:{文章标题}"
git push

如果 git push 需要认证,确保用户已配置 SSH key 或 git credentials。

7. 返回部署链接

告知用户文章已发布成功。

注意:不要硬编码域名,应该根据用户提供的博客信息返回相应链接。

使用示例

用户:帮我发布这篇blog(附文章内容)

系统自动完成:
1. 分析内容,提取标题、标签、分类
2. 生成文件名(slug)
3. 添加 front matter 和 <!--more--> 标记
4. 如需新标签/分类,创建 _index.md 映射文件
5. 检测博客目录并推送
6. 返回部署链接

注意事项

  • slug 生成:英文直接用,中文可用拼音或英文关键词
  • commit message:建议用 "新增:" 前缀
  • 如果用户没有提供博客路径,默认用当前目录的 blog 子目录
  • 所有标签/分类映射都用 _index.md 文件方式,不用 i18n/zh.toml!