class JekyllPagesApiSearch::SearchIndexBuilder

Constants

COMPILE_SCRIPT
DIRNAME
INDEX_FILE

Public Class Methods

build_index(site) click to toggle source
# File lib/jekyll_pages_api_search/search.rb, line 10
def self.build_index(site)
  corpus_page = find_corpus_page(site.pages)
  raise 'Pages API corpus not found' if corpus_page == nil

  search_config = site.config['jekyll_pages_api_search']
  index_fields = JSON.generate(search_config['index_fields'] || {})
  input = "{\"corpus\": #{corpus_page.output}," \
    "\"indexFields\": #{index_fields}}"
  compile(input,
    JekyllPagesApi::PageWithoutAFile.new(site, site.source, '', INDEX_FILE))
end
compile(input, index_page) click to toggle source
# File lib/jekyll_pages_api_search/search.rb, line 26
def self.compile(input, index_page)
  compiler = open("|node #{COMPILE_SCRIPT}", File::RDWR)
  compiler.puts(input)
  compiler.close_write
  index_page.output = compiler.gets
  index_page
end
find_corpus_page(pages) click to toggle source
# File lib/jekyll_pages_api_search/search.rb, line 22
def self.find_corpus_page(pages)
  pages.each {|page| return page if page.name == 'pages.json'}
end