Hugo 常用命令
命令 | 说明 | 示例用法 |
---|---|---|
hugo | 生成静态站点,输出到public/ 目录 | hugo --minify |
hugo server | 启动开发服务器,默认端口 1313,实时预览站点 | hugo server --bind 0.0.0.0 |
hugo new | 创建新内容文件(如文章或页面) | hugo new post/my-post.md |
hugo version | 显示当前 Hugo 版本信息 | hugo version |
hugo mod | 管理 Hugo Modules(模块化主题或依赖) | hugo mod init github.com/user/repo |
hugo config | 显示当前配置信息 | hugo config |
hugo env | 显示 Hugo 环境信息(如版本、Go 版本) | hugo env |
hugo list | 列出内容文件(如草稿、未来文章) | hugo list drafts |
hugo check | 检查内容文件的完整性 | hugo check |
hugo --help | 显示 Hugo 命令帮助信息 | hugo --help |
常用选项:
--watch
:监控文件变化(hugo server
默认启用)。--ignoreCache
:忽略缓存,强制重新构建。--minify
:压缩输出文件(如 HTML、CSS、JS)。--debug
:显示调试信息。
其他重要内容
配置项(hugo.yaml
中常用)
配置项 | 说明 | 示例值 |
---|---|---|
baseURL | 站点根 URL,用于生成绝对链接 | https://www.test.com/ |
languageCode | 默认语言代码 | en-us |
theme | 使用的主题名称 | hugo-theme-stack |
title | 网站标题 | My Blog |
permalinks | 定义内容类型的 URL 结构 | post: /p/:slug/ |
outputs | 指定页面类型的输出格式 | home: ["HTML", "RSS", "JSON"] |
params | 自定义参数,供主题使用 | sidebar.avatar: /img/avatar.png |
menu | 自定义导航菜单 | main: [{name: "Home", url: "/"}] |
Front Matter(内容文件头部)
字段 | 说明 | 示例值 |
---|---|---|
title | 文章或页面标题 | My First Post |
date | 发布日期 | 2025-03-28 |
draft | 是否为草稿(true 不发布) | false |
tags | 标签列表 | ["tech", "blog"] |
categories | 分类列表 | ["Programming"] |
slug | URL 的自定义部分 | my-first-post |
Hugo Pipes(资源处理)
功能 | 说明 | 示例用法 |
---|---|---|
resources.Get | 获取资源文件(如图片、SCSS) | {{ resources.Get "images/pic.jpg" }} |
Resize | 调整图片大小 | {{ $img.Resize "300x" }} |
ToCSS | 将 SCSS 编译为 CSS | `{{ $css := resources.Get “scss/main.scss” |
主题相关
- 安装主题:
1git submodule add https://github.com/CaiJimmy/hugo-theme-stack themes/hugo-theme-stack
- 启用主题:
在
hugo.yaml
中设置theme: hugo-theme-stack
。
常用 Hugo 主题表格
主题名称 | 链接 | 说明 |
---|---|---|
PaperMod | github.com/adityatelange/hugo-PaperMod | 简洁、响应式的博客主题,支持深色模式,易于阅读,优化用户体验,适合个人博客。 |
Stack | github.com/CaiJimmy/hugo-theme-stack | 多功能主题,支持博客、作品集,带有侧边栏和评论系统(如 Waline),适合技术博主。 |
Docsy | github.com/google/docsy | 专为技术文档设计,支持多语言,集成了搜索和导航,适合开源项目文档。 |
Anatole | github.com/lxndrblz/anatole | 极简双列主题,适合博客和个人作品集,设计优雅,响应式布局。 |
Book | github.com/alex-shpak/hugo-book | 简洁的文档主题,模仿书籍风格,适合教程或知识库网站。 |
Hello Friend NG | github.com/rhazdon/hugo-theme-hello-friend-ng | 简约博客主题,支持深色/浅色模式切换,注重排版和阅读体验。 |
Mainroad | github.com/vimux/mainroad | 杂志风格主题,响应式设计,适合内容丰富的博客或新闻站点。 |
Coder | github.com/luizdepra/hugo-coder | 极简单页主题,适合开发者展示个人简介和项目,加载速度快。 |
Beautiful Hugo | github.com/halogenica/beautifulhugo | 多功能博客主题,支持 Disqus 评论、社交分享,适合个人和专业博客。 |
Reveal-Hugo | github.com/dzello/reveal-hugo | 基于 Reveal.js 的演示主题,适合创建 HTML 幻灯片展示。 |
Hugo 根目录和主题目录下的文件夹说明表格
Hugo 根目录文件夹
文件夹/文件 | 说明 | 注意事项 |
---|---|---|
archetypes/ | 内容模板目录,用于定义新文件(如hugo new )的默认 front matter | 默认包含default.md ,可自定义其他模板 |
assets/ | 资源文件目录,存放 SCSS、图片等,通过 Hugo Pipes 处理(如编译 SCSS 为 CSS) | 需在hugo.yaml 中配置支持(如 assets.dir ) |
content/ | 内容文件目录,存放 Markdown 文件,按类型组织(如content/post/ 表示文章) | 文件名决定 URL(如my-post.md -> /post/my-post/ ) |
data/ | 数据文件目录,存放 YAML、JSON 或 TOML 文件,用于动态数据(如导航菜单数据) | 在模板中通过.Site.Data 访问 |
layouts/ | 自定义模板目录,覆盖主题的默认模板 | 优先级高于themes/ 中的同名模板 |
public/ | 生成的静态站点输出目录,构建后内容在此 | 每次运行hugo 会清空并重新生成 |
static/ | 静态文件目录,存放图片、CSS、JS 等,直接复制到站点根目录 | 不经 Hugo 处理,直接输出到public/ |
themes/ | 主题目录,存放下载或自定义的主题(如hugo-theme-stack ) | 通过theme 配置启用 |
hugo.yaml | 主配置文件,定义站点设置(如语言、主题、URL 等) | 支持 YAML、TOML、JSON 格式 |
主题目录文件夹(themes/<theme-name>/
)
文件夹/文件 | 说明 | 注意事项 |
---|---|---|
archetypes/ | 主题提供的默认内容模板,创建新文件时使用 | 可被根目录的archetypes/ 覆盖 |
assets/ | 主题的资源文件目录,存放 SCSS、图片等,通过 Hugo Pipes 处理 | 通常包含主题的样式文件(如main.scss ) |
layouts/ | 主题的模板目录,定义页面渲染逻辑(如single.html 、list.html ) | 可被根目录的layouts/ 覆盖 |
static/ | 主题的静态文件目录,存放 CSS、JS、图片等,直接复制到站点根目录 | 输出到public/ ,如 static/img/ -> /img/ |
data/ | 主题的数据文件目录,提供主题特定的数据(如菜单配置) | 在模板中通过.Site.Data 访问 |
i18n/ | 国际化文件目录,存放多语言翻译文件(如en.yaml 、zh-cn.yaml ) | 用于支持多语言站点 |
README.md | 主题说明文档,提供安装和使用指南 | 建议仔细阅读以了解配置要求 |
theme.yaml | 主题元数据文件,定义主题名称、作者、最低版本等 | 用于 Hugo 主题管理系统识别主题 |
补充说明
- 如何选择主题:
- 根据需求选择:博客用 PaperMod 或 Stack,文档用 Docsy,简历用 Coder。
- 检查活跃度:查看 GitHub 上的最后更新时间和问题(Issues)响应情况。
- 文件夹使用建议:
- 将自定义图片放入
static/
以避免 Hugo 处理(如不需要压缩)。 - 在
assets/
中存放 SCSS 文件以利用 Hugo Pipes 的编译功能。
- 将自定义图片放入
- 调试技巧:
- 运行
hugo server --debug
查看文件加载和渲染日志。 - 使用
hugo --printPathWarnings
检查路径问题。
- 运行