内容管理
概述
参考:
Content(内容)
为了让静态站点生成器实现可扩展性和可管理型,我们可以为文章添加 FrontMatter(前页) 和 Templates(模板)。Hugo 基于这种特性,设计时不仅考虑了开发人员,还考虑到了内容管理者和作者。
内容的部分
Content Sections(内容部分) 是根据 content/ 目录下的组织结构定义的页面集合。
所有包含 _index.md 文件的目录都称为一个 Section(部分)。默认情况下 content/ 下的所有一级目录都是自己的 Root Section(根部分)。
比如:
content/
├── _index.md
├── blog
│ └── _index.md
├── docs
│ ├── _index.md
│ ├── front-matter-demo.md
│ └── markdown-demo.md
└── posts
└── _index.md
整个网站分为三个 Sections,分为是 blog、docs、posts。说白了,blog/_index.md 文件就表示 blog/ 目录及其内的所有文件都属于 blog Section。
部分的嵌套:
content
└── blog <-- blog 部分, 因为这是在 content/ 下的一级目录
├── funny-cats
│ ├── mypost.md
│ └── kittens <-- kittens 部分, 因为包含 _index.md 文件
│ └── _index.md
└── tech <-- tech 部分, 因为包含 _index.md 文件
└── _index.md
同时,若没有指定内容的类型,则内容的类型默认就是其 Section 的名称,详见下文内容的类型
内容的类型
Content Types(内容类型) 是一种组织内容的方式。用于:
Hugo 将内容放在 content/ 目录下,如果没有手动设置类型,那么 content/blog/my-first-event.md 这个路径下的 my-first-event.md 内容就是 blog 类型,即使用文件所在目录的目录名作为类型的名称。
URL 的生成逻辑
参考:
- 网页中的 URL 将会根据目录名和文件名生成
- 目录名、文件名中各种字符、特殊符号变成 URL 之后将会进行一些特殊处理
- 空格在 URL 中为
-符号 - 字母在 URL 中为小写
()符号被删除
- 空格在 URL 中为
比如
content/zh-cn/docs/10.云原生/Cloud Native(云原生)/Cloud Native(云原生).md,访问该文件时,URL 为http://localhost/docs/10.云原生/cloud-native云原生/cloud-native云原生/
FrontMatter(前页)
参考:
在每篇文档的开头,我们可以使用 TOML、YAML、JSON、ORG 这四种格式配置文档的元数据,通过这些元数据,我们可以让 Hugo 或 Hugo 主题提供更强大的功能。
各种格式使用不同的符号来识别:
+++
TOML 格式
+++
---
YAML 格式
---
{JSON 格式}
前页变量
在 FrontMatter 配置的元数据可以生成 FrontMatter Variables(前页变量),Hugo 具有如下预定义的前页变量
title # 文档的标题。
linktitle # 用于创建内容链接;如果设置,Hugo 将会使用 linkTitle 的值作为菜单栏、导航栏中文章的链接名称。 Hugo 还可以通过链接标题对内容列表进行排序。
下图是使用 Docsy 主题时,对这两个变量的使用效果:

data # 分配给此页面的日期时间。这通常是从 front matter 的日期字段中获取的,但这种行为是可配置的。
lastmod # 上次修改内容的日期
slug #
URL 管理
参考:
官方生成 URL 的默认规则:
- 全部变为小写。可以通过
disablePathToLower配置改变 - 空格使用
-代替 - TODO: 待整理
反馈
此页是否对你有帮助?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.