我有这个脚本,它构建了我的Jekyll静态website,可以在Github页面上使用我需要将JEKYLL_ENV=production
传递给构建参数,以确保我可以使用google分析(我的模板中有一个{% if jekyll.environment == 'production' %}
标记)。
例如,如果我不使用这个脚本来发布,我将使用JEKYLL_ENV=production jekyll build
但是我对红宝石和白头翁一无所知。。。
我明白它的作用,但不知道把修改放在哪里我觉得它看起来像(错误的代码)
Jekyll::Site.new(Jekyll.configuration({
"source" => ".",
"destination" => "_site"
}).build({
"JEKYLL_ENV" => "production"
})).process
这是原稿,谢谢!
require "rubygems"
require "tmpdir"
require "bundler/setup"
require "jekyll"
GITHUB_REPONAME = "my_reponame"
desc "Generate blog files"
task :generate do
Jekyll::Site.new(Jekyll.configuration({
"source" => ".",
"destination" => "_site"
})).process
end
desc "Generate and publish blog to gh-pages"
task :publish => [:generate] do
Dir.mktmpdir do |tmp|
cp_r "_site/.", tmp
pwd = Dir.pwd
Dir.chdir tmp
system "git init"
system "git add ."
message = "Site updated at #{Time.now.utc}"
system "git commit -m #{message.inspect}"
system "git remote add origin [email protected]:#{GITHUB_REPONAME}.git"
system "git push origin master --force"
Dir.chdir pwd
end
end
最佳答案
在ruby中,可以在ENV
中访问环境变量,因此,如果由于某种原因,在运行脚本时无法在命令行中指定它,我认为只在那里指定它是可行的:
ENV["JEKYLL_ENV"] = "production"
你应该能在任务开始前把这个放在任何地方。
关于ruby - 将JEKYLL_ENV = production添加到rakefile,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41022520/