内容组织
页面捆绑
Hugo 0.32
版本宣布支持将页面相关图像和其他资源打包到页面捆绑包中。
这些术语是相关的,你还需要阅读有关页面资源和图像处理的内容来获取完整的信息。
内容源的组织方式
在Hugo中,你的内容应该以与渲染的网站相符的方式进行组织。
虽然Hugo支持任意层级的内容嵌套,但顶级目录(即content/<DIRECTORIES>
)在Hugo中是特殊的,被视为用于确定布局等的内容类型。如需了解有关部分的更多信息,包括如何进行嵌套,请参阅部分。
没有任何额外的配置,以下内容将自动工作:
.
└── content
└── about
| └── index.md // <- https://example.org/about/
├── posts
| ├── firstpost.md // <- https://example.org/posts/firstpost/
| ├── happy
| | └── ness.md // <- https://example.org/posts/happy/ness/
| └── secondpost.md // <- https://example.org/posts/secondpost/
└── quote
├── first.md // <- https://example.org/quote/first/
└── second.md // <- https://example.org/quote/second/
Hugo中的路径解析
以下为展示了内容组织与Hugo网站构建输出的URL结构之间的关系示例。这些示例假设你正在使用pretty URLs,这是Hugo的默认行为。这些示例还假设在站点配置文件中有baseURL = "https://example.org"
的键值对。
索引页面:_index.md
在Hugo中,_index.md
具有特殊的作用。它允许你向list templates添加博客元数据和内容。这些模板包括部分模板、分类法模板、分类法术语模板和主页模板等。
你可以为主页以及每个内容部分、分类法和分类法术语创建一个_index.md
。下面是在Hugo网站上为posts
部分列表页添加内容和博客元数据的典型_index.md
放置位置示例:
. url
. ⊢--^-⊣
. path slug
. ⊢--^-⊣⊢---^---⊣
. filepath
. ⊢------^------⊣
content/posts/_index.md
在构建中,这将输出以下内容,并带有相应的值:
url ("/posts/")
⊢-^-⊣
baseurl section ("posts")
⊢--------^---------⊣⊢-^-⊣
permalink
⊢----------^-------------⊣
https://example.org/posts/index.html
[部分]可以被嵌套到任意深度。重要的是要理解,为了使部分树完全可导航,至少包含下级部分的位置必须包含一个内容文件(即_index.md
)。
部分中的单个页面
在每个部分中,单个内容文件将被渲染为单个页面模板。以下是posts
部分中的单个post
的示例:
path ("posts/my-first-hugo-post.md")
. ⊢-----------^------------⊣
. section slug
. ⊢-^-⊣⊢--------^----------⊣
content/posts/my-first-hugo-post.md
当Hugo构建你的网站时,内容将输出到以下目的地:
url ("/posts/my-first-hugo-post/")
⊢------------^----------⊣
baseurl section slug
⊢--------^--------⊣⊢-^--⊣⊢-------^---------⊣
permalink
⊢--------------------^---------------------⊣
https://example.org/posts/my-first-hugo-post/index.html
路径解析
以下概念更详细地说明了项目组织与构建网站时Hugo的默认行为之间的关系。
section
默认的内容类型由内容项存储的部分确定。section
由项目content
目录中的位置确定。不能在前置信息中指定或覆盖section
。
slug
slug
是URL路径的最后一段,由文件名定义,并可以在前置信息中通过slug
值进行覆盖。详细信息请参阅URL管理。
path
内容的path
由其所在部分的路径到文件决定。文件的path
- 基于内容的位置路径,并且
- 不包括slug
url
url
是完整的URL路径,由文件路径定义,并可以在前置信息中通过url
值进行覆盖。详细信息请参阅URL管理。