三月 17, 2025Hugo 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:
...
三月 16, 2025
一、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. 安装方法
#
- macOS:
brew install hugo
- Linux:
snap install hugo
- Windows:
choco install hugo
或直接下载二进制文件。
验证安装:
...
三月 15, 2025Hugo的语法主要涉及 模板引擎、内容格式(Front Matter) 和 短代码(Shortcodes),以下是详细的语法介绍:
一、Front Matter:内容的元数据
#
Front Matter是Hugo内容文件顶部的元数据块,用于定义页面的标题、日期、分类等属性,支持 YAML、TOML、JSON 三种格式。
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
引擎,支持逻辑控制、变量、函数等。
...