| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 | /************************************************* *  Academic *  https://github.com/gcushen/hugo-academic * *  Algolia based search algorithm. **************************************************/if ((typeof instantsearch === 'function') && $('#search-box').length) {  function getTemplate(templateName) {    return document.querySelector(`#${templateName}-template`).innerHTML;  }  const options = {    appId: algoliaConfig.appId,    apiKey: algoliaConfig.apiKey,    indexName: algoliaConfig.indexName,    routing: true,    searchParameters: {      hitsPerPage: 10    },    searchFunction: function (helper) {      let searchResults = document.querySelector('#search-hits')      if (helper.state.query === '') {        searchResults.style.display = 'none';        return;      }      helper.search();      searchResults.style.display = 'block';    }  };  const search = instantsearch(options);  // Initialize search box.  search.addWidget(    instantsearch.widgets.searchBox({      container: '#search-box',      autofocus: false,      reset: true,      poweredBy: algoliaConfig.poweredBy,      placeholder: i18n.placeholder    })  );  // Initialize search results.  search.addWidget(    instantsearch.widgets.infiniteHits({      container: '#search-hits',      escapeHits: true,      templates: {        empty: '<div class="search-no-results">' + i18n.no_results + '</div>',        item: getTemplate('search-hit-algolia')      },      cssClasses: {        showmoreButton: 'btn btn-outline-primary'      }    })  );  // On render search results, localize the content type metadata.  search.on('render', function () {    $('.search-hit-type').each(function (index) {      let content_key = $(this).text();      if (content_key in content_type) {        $(this).text(content_type[content_key]);      }    });  });  // Start search.  search.start();}
 |