Hugo

Hugo

Hugo Introduction #

Overview #

Hugo is a static site generator written in Go, optimized for speed and designed for flexibility. With its advanced templating system and fast asset pipelines, Hugo renders a complete site in seconds, often less.

Due to its flexible framework, multilingual support, and powerful taxonomy system, Hugo is widely used to create:

  • Corporate, government, nonprofit, education, news, event, and project sites
  • Documentation sites
  • Image portfolios
  • Landing pages
  • Business, professional, and personal blogs
  • Resumes and CVs

Hugo’s fast asset pipelines include:

...

Hugo 概述


一、Hugo框架概述 #

Hugo是由Go语言编写的静态网站生成器(Static Site Generator, SSG),以极快的构建速度简洁的架构著称。它的核心设计理念是:

  • 无需数据库:所有内容基于Markdown文件。
  • 零依赖:仅需一个二进制文件即可运行。
  • 高性能:构建数千页面仅需毫秒级时间。

适用场景:技术文档、博客、企业官网、产品展示页等。


二、Hugo核心特性 #

1. 极速构建 #

  • 基于Go语言的并发编译机制,构建速度远超Jekyll、Hexo等工具。
  • 示例:构建1000个页面仅需约100ms。

2. 跨平台支持 #

  • 支持Windows、macOS、Linux,仅需一个二进制文件即可运行。

3. 灵活的内容管理 #

  • 支持Markdown、Org-mode、HTML等多种格式。
  • Front Matter:通过YAML/TOML/JSON定义页面元数据(如标题、日期、分类等)。

4. 强大的模板引擎 #

  • 基于Go语言的html/template库,支持逻辑控制、变量注入、模板继承等。
  • 短代码(Shortcodes):在Markdown中嵌入可复用的HTML组件。

5. 主题系统 #

  • 社区提供超过400个主题(如Ananke、DocDock),支持一键安装。
  • 可自定义模板覆盖(Template Overrides)。

6. 多语言支持 #

  • 原生支持国际化(i18n),轻松创建多语言站点。
  • 通过config.toml配置语言参数。

7. 实时热重载(Live Reload) #

  • 开发模式下修改内容后,浏览器自动刷新。

三、Hugo安装与配置 #

1. 安装方法 #

  • macOSbrew install hugo
  • Linuxsnap install hugo
  • Windowschoco install hugo 或直接下载二进制文件。

验证安装:

...

Hugo 语法

Hugo的语法主要涉及 模板引擎内容格式(Front Matter)短代码(Shortcodes),以下是详细的语法介绍:


一、Front Matter:内容的元数据 #

Front Matter是Hugo内容文件顶部的元数据块,用于定义页面的标题、日期、分类等属性,支持 YAMLTOMLJSON 三种格式。

1. YAML格式 #

---包裹:

---
title: "Hello Hugo"
date: 2023-10-01
tags: ["SSG", "Hugo"]
draft: false
---

2. TOML格式 #

+++包裹:

+++
title = "Hello Hugo"
date = 2023-10-01T15:00:00+08:00
tags = ["SSG", "Hugo"]
draft = false
+++

3. JSON格式 #

{ ... }包裹:

{
  "title": "Hello Hugo",
  "date": "2023-10-01",
  "tags": ["SSG", "Hugo"],
  "draft": false
}

常用字段 #

  • title: 页面标题
  • date: 发布日期(支持时间戳)
  • draft: 是否为草稿(true时默认不生成页面)
  • tags/categories: 标签和分类(支持多级分类)
  • weight: 控制页面在列表中的排序权重
  • aliases: 页面别名(用于重定向)

二、Go模板语法 #

Hugo使用Go语言的 html/template 引擎,支持逻辑控制、变量、函数等。

...