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