module Jekyll::Livereload::Build

Public Instance Methods

process(opts) click to toggle source
Calls superclass method
# File lib/jekyll-livereload/build.rb, line 10
def process(opts)
  opts = load_config_options(opts)
  if opts['livereload'] and opts['serving']

    Jekyll::Hooks.register(:site, :post_render) do |site|
      regenerator = Jekyll::Regenerator.new(site)
      Livereload.pages = site.pages.select do |p|
        regenerator.regenerate?(p)
      end
    end

    Jekyll::Hooks.register([:pages, :documents], :post_render) do |doc|
      doc.output.sub!(/<head>(.*)<\/head>/m, "<head>\\1#{reload_script(opts)}</head>")
    end

    Jekyll::Hooks.register :site, :post_write do
      Livereload.reactor.reload() unless Livereload.reactor.nil?
    end
  end

  super opts
end

Private Instance Methods

reload_script(opts) click to toggle source
# File lib/jekyll-livereload/build.rb, line 34
def reload_script(opts)
  protocol = opts[:secure] ? "https" : "http"
  "<script src=\"#{protocol}://#{opts['host']}:#{opts['reload_port']}/livereload.js\"></script>"
end