Zola 使用目录结构来确定站点结构。目录中的每个子目录content
代表一个
包含页面(您的文件)的部分。.md
.
└── content
├── content
│ └── something.md // -> https://mywebsite.com/content/something/
├── blog
│ ├── cli-usage.md // -> https://mywebsite.com/blog/cli-usage/
│ ├── configuration.md // -> https://mywebsite.com/blog/configuration/
│ ├── directory-structure.md // -> https://mywebsite.com/blog/directory-structure/
│ ├── _index.md // -> https://mywebsite.com/blog/
│ └── installation.md // -> https://mywebsite.com/blog/installation/
└── landing
└── _index.md // -> https://mywebsite.com/landing/
base_url
每个页面路径(例如之后的部分blog/cli-usage/
)都可以通过更改页面 front-matter的path
或
属性来自定义。slug
_index.md
您可能已经注意到上面示例中命名的文件。此文件用于存储节本身的元数据和内容,不被视为页面。
为确保理解文档其余部分中使用的术语,让我们回顾一下上面的示例。
本例中的目录content
包含三个sections
:content
,blog
和landing
. 该content
部分只有一页 ( something.md
),该landing
部分没有页面,该blog
部分有 4 页(cli-usage.md
、
configuration.md
和directory-structure.md
)installation.md
。
部分可以无限嵌套。
该content
目录不限于标记文件。希望将页面和一些相关资产(例如图像或电子表格)放在一起是很自然的。Zola 开箱即用地支持分区和页面的这种模式。
您在页面/部分目录中添加的所有非 Markdown 文件都将在构建站点时与生成的页面一起复制,这允许我们使用相对路径来访问它们。
具有并置资源的页面不应直接放在它们的节目录中(例如latest-experiment.md
),而是作为index.md
专用目录 ( latest-experiment/index.md
) 中的文件,如下所示:
└── research
├── latest-experiment
│ ├── index.md
│ └── yavascript.js
├── _index.md
└── research.jpg
使用此设置,您可以直接从 Markdown 中的research.jpg
“研究”部分和“最新实验”页面访问:yavascript.js
Check out the complete program [here](yavascript.js). It's **really cool free-software**!
默认情况下,此页面的 slug 将是目录名称,因此其永久链接将为https://example.com/research/latest-experiment/
.
可以使用
配置文件中的ignored_content设置忽略选定的资产文件。例如,假设您有几个要链接到您网站上的代码文件。为了便于维护,您希望将您的代码与 Markdown 文件保存在同一目录中,但又不想将构建文件夹复制到公共网站。ignored_content
您可以通过在配置文件中设置来实现:
(注意:{Cargo.lock,target}
与不一样{Cargo.lock, target}
)
ignored_content = ["code_articles/**/{Cargo.lock,target}, *.rs"]
除了在content
目录中放置内容文件外,您还可以在static
目录中放置内容文件。您放置在目录中的任何文件/目录都static
将被复制到目录中,而无需修改public
。
通常,您可以将站点范围的资产(例如 CSS 文件、站点图标、站点徽标或站点范围的 JavaScript)放在静态目录的根目录中。您还可以将任何 HTML 或其他您希望不加修改(即不被解析为 Markdown 文件)的文件放入静态目录。
请注意,静态目录提供了共同定位的替代方法。例如,假设您具有以下目录结构(上述结构的简化版本):
.
└── content
└── blog
├── configuration
│ └── index.md // -> https://mywebsite.com/blog/configuration/
└── _index.md // -> https://mywebsite.com/blog/
要向页面添加图像https://mywebsite.com/blog/configuration
,您有以下三种选择:
content/blog/configuration
目录,然后使用页面的相对路径链接到它index.md
。这就是上面协同定位下描述的方法
。static/blog/configuration
目录并以完全相同的方式链接到它,就像您将它放在一起一样。如果这样做,生成的文件将与将图像放在一起时获得的文件相同;唯一的区别是所有静态文件都将保存在静态目录中,而不是内容目录中。选择取决于您的组织需求。static/images
. 使用这种方法,您不能再使用相对链接。相反,您必须使用绝对链接来images/[filename]
访问您的图像。这对于小型站点或将图像与多个页面相关联的站点(例如,出现在每个页面上的徽标图像)可能更可取。