页面包
简介
页面包是一个封装内容和相关资源的目录。
例如,此站点具有“关于”页面和“隐私”页面:
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 |
[页面种类] | page |
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
上面的示例中有四个叶子包:
- about
- 此叶子包不包含任何页面资源。
- my-post
- 此叶子包包含一个索引文件,两个 资源类型
page
的资源和两个资源类型为image
的资源。
-
content-1, content-2
这些是资源类型为
page
的资源,可以通过Page
对象上的Resources
方法访问。Hugo不会将这些渲染为单独的页面。 -
image-1, image-2
这些是资源类型为
image
的资源,可以通过Page
对象上的Resources
方法访问。
- my-other-post
- 此叶子包不包含任何页面资源。
- another-leaf-bundle
- 此叶子包不包含任何页面资源。
分支包
分支包 是一个包含_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
- 此分支包包含一个索引文件和一个叶子包。
无头包
使用前置内容中的 构建选项 创建未发布的叶子包或分支包,您可以将其内容和资源包含在其他页面中。