37 lines
1020 B
Ruby
37 lines
1020 B
Ruby
require 'rubygems'
|
|
require 'jekyll'
|
|
|
|
module JekyllDocs
|
|
class DocsCommand < Jekyll::Command
|
|
class << self
|
|
def init_with_program(prog)
|
|
prog.command(:docs) do |cmd|
|
|
cmd.description "Start a local server for the Jekyll documentation"
|
|
cmd.syntax "docs [options]"
|
|
cmd.alias :d
|
|
|
|
cmd.option "port", "-P", "--port", "Port to listen on."
|
|
|
|
cmd.action do |_, opts|
|
|
JekyllDocs::DocsCommand.process(opts)
|
|
end
|
|
end
|
|
end
|
|
|
|
def process(opts)
|
|
Dir.mktmpdir do |dest_dir|
|
|
options = opts.merge({
|
|
"serving" => true,
|
|
"watch" => false,
|
|
"config" => File.expand_path("../../site/_config.yml", __FILE__),
|
|
"source" => File.expand_path("../../site", __FILE__),
|
|
"destination" => dest_dir
|
|
})
|
|
Jekyll::Commands::Build.process(options)
|
|
Jekyll::Commands::Serve.process(options)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|