From 022338f3a30cd74086f0525118ac8eb5b22f6969 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Thu, 15 Feb 2018 16:25:41 -0500 Subject: [PATCH 01/10] Add basic support for Lunr and Algolia search --- _config.yml | 7 ++ _data/theme.yml | 3 + _includes/scripts.html | 13 ++- _includes/search-form.html | 13 +++ _includes/search/algolia-search-scripts.html | 51 +++++++++ _includes/search/lunr-search-scripts.html | 106 ++++++++++++++++++ _layouts/default.html | 17 ++- _sass/basically-basic.scss | 1 + _sass/basically-basic/_search.scss | 100 +++++++++++++++++ _sass/basically-basic/_utilities.scss | 11 +- .../utilities/_visibility.scss | 35 ++++++ assets/javascripts/lunr/lunr.da.min.js | 18 +++ assets/javascripts/lunr/lunr.de.min.js | 18 +++ assets/javascripts/lunr/lunr.du.min.js | 18 +++ assets/javascripts/lunr/lunr.es.min.js | 18 +++ assets/javascripts/lunr/lunr.fi.min.js | 18 +++ assets/javascripts/lunr/lunr.fr.min.js | 18 +++ assets/javascripts/lunr/lunr.hu.min.js | 18 +++ assets/javascripts/lunr/lunr.it.min.js | 18 +++ assets/javascripts/lunr/lunr.ja.min.js | 1 + assets/javascripts/lunr/lunr.jp.min.js | 1 + assets/javascripts/lunr/lunr.min.js | 6 + assets/javascripts/lunr/lunr.multi.min.js | 1 + assets/javascripts/lunr/lunr.no.min.js | 18 +++ assets/javascripts/lunr/lunr.pt.min.js | 18 +++ assets/javascripts/lunr/lunr.ro.min.js | 18 +++ assets/javascripts/lunr/lunr.ru.min.js | 18 +++ .../lunr/lunr.stemmer.support.min.js | 1 + assets/javascripts/lunr/lunr.sv.min.js | 18 +++ assets/javascripts/lunr/lunr.tr.min.js | 18 +++ assets/javascripts/main.js | 10 ++ assets/javascripts/search-data.json | 27 +++++ example/Gemfile | 3 +- example/_config.yml | 7 ++ 34 files changed, 658 insertions(+), 8 deletions(-) create mode 100644 _includes/search-form.html create mode 100644 _includes/search/algolia-search-scripts.html create mode 100644 _includes/search/lunr-search-scripts.html create mode 100644 _sass/basically-basic/_search.scss create mode 100644 _sass/basically-basic/utilities/_visibility.scss create mode 100644 assets/javascripts/lunr/lunr.da.min.js create mode 100644 assets/javascripts/lunr/lunr.de.min.js create mode 100644 assets/javascripts/lunr/lunr.du.min.js create mode 100644 assets/javascripts/lunr/lunr.es.min.js create mode 100644 assets/javascripts/lunr/lunr.fi.min.js create mode 100644 assets/javascripts/lunr/lunr.fr.min.js create mode 100644 assets/javascripts/lunr/lunr.hu.min.js create mode 100644 assets/javascripts/lunr/lunr.it.min.js create mode 100644 assets/javascripts/lunr/lunr.ja.min.js create mode 100644 assets/javascripts/lunr/lunr.jp.min.js create mode 100644 assets/javascripts/lunr/lunr.min.js create mode 100644 assets/javascripts/lunr/lunr.multi.min.js create mode 100644 assets/javascripts/lunr/lunr.no.min.js create mode 100644 assets/javascripts/lunr/lunr.pt.min.js create mode 100644 assets/javascripts/lunr/lunr.ro.min.js create mode 100644 assets/javascripts/lunr/lunr.ru.min.js create mode 100644 assets/javascripts/lunr/lunr.stemmer.support.min.js create mode 100644 assets/javascripts/lunr/lunr.sv.min.js create mode 100644 assets/javascripts/lunr/lunr.tr.min.js create mode 100644 assets/javascripts/search-data.json diff --git a/_config.yml b/_config.yml index 18da4f1..40af0d0 100644 --- a/_config.yml +++ b/_config.yml @@ -26,6 +26,13 @@ author: twitter_username: github_username: logo: # path of site logo, e.g. "/assets/images/logo.png" +search: # true, false (default) +search_full_content: false # true, false (default) +search_provider: # lunr (default), algolia +algolia: + application_id: # YOUR_APPLICATION_ID + index_name: # YOUR_INDEX_NAME + search_only_api_key: # YOUR_SEARCH_ONLY_API_KEY # Build settings markdown: kramdown diff --git a/_data/theme.yml b/_data/theme.yml index 89242ea..1e82c26 100644 --- a/_data/theme.yml +++ b/_data/theme.yml @@ -8,6 +8,9 @@ t: skip_content: "Skip to content" skip_footer: "Skip to footer" menu: "Menu" + search: "Search" + results_found: "Result(s) found" + search_placeholder_text: "Enter your search term..." home: "Home" newer: "Newer" older: "Older" diff --git a/_includes/scripts.html b/_includes/scripts.html index 85a2a21..08bbe61 100644 --- a/_includes/scripts.html +++ b/_includes/scripts.html @@ -2,4 +2,15 @@ {% include google-analytics.html %} {% endif %} - \ No newline at end of file + + + +{% if site.search %} + {%- assign search_provider = site.search_provider | default: "lunr" -%} + {%- case search_provider -%} + {%- when "lunr" -%} + {% include search/lunr-search-scripts.html %} + {%- when "algolia" -%} + {% include search/algolia-search-scripts.html %} + {%- endcase -%} +{% endif %} diff --git a/_includes/search-form.html b/_includes/search-form.html new file mode 100644 index 0000000..7c2cfeb --- /dev/null +++ b/_includes/search-form.html @@ -0,0 +1,13 @@ +
+ {% if site.search %} + {%- assign search_provider = site.search_provider | default: "lunr" -%} + {%- case search_provider -%} + {%- when "lunr" -%} + +
+ {%- when "algolia" -%} + +
+ {%- endcase -%} + {% endif %} +
diff --git a/_includes/search/algolia-search-scripts.html b/_includes/search/algolia-search-scripts.html new file mode 100644 index 0000000..42e3c1f --- /dev/null +++ b/_includes/search/algolia-search-scripts.html @@ -0,0 +1,51 @@ + + + + + + diff --git a/_includes/search/lunr-search-scripts.html b/_includes/search/lunr-search-scripts.html new file mode 100644 index 0000000..30e9d42 --- /dev/null +++ b/_includes/search/lunr-search-scripts.html @@ -0,0 +1,106 @@ +{%- assign lang = site.lang | slice: 0, 2 | default: "en" -%} + {%- case lang -%} + {%- when "da" -%} + {%- assign lang = "da" -%} + {%- when "de" -%} + {%- assign lang = "de" -%} + {%- when "du" -%} + {%- assign lang = "du" -%} + {-% when "es" -%} + {%- assign lang = "es" -%} + {%- when "fi" -%} + {%- assign lang = "fi" -%} + {%- when "fr" -%} + {%- assign lang = "fr" -%} + {%- when "hu" -%} + {%- assign lang = "hu" -%} + {%- when "it" -%} + {%- assign lang = "it" -%} + {%- when "ja" -%} + {%- assign lang = "ja" -%} + {%- when "jp" -%} + {%- assign lang = "jp" -%} + {%- when "no" -%} + {%- assign lang = "no" -%} + {%- when "pt" -%} + {%- assign lang = "pt" -%} + {%- when "ro" -%} + {%- assign lang = "ro" -%} + {%- when "ru" -%} + {%- assign lang = "ru" -%} + {%- when "sv" -%} + {%- assign lang = "sv" -%} + {%- when "tr" -%} + {%- assign lang = "tr" -%} + {%- else -%} + {%- assign lang = "en" -%} + {%- endcase -%} + + + {%- unless lang == "en" -%} + + + {%- endunless %} + diff --git a/_layouts/default.html b/_layouts/default.html index 4f7c575..238565b 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -19,6 +19,15 @@ + + {% if site.search %} + + {% endif %}