summaryrefslogtreecommitdiff
path: root/_includes/search-providers/google-custom-search-engine
diff options
context:
space:
mode:
Diffstat (limited to '_includes/search-providers/google-custom-search-engine')
-rw-r--r--_includes/search-providers/google-custom-search-engine/search.html21
-rw-r--r--_includes/search-providers/google-custom-search-engine/search.js33
2 files changed, 54 insertions, 0 deletions
diff --git a/_includes/search-providers/google-custom-search-engine/search.html b/_includes/search-providers/google-custom-search-engine/search.html
new file mode 100644
index 0000000..cf132ab
--- /dev/null
+++ b/_includes/search-providers/google-custom-search-engine/search.html
@@ -0,0 +1,21 @@
+{%- if site.search.google.custom_search_engine_id -%}
+ <div class="search search--dark search--google-custom-search-engine">
+ <div class="main">
+ <div class="content js-gcse">
+ <!-- <gcse:search enableAutoComplete="true" gname="search-box"></gcse:search>
+ <gcse:searchresults-only gname="results"></gcse:searchresults-only> -->
+ </div>
+ </div>
+ </div>
+ <script>
+ var gcse = document.getElementsByClassName('js-gcse')[0];
+ var gcseSearch = document.createElement('gcse:search');
+ gcseSearch.setAttribute('enableAutoComplete', 'true');
+ gcseSearch.setAttribute('gname', 'search-box');
+ var gcseSearchresults = document.createElement('gcse:searchresults-only');
+ gcseSearchresults.setAttribute('gname', 'results');
+ gcse.appendChild(gcseSearch);
+ gcse.appendChild(gcseSearchresults);
+ </script>
+ <script>{%- include search-providers/google-custom-search-engine/search.js -%}</script>
+{%- endif -%}
diff --git a/_includes/search-providers/google-custom-search-engine/search.js b/_includes/search-providers/google-custom-search-engine/search.js
new file mode 100644
index 0000000..09e5273
--- /dev/null
+++ b/_includes/search-providers/google-custom-search-engine/search.js
@@ -0,0 +1,33 @@
+var SOURCES = window.TEXT_VARIABLES.sources;
+window.Lazyload.js(SOURCES.jquery, function() {
+ /* global google */
+ var search = (window.search || (window.search = {}));
+ var searchBox, searchInput, clearIcon, searchModal;
+
+ search.clear = function() {
+ searchBox && searchBox.clearAllResults();
+ };
+ search.onShow = function() {
+ searchInput && searchInput.focus();
+ };
+ search.onHide = function() {
+ searchInput && searchInput.blur();
+ };
+
+ window.__gcse = {
+ callback: function() {
+ searchBox = google.search.cse.element.getElement('search-box');
+ searchInput = document.getElementById('gsc-i-id1');
+ clearIcon = document.getElementById('gs_cb50');
+ searchModal = search.searchModal;
+ searchModal && searchModal.$el && searchModal.$el.on('click', function(e) {
+ (e.target === this || e.target === clearIcon || e.target.className === 'gs-title') && searchModal.hide();
+ });
+ }
+ };
+ var cx = '{{ site.search.google.custom_search_engine_id }}'; // Insert your own Custom Search Engine ID here
+ var gcse = document.createElement('script'); gcse.type = 'text/javascript'; gcse.async = true;
+ gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
+ '//cse.google.com/cse.js?cx=' + cx;
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(gcse, s);
+});