我有这个脚本,它构建了我的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/

10-12 17:23