Jekyll 命令(Commands)

截至版本 2.5.0 ,Jekyll 可以通过插件进行扩展,这些插件能够为 jekyll 可执行文件提供子命令。实现方式是在 Gemfile 中加入一个名为 :jekyll_plugins 的分组:

group :jekyll_plugins do
  gem "my_fancy_jekyll_plugin"
end

每个 Command 必须是 Jekyll::Command 类的子类,并且必须包含一个类方法:init_with_program。示例如下:

class MyNewCommand < Jekyll::Command
  class << self
    def init_with_program(prog)
      prog.command(:new) do |c|
        c.syntax "new [options]"
        c.description '创建一个新的 Jekyll 网站。'

        c.option 'dest', '-d DEST', '网站应该创建到哪里。'

        c.action do |args, options|
          Jekyll::Site.new_site_at(options['dest'])
        end
      end
    end
  end
end

命令必须实现以下唯一的类方法:

方法 描述

init_with_program

此方法接收一个参数,即 Mercenary::Program 实例,它就是 Jekyll 程序本身。在该程序对象上,可以按照上述语法创建命令。更多细节请访问 GitHub 上的 Mercenary 仓库。