概述

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-matterpath或 属性来自定义slug

_index.md您可能已经注意到上面示例中命名的文件。此文件用于存储节本身的元数据和内容,不被视为页面。

为确保理解文档其余部分中使用的术语,让我们回顾一下上面的示例。

本例中的目录content包含三个sectionscontent,bloglanding. content部分只有一页 ( something.md),该landing部分没有页面,该blog部分有 4 页(cli-usage.mdconfiguration.mddirectory-structure.mdinstallation.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]访问您的图像。这对于小型站点或将图像与多个页面相关联的站点(例如,出现在每个页面上的徽标图像)可能更可取。