Class: Jekyll::ClientSearch::RuntimeConfigPage

Inherits:
PageWithoutAFile
  • Object
show all
Defined in:
lib/jekyll/client_search/runtime_config_page.rb

Overview

Generates browser runtime settings shared by all search adapters.

Instance Method Summary collapse

Constructor Details

#initialize(site, configuration) ⇒ RuntimeConfigPage

Returns a new instance of RuntimeConfigPage.



7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/jekyll/client_search/runtime_config_page.rb', line 7

def initialize(site, configuration)
  super(site, site.source, "assets", "search-runtime-config.js")
  self.data = { "layout" => nil, "sitemap" => false }
  defaults = {
    "indexUrl" => index_url(site, configuration.output),
    "liveSearch" => configuration.live_search_config
  }
  defaults["relatedUrl"] = index_url(site, configuration.related_output) if configuration.related_enabled?
  json = JSON.generate(defaults)
  self.content = "window.clientSearchConfig = (function (generated, existing) {" \
                 "var liveSearch = Object.assign({}, generated.liveSearch, existing.liveSearch || {});" \
                 "return Object.assign(generated, existing, { liveSearch: liveSearch });" \
                 "}(#{json}, window.clientSearchConfig || {}));\n"
end