配置

默认配置足以让 Zola 在本地运行,但仅此而已。它遵循只为你需要的东西付费的理念,默认情况下几乎所有东西都是关闭的。

要更改配置,请编辑config.toml文件。如果您不熟悉 TOML,请查看TOML 规范

⚠️ 如果你给你的添加key config.toml,一定要注意它属于哪个TOML section。TOML 部分以标题开始,例如[search],并在下一个部分或 EOF 结束。

以下是当前config.toml部分:

  1. 主要(未命名)
  2. 降价
  3. 链接检查器
  4. 打瞌睡
  5. 搜索
  6. 翻译
  7. 语言
  8. 额外的

只有base_url变量是必需的其他一切都是可选的。下面列出了 Zola 使用的所有配置变量及其默认值:

# The base URL of the site; the only required configuration variable.
base_url = "mywebsite.com"

# The site title and description; used in feeds by default.
title = ""
description = ""

# The default language; used in feeds.
default_language = "en"

# The site theme to use.
theme = ""

# For overriding the default output directory `public`, set it to another value (e.g.: "docs")
output_dir = "public"

# Whether dotfiles at the root level of the output directory are preserved when (re)building the site.
# Enabling this also prevents the deletion of the output folder itself on rebuilds.
preserve_dotfiles_in_output = false

# When set to "true", the Sass files in the `sass` directory in the site root are compiled.
# Sass files in theme directories are always compiled.
compile_sass = false

# When set to "true", the generated HTML files are minified.
minify_html = false

# A list of glob patterns specifying asset files to ignore when the content
# directory is processed. Defaults to none, which means that all asset files are
# copied over to the `public` directory.
# Example:
#     ignored_content = ["*.{graphml,xlsx}", "temp.*", "**/build_folder"]
ignored_content = []

# When set to "true", a feed is automatically generated.
generate_feed = false

# The filename to use for the feed. Used as the template filename, too.
# Defaults to "atom.xml", which has a built-in template that renders an Atom 1.0 feed.
# There is also a built-in template "rss.xml" that renders an RSS 2.0 feed.
feed_filename = "atom.xml"

# The number of articles to include in the feed. All items are included if
# this limit is not set (the default).
# feed_limit = 20

# When set to "true", files in the `static` directory are hard-linked. Useful for large
# static files. Note that for this to work, both `static` and the
# output directory need to be on the same filesystem. Note that the theme's `static`
# files are always copied, regardless of this setting.
hard_link_static = false

# The taxonomies to be rendered for the site and their configuration of the default languages
# Example:
#     taxonomies = [
#       {name = "tags", feed = true}, # each tag will have its own feed
#       {name = "tags"}, # you can have taxonomies with the same name in multiple languages
#       {name = "categories", paginate_by = 5},  # 5 items per page for a term
#       {name = "authors"}, # Basic definition: no feed or pagination
#     ]
#
taxonomies = []

# When set to "true", a search index is built from the pages and section
# content for `default_language`.
build_search_index = false

# Configuration of the Markdown rendering
[markdown]
# When set to "true", all code blocks are highlighted.
highlight_code = false

# A list of directories used to search for additional `.sublime-syntax` and `.tmTheme` files.
extra_syntaxes_and_themes = []

# The theme to use for code highlighting.
# See below for list of allowed values.
highlight_theme = "base16-ocean-dark"

# When set to "true", emoji aliases translated to their corresponding
# Unicode emoji equivalent in the rendered Markdown files. (e.g.: :smile: => 😄)
render_emoji = false

# Whether external links are to be opened in a new tab
# If this is true, a `rel="noopener"` will always automatically be added for security reasons
external_links_target_blank = false

# Whether to set rel="nofollow" for all external links
external_links_no_follow = false

# Whether to set rel="noreferrer" for all external links
external_links_no_referrer = false

# Whether smart punctuation is enabled (changing quotes, dashes, dots in their typographic form)
# For example, `...` into `…`, `"quote"` into `“curly”` etc
smart_punctuation = false

# Configuration of the link checker.
[link_checker]
# Skip link checking for external URLs that start with these prefixes
skip_prefixes = [
    "http://[2001:db8::]/",
]

# Skip anchor checking for external URLs that start with these prefixes
skip_anchor_prefixes = [
    "https://caniuse.com/",
]

# Treat internal link problems as either "error" or "warn", default is "error"
internal_level = "error"

# Treat external link problems as either "error" or "warn", default is "error"
external_level = "error"

# Various slugification strategies, see below for details
# Defaults to everything being a slug
[slugify]
paths = "on"
taxonomies = "on"
anchors = "on"
# Whether to remove date prefixes for page path slugs.
# For example, content/posts/2016-10-08_a-post-with-dates.md => posts/a-post-with-dates
# When true, content/posts/2016-10-08_a-post-with-dates.md => posts/2016-10-08-a-post-with-dates
paths_keep_dates = false

[search]
# Whether to include the title of the page/section in the index
include_title = true
# Whether to include the description of the page/section in the index
include_description = false
# Whether to include the path of the page/section in the index
include_path = false
# Whether to include the rendered content of the page/section in the index
include_content = true
# At which character to truncate the content to. Useful if you have a lot of pages and the index would
# become too big to load on the site. Defaults to not being set.
# truncate_content_length = 100

# Wether to produce the search index as a javascript file or as a JSON file
# Accepted value "elasticlunr_javascript" or "elasticlunr_json"
index_format = "elasticlunr_javascript"

# Optional translation object for the default language
# Example:
#     default_language = "fr"
#
#     [translations]
#     title = "Un titre"
#
[translations]

# Additional languages definition
# You can define language specific config values and translations:
# title, description, generate_feed, feed_filename, taxonomies, build_search_index
# as well as its own search configuration and translations (see above for details on those)
[languages]
# For example
# [languages.fr]
# title = "Mon blog"
# generate_feed = true
# taxonomies = [
#    {name = "auteurs"},
#    {name = "tags"},
# ]
# build_search_index = false

# You can put any kind of data here. The data
# will be accessible in all templates
# Example:
#     [extra]
#     author = "Famous author"
#
# author value will be available using {{ config.extra.author }} in templates
#
[extra]

🔗语法高亮

Zola 目前有以下可用的亮点主题:

Zola 使用 Sublime Text 主题,添加更多主题变得非常容易。如果您想要上面未列出的主题,请在Zola 存储库上打开一个问题或一个拉取请求。

或者,您可以使用extra_syntaxes_and_themes配置选项从 .tmTheme 文件加载您自己的自定义主题。有关详细信息,请参阅语法突出显示。

🔗 Slugification 策略

默认情况下,Zola 会将每条路径、分类法和锚点转换为 slug,一种没有特殊字符的 ASCII 表示形式。但是,如果您想在 URL 中使用 UTF-8 字符,您可以为每种项目更改该策略。有3种策略:

  • on:默认的,一切都变成了一个鼻涕虫
  • safe<>:"/\|?*: 在 Windows ( ) 或 Unix ( )上的文件中不能存在的字符/被删除,其他一切都保留
  • off: 没有任何改变,您的站点可能不会在某些操作系统上构建和/或破坏各种 URL 解析器

由于锚点没有文件名问题,因此在它们的情况下safeoff策略是相同的:唯一的变化是空间被替换为_因为空间在锚点中无效。

请注意,如果您使用的不是默认策略,则必须手动转义空格和 Markdown 标记才能链接到您的页面。例如,指向名为 will 的文件的内部链接some space.md需要像some%20space.md在 Markdown 文件中一样编写。