Ruby 如何重写jekyllbuild命令,仅在生成时设置一些配置选项?
我用它来建立我的网站,我只想压缩网站(大约需要20秒),当我发布它。为此,我必须在配置文件中以编程方式启用这些值:Ruby 如何重写jekyllbuild命令,仅在生成时设置一些配置选项?,ruby,jekyll,Ruby,Jekyll,我用它来建立我的网站,我只想压缩网站(大约需要20秒),当我发布它。为此,我必须在配置文件中以编程方式启用这些值: asset_pipeline: bundle: false compress: false 我试着编写一个插件,但它不起作用。有人能帮我解释一下原因吗 module Jekyll module Commands # I overwrite this here so we only do heavy work (like compressing HT
asset_pipeline:
bundle: false
compress: false
我试着编写一个插件,但它不起作用。有人能帮我解释一下原因吗
module Jekyll
module Commands
# I overwrite this here so we only do heavy work (like compressing HTML and stuff)
# when we are building the site, not when testing (which uses jekyll serve)
class << Build
alias_method :_process, :process
def process(options)
require 'jekyll-press'
options['asset_pipeline']['bundle'] = true
options['asset_pipeline']['compress'] = true
_process(options)
end
end
end
end
模块杰基尔
模块命令
#我在这里覆盖它,所以我们只做繁重的工作(比如压缩HTML和其他东西)
#当我们构建站点时,而不是测试时(使用jekyll服务)
类gueard jekyll plus
gem允许您配置多个配置文件,其中后面的配置文件覆盖前面的配置文件。我有相同的设置,其中有一个\u development.yml
文件,用于关闭开发工作的所有资产编译设置。是的,您必须设置guard,但它使刷新站点变得简单。以下是相关章节:
guard 'jekyll-plus', extensions: %w[slim yml scss js md html xml txt rb], serve: true, rack_config: 'config.ru', config: ['_config.yml', '_development.yml'] do
watch /.*/
ignore /^build/
end
我在本文中详细介绍了Gem的大部分基本设置
难道你就不能这样做:
> jekyll build --config _development.yml
要使用不同的配置文件进行构建?您甚至不需要特殊的gem-您可以将多个配置文件传递给
jekyll build
:
首先是常规配置文件,包含始终需要的所有设置,加上禁用压缩的值,因为您并不总是希望每次在本地构建时都运行该文件:
_config.yml:
然后,您需要第二个用于发布的配置文件,该文件仅覆盖您实际希望不同的值:
_config-publish.yml:
因此,当您不发布时,只需像以前一样运行
jekyllbuild
但在发布时,您会按正确的顺序传递两个配置文件:
jekyll build --config _config.yml,_config-publish.yml
Jekyll将按照您传递它们的顺序应用它们,因此第二个文件中的设置将覆盖第一个文件中的设置,bundle
和compress
最终将设置为true
如果您无法控制哪些参数将被传递到
jekyll build
(可能在GitHub页面上?我从未使用过它,但可能…),您也可以做同样的事情,只是反过来:
- 在默认配置文件中将
和bundle
设置为compress
true
- 当您不发布时,请使用第二个
文件再次设置\u config-dev.yml
和捆绑
为压缩
假
asset_pipeline:
bundle: true
compress: true
jekyll build --config _config.yml,_config-publish.yml