Class: AlSearch::SearchAssetsTag

Inherits:
Liquid::Tag
  • Object
show all
Defined in:
lib/al_search.rb

Instance Method Summary collapse

Instance Method Details

#render(context) ⇒ Object



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

def render(context)
  site = context.registers[:site]
  return '' unless site
  return '' unless site.config['search_enabled']

  baseurl = site.config['baseurl'] || ''
  payload = site.site_payload
  payload['page'] = context.registers[:page] || {}
  payload['paginator'] = context['paginator'] if context['paginator']

  template_path = File.expand_path('templates/search-data.liquid.js', __dir__)
  template = Liquid::Template.parse(File.read(template_path))
  search_data = template.render(payload, registers: context.registers)

  <<~HTML
    <script type="module" src="#{baseurl}/assets/al_search/js/search/ninja-keys.min.js"></script>
    <ninja-keys hideBreadcrumbs noAutoLoadMdIcons placeholder="Type to start searching"></ninja-keys>
    <script src="#{baseurl}/assets/al_search/js/search-setup.js"></script>
    <script>
    #{search_data}
    </script>
    <script src="#{baseurl}/assets/al_search/js/shortcut-key.js"></script>
  HTML
end