页面包
简介
页面包是一个目录,其中封装了内容和关联的资源。
例如,本站点有一个“关于”页面和一个“隐私”页面
content/
├── about/
│ ├── index.md
│ └── welcome.jpg
└── privacy.md
“关于”页面是一个页面包。它通过将资源捆绑在一起,在逻辑上将资源与内容关联起来。页面包中的资源是页面资源,可以使用 Page
对象上的Resources
方法访问。
页面包分为叶包或分支包。
- 叶包
- 叶包是一个目录,其中包含一个
index.md
文件和零个或多个资源。类似于物理叶子,叶包位于分支的末端。它没有后代。 - 分支包
- 分支包是一个目录,其中包含一个
_index.md
文件和零个或多个资源。类似于物理分支,分支包可能具有后代,包括叶包和其他分支包。包含或不包含_index.md
文件的顶层目录也是分支包。这包括首页。
比较
页面包的特性因包类型而异。
叶包 | 分支包 | |
---|---|---|
索引文件 | index.md |
_index.md |
示例 | content/about/index.md |
content/posts/_index.md |
页面种类 | 页面 |
home 、section 、taxonomy 或 term |
模板类型 | 单个 | home、section、taxonomy 或 term |
后代页面 | 无 | 零个或多个 |
资源位置 | 与索引文件相邻或位于嵌套的子目录中 | 与叶包相同,但不包括后代包 |
资源类型 | page 、image 、video 等。 |
除了 page 以外的所有类型 |
资源类型为 page
的文件包括以 Markdown、HTML、AsciiDoc、Pandoc、reStructuredText 和 Emacs Org Mode 编写的内容。在叶包中,不包括索引文件,这些文件只能作为页面资源访问。在分支包中,这些文件只能作为内容页面访问。
叶包
叶包是一个目录,其中包含一个 index.md
文件和零个或多个资源。类似于物理叶子,叶包位于分支的末端。它没有后代。
content/
├── about
│ └── index.md
├── posts
│ ├── my-post
│ │ ├── content-1.md
│ │ ├── content-2.md
│ │ ├── image-1.jpg
│ │ ├── image-2.png
│ │ └── index.md
│ └── my-other-post
│ └── index.md
└── another-section
├── foo.md
└── not-a-leaf-bundle
├── bar.md
└── another-leaf-bundle
└── index.md
上面的示例中有四个叶包
- 关于
- 此叶包不包含任何页面资源。
- 我的文章
- 此叶包包含一个索引文件、两个资源类型为
page
的资源和两个资源类型为image
的资源。
-
content-1, content-2
这些是资源类型为
page
的资源,可通过Page
对象上的Resources
方法访问。Hugo 不会将这些资源渲染为单独的页面。 -
image-1, image-2
这些是资源类型为
image
的资源,可通过Page
对象上的Resources
方法访问
- 我的其他文章
- 此叶包不包含任何页面资源。
- 另一个叶包
- 此叶包不包含任何页面资源。
分支包
分支包是一个目录,其中包含一个 _index.md
文件和零个或多个资源。类似于物理分支,分支包可能具有后代,包括叶包和其他分支包。包含或不包含 _index.md
文件的顶层目录也是分支包。这包括首页。
content/
├── branch-bundle-1/
│ ├── _index.md
│ ├── content-1.md
│ ├── content-2.md
│ ├── image-1.jpg
│ └── image-2.png
├── branch-bundle-2/
│ ├── a-leaf-bundle/
│ │ └── index.md
│ └── _index.md
└── _index.md
上面的示例中有三个分支包
- 首页
- 此分支包包含一个索引文件、两个后代分支包,并且没有资源。
- branch-bundle-1
- 此分支包包含一个索引文件、两个资源类型为
page
的资源和两个资源类型为image
的资源。 - branch-bundle-2
- 此分支包包含一个索引文件和一个叶包。
无头包
在 front matter 中使用构建选项来创建未发布的叶子或分支包,您可以将它们的内容和资源包含在其他页面中。