配置选项 Configuration Options

下表列出了 Jekyll 可用的各项设置,以及用于控制这些设置的 options(在配置文件中指定)和 Flags(在命令行中指定)。

全局配置

设置项 optionsFlags

网站源目录

更改 Jekyll 读取文件的目录。

source: DIR

-s, --source DIR

网站目标目录

更改 Jekyll 写入文件的目录。

destination: DIR

-d, --destination DIR

安全模式

禁用 非白名单插件,禁用磁盘缓存,并忽略符号链接。

safe: BOOL

--safe

禁用磁盘缓存 4.1.0

禁用将内容缓存到磁盘,以避免在源目录创建 .jekyll-cache 或类似目录, 防止干扰虚拟环境或第三方目录监视器。在 safe 模式下,磁盘缓存始终被禁用。

disable_disk_cache: BOOL

--disable-disk-cache

忽略主题配置 4.1.0

Jekyll 4.0 开始允许主题捆绑 _config.yml,以简化新用户的主题使用。 如果导入主题配置导致合并后的站点配置混乱,可以配置 Jekyll 完全不导入主题配置。

ignore_theme_config: BOOL

排除

从转换中排除指定目录和/或文件。这些路径相对于站点源目录,不能位于源目录之外。
在 Jekyll 3 中,`exclude` 配置选项会替代默认排除列表。
在 Jekyll 4 中,用户提供的条目会添加到默认排除列表中,并且可以使用 `include` 选项覆盖默认排除列表条目。
默认排除列表在通过 jekyll new 创建的 _config.yml 中包括:

  • .sass-cache/
  • .jekyll-cache/
  • gemfiles/
  • Gemfile
  • Gemfile.lock
  • node_modules/
  • vendor/bundle/
  • vendor/cache/
  • vendor/gems/
  • vendor/ruby/

exclude: [DIR, FILE, ...]

包含

强制在转换中包含指定目录和/或文件。例如 .htaccess 默认会被排除,但可以通过此选项包含。 在 Jekyll 4 中,`include` 配置选项的条目会覆盖 `exclude` 选项的条目。

include: [DIR, FILE, ...]

保留文件

在覆盖网站目标目录时保留指定文件。适用于不是由 Jekyll 生成的文件,例如由构建工具生成的文件或资源。 路径相对于 destination

keep_files: [DIR, FILE, ...]

时区

设置站点生成的时区。这会设置 TZ 环境变量,Ruby 会使用它处理日期和时间。 可以使用 IANA 时区数据库 中的任意值,例如 America/New_York。 可用值列表见 这里。 本地机器上服务时,默认时区由操作系统设置;远程主机/服务器上服务时,默认时区取决于服务器设置或位置。

timezone: TIMEZONE

编码

设置文件编码(仅适用于 Ruby 1.9 及以上)。2.0.0 及以后版本默认值为 utf-8, 2.0.0 以前版本为 nil,会使用 Ruby 默认的 ASCII-8BIT。 可用编码列表可通过命令 ruby -e 'puts Encoding::list.join("\n")' 查看。

encoding: ENCODING

默认值

前置数据 变量设置默认值。

详见 下方说明

站点构建时会清理目标目录

在构建站点时,<destination> 目录中的内容默认会被自动清理。 所有不是由你的网站生成的文件或文件夹都会被移除。 你可以通过在 <keep_files> 配置指令中指定内容来保留某些文件。

请不要将 <destination> 设置为重要位置; 应将其作为临时构建目录,并将生成的文件再复制到你的 Web 服务器上。

构建命令选项

设置项 optionsFlags

自动重生

在文件被修改时启用站点的自动重生成。

-w, --[no-]watch

配置文件

指定配置文件,而不是自动使用 _config.yml。 后面的文件设置会覆盖前面的文件设置。

--config FILE1[,FILE2,...]

插件

指定插件目录,而不是自动使用 _plugins/

plugins_dir: [ DIR1,... ]

-p, --plugins DIR1[,DIR2,...]

布局

指定布局目录,而不是自动使用 _layouts/

layouts_dir: DIR

--layouts DIR

草稿

处理并渲染草稿文章。

show_drafts: BOOL

-D, --drafts

环境

在构建中使用特定的环境值。

JEKYLL_ENV=production

未来文章

发布未来日期的文章或集合文档。

future: BOOL

--future

未发布文章

渲染标记为未发布的文章。

unpublished: BOOL

--unpublished

LSI

生成相关文章索引。需要 classifier-reborn 插件。

lsi: BOOL

--lsi

限制文章数量

限制解析和发布的文章数量。

limit_posts: NUM

--limit_posts NUM

强制轮询

强制 watch 使用轮询模式。

force_polling: BOOL

--force_polling

输出详细信息

打印详细输出信息。

verbose: BOOL

-V, --verbose

静默输出

在构建时静默 Jekyll 的正常输出。

quiet: BOOL

-q, --quiet

日志等级

指定日志等级,可选 debug、info、warn 或 error。

JEKYLL_LOG_LEVEL=info

增量构建

启用实验性的 增量构建功能。 增量构建只重新生成已更改的文章和页面,可显著提升大型站点的性能, 但在某些情况下可能导致站点生成失败。

incremental: BOOL

-I, --incremental

禁用 bundle require

禁止在 `:jekyll_plugins` Gemfile 中 require gems。

JEKYLL_NO_BUNDLER_REQUIRE=true

Liquid 分析

生成 Liquid 渲染分析,以帮助识别性能瓶颈。

profile: BOOL

--profile

严格前置数据

如果页面的 front matter 有 YAML 语法错误,会导致构建失败。

strict_front_matter: BOOL

--strict_front_matter

基础 URL

从指定的 base URL 提供网站服务。

baseurl: URL

-b, --baseurl URL

回溯

出错时显示完整的回溯信息。

-t, --trace

Serve 命令选项

除了下面列出的选项之外,serve 子命令还可以接受 build 子命令的任何选项, 这些选项会应用到在站点启动前执行的构建过程。

设置项 optionsFlags

本地服务器端口

监听指定端口,默认值为 `4000`。

port: PORT

-P, --port PORT

本地服务器主机名

监听指定主机名,默认值为 `localhost`。

host: HOSTNAME

-H, --host HOSTNAME

实时重载

当内容被编辑时,自动在浏览器中刷新页面。

livereload: BOOL

-l, --livereload

实时重载忽略

LiveReload 忽略的文件 glob 模式。

livereload_ignore: [ GLOB1,... ]

--livereload-ignore GLOB1[,GLOB2,...]

实时重载最小/最大延迟

自动刷新页面前的最小/最大延迟时间。

livereload_min_delay: SECONDS
livereload_max_delay: SECONDS

--livereload-min-delay SECONDS
--livereload-max-delay SECONDS

实时重载端口

LiveReload 监听的端口。

--livereload-port PORT

打开 URL

在浏览器中打开站点的 URL。

open_url: BOOL

-o, --open-url

后台运行

将服务器从终端分离运行。

detach: BOOL

-B, --detach

跳过初始站点构建

跳过服务器启动前的初始站点构建。

skip_initial_build: BOOL

--skip-initial-build

显示目录列表

显示目录列表而不是加载索引文件。

show_dir_listing: BOOL

--show-dir-listing

X.509(SSL)私钥

SSL 私钥,存储或符号链接在站点源目录中。

--ssl-key

X.509(SSL)证书

SSL 公钥证书,存储或符号链接在站点源目录中。

--ssl-cert

不要在配置文件中使用制表符(Tab)

使用制表符可能会导致解析错误,或者 Jekyll 会恢复到默认设置。 请改用空格。