Class: JekyllPagesApiSearch::Standalone

Inherits:
Object
  • Object
show all
Defined in:
lib/jekyll_pages_api_search/standalone.rb

Class Method Summary collapse

Class Method Details

.generate_index(basedir, config, pages_json, baseURL, title_prefix, body_element_tag) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/jekyll_pages_api_search/standalone.rb', line 26

def self.generate_index(basedir, config, pages_json, baseURL,
  title_prefix, body_element_tag)
  site = Site.new basedir, config

  # Generate pages.json if it doesn't already exist.
  if baseURL.nil?
    site.load_pages_json pages_json
  else
    site.pages << ::JekyllPagesApi::Generator.new(
      ::JekyllPagesApi::GeneratedSite.new(
        baseURL, basedir, title_prefix, body_element_tag)).page
  end

  # Build the index; output pages_json if necessary; gzip outputs.
  index = SearchIndexBuilder.build_index site
  index_outfile = File.join site.source, index.name
  output = { index_outfile => index.output.to_s }
  output[pages_json] = site.pages.first.output unless File.exist? pages_json
  output.each do |outfile, content|
    FileUtils.mkdir_p File.dirname(outfile)
    File.open(outfile, 'w') {|f| f << content}
  end
  Compressor::gzip_in_memory_content output
  Bundler::create_search_bundles(site)
  Assets::copy_to_basedir site.source
end