当前位置: 首页 > news >正文

Hugo 入门

Hugo 简介

Hugo

Hugo 是一个基于 Go 语言的开源静态网站生成器,“极速”是它的代名词,哪怕数千页面也只是弹指一挥间即可生成。

来看看 Hugo 与其它类似的主流生成器的简单对比。

主流静态博客生成器 GitHub star 数对比

前置环境安装

  1. Git
  2. Go
  3. Dart Sass

安装 Hugo

Hugo 有三个版本: 标准版扩展版扩展/部署版。区别如下:

功能 标准版 扩展版 扩展/部署版
基本功能: Markdown 渲染、模板处理、静态页面生成等等。 ✔️ ✔️ ✔️
扩展版处理图片时(缩放、裁剪、旋转、过滤等)统一编码为 WebP 格式;所有版本都可以解码读取 WebP 图像。 - ✔️ ✔️
扩展版可使用内置的 LibSass 转译器将 Sass 转换为 CSS;任何版本都可安装使用 Dart Sass 转译器。 - ✔️ ✔️
扩展/部署版可将站点直接部署到谷歌云存储桶、AWS S3 桶或 Azure 存储容器。 ✔️

安装 Hugo 有三类方式: 预构建的二进制版本包管理器从源代码手动构建

注意事项:

  • 在包管理器的安装方法中,官方文档没有提到可行的 npm 方式,不知是何原因。
  • Sass 团队在 2020 年便遗弃了 LibSass 转向了 Dart Sass。

详细步骤参考Hugo 文档-安装。

基本使用

检查安装

在安装完 Hugo 后,检查是否安装成功:

hugo version

或者检查 hugo 环境变量:

hugo env

创建 Hugo 项目

hugo new site <site-name>

初始化 Hugo 项目为 Git 仓库:

cd <site-name>
git init

添加主题

添加 FixIt 主题:

git submodule add https://github.com/hugo-fixit/FixIt.git themes/FixIt

配置主题:

echo "theme = 'FixIt'" >> hugo.toml
echo "defaultContentLanguage = 'zh-cn'" >> hugo.toml

升级主题:

git submodule update --remote --merge themes/FixIt

更多关于 FixIt 主题的配置请参考 FixIt 官网。

构建网站

hugo [--destination]

默认将构建完成的文件发布到 public 目录。可在 --destination 选项后指定发布目录。

每次构建前,Hugo 不会删除 public 目录,而只是覆盖其中的同名文件,以避免删除你手动添加到其中的资源文件。

启动本地预览服务器

hugo server

此服务器会监听 asset、config、content、数据、布局、翻译和静态文件的变更。一旦这些变化之一产生,就会使用 LiveReload.js 重新构建站点并实时刷新浏览器。LiveReload.js 通过 Web Socket 在服务器和浏览器之间建立连接。

如果你想要浏览器自动重定向到你最后做出修改的页面,可以在 hugo server 命令后添加 --navigateToChanged 。

按 Ctrl + C 停止此服务器。

Hugo 默认不会发布那些 Front Matter 中 [draft 为 true] 、 [date 和 publishDate 未到期]以及 [expiryDate 已到期]的文章。(已发布的不受影响,需手动删除

但是,可以在 hugo 或 hugo server 命令后追加以下命令以发布它们:

hugo --buildDrafts    # or -D
hugo --buildExpired   # or -E
hugo --buildFuture    # or -F

目录结构

刚创建的 Hexo 项目目录结构如下所示:

my-site/
├── archetypes/
│   └── default.md
├── assets/
├── content/
├── data/
├── i18n/
├── layouts/
├── static/
├── themes/
└── hugo.toml         <-- site configuration

每一个子目录都有它的作用,逐个来看:

  • archetypes: 提供模板,便于创建格式统一的文章。
  • assets: 通常放置一些需要经过 asset pipeline 处理的全局资源文件,如 JS、TS、CSS、Sass、图片。
  • content: 通常包含 markdown 这样的标记类型文件以及与它绑定的资源文件。
  • data: 包含数据文件,用于增强内容、配置、本地化和导航。
  • i18n: 包含不同语言的翻译表。
  • layouts: 包含网站的整体模板,用于将内容、数据和资源整合成一个完整网站。
  • static: 与 assets 目录的资源不同,static 目录下的文件会被直接复制到 public 目录。一般用于放置网站图标 favicon.ico、搜索引擎协议文件 robots.txt 以及站点拥有者验证文件。
  • themes: 主题的安装位置。

运行 hugo 或 hugo server 命令构建完网站后会生成一个前面提到过的 public 目录,通常还伴有一个 resources 目录。

  • public: 包含网站的完整静态文件。
  • resouces: 包含 asset pipeline 的缓存输出,通常是 CSS 和 图片。

Front Matter

Post 结构

一篇文章由头部信息 Front Matter正文组成。

Front Matter 是这篇文章的元数据,包含标题、日期、分类、标签等信息,可以是 YAML、TOML 或 JSON 格式。

最常用的 Front Matter 字段有:

  • title: 文章标题。
  • date: 文章创建日期。
  • categories: 分类。
  • tags: 标签。
  • collections: 合集。
  • publishDate: 发布日期。别名 pubDate、published。
  • expiryDate: 过时日期。别名 unpublishDate。
  • lastmod: 上次修改日期。别名 modified。
  • description: 页面描述,长度会影响页面收录/索引。
  • summary: 网站主页显示的文章的摘要。与页面描述不同。摘要会自动生成,但手动添加的优先级更高。如果 description 为空,则会赋值为 summary。
  • keywords: 关键词。
  • slug: 覆盖 URL 路径的最后一个参数。
  • isCJKLanguage: 是否属于中日韩语系,这会影响字数统计、阅读时间计算和文章摘要获取。
  • weight: 页面权重,用于排序页面。
  • aliases: 页面别名,用于实现重定向功能。当你的页面地址改变时,可以使用它设置旧地址,于是访问它就会自动跳转到新地址。可以设置多个旧地址。
  • params: 自定义参数。

可以将这些常用字段中的一些合成一个模板使用,例如为 posts 编辑一个模板 archetypes/posts.md:

title: {{ replace .TranslationBaseName "-" " " | title }}
date: {{ .Date }}
categories:
tags:
collections:
summary:
keywords:
slug: {{ substr .File.UniqueID 0 8 }}
isCJKLanguage: true
weight: 0

接下来就可以新建文章看看效果:

hugo new content "posts/2025/my first post.md"
http://www.sczhlp.com/news/72955/

相关文章:

  • Codeforces 2131F Unjust Binary Life 题解 [ 绿 ] [ 前缀和 ]
  • 做国外的网站有什么不用钱的centos7wordpress
  • 淳化网站制作模仿淘宝网站
  • 邯郸网站建设开发公司长沙装修公司咨询
  • 好点的网站建设公司东阳实惠营销型网站建设厂家
  • 中国建设银行培训网站软件资源
  • 平台网站建设需要什么技术衡水网站制作设计
  • 立方集团 网站网络公司实践报告3000字
  • 常州市钟楼建设局网站织梦模板自适应
  • 班级网站的建设泰安如何开发商城app开发
  • 东莞市企业网站制作平台frontpage网页制作成品
  • 长沙网站设计认准智优营家微信运营是什么样的岗位
  • 龙华网站建设专业定制企业大数据精准营销获客系统
  • cms企业网站系统大理石在哪些网站做宣传
  • Linux设置Python自启动
  • 网站素材模板旅游公众号怎么做微网站吗
  • 重庆网站开发解决方案网站被黑了多久恢复
  • 网站建设明细报价表仅供参考wordpress链接加载
  • 建设网站虚拟主机是啥意思服务公司沈傲芳
  • 昆明城乡和住房建设局网站陈仓网站建设
  • 互联网行业建设网站网站设计开发制作
  • 网站建设企业蛋糕深圳松岗做网站的
  • 建设市场监督管理网站仙居建设局网站
  • 东阳住房和城市建设网站牡丹江最新通知今天
  • 黑龙江电商网站建设重庆龙华网站建设公司
  • 卖线面网站化学网站定制
  • 20250905 之所思 - 人生如梦
  • 学做网站的视频教学搜索引擎在线
  • 做游戏网站需要哪些许可网站开发提供的服务
  • 保定北京网站建设哪个网站做高仿衣服