summaryrefslogtreecommitdiffstats
path: root/layouts/shortcodes
diff options
context:
space:
mode:
Diffstat (limited to 'layouts/shortcodes')
-rw-r--r--layouts/shortcodes/form-search.html56
1 files changed, 38 insertions, 18 deletions
diff --git a/layouts/shortcodes/form-search.html b/layouts/shortcodes/form-search.html
index f328f38..873c73a 100644
--- a/layouts/shortcodes/form-search.html
+++ b/layouts/shortcodes/form-search.html
@@ -22,32 +22,52 @@
<div id="search-results-body" class="post-list"></div>
</section>
-{{- $vendors := slice (resources.Get "js/vendor/lunr.js") -}}
-{{- $vendors = $vendors | append (resources.Get "js/vendor/lunr.multi.js" ) -}}
-{{- $vendors = $vendors | append (resources.Get "js/vendor/lunr.stemmer.support.js" ) -}}
+{{- $isProduction := (or (eq (getenv "HUGO_ENV") "production") (eq site.Params.env "production")) -}}
+
+{{- /* Add lunr.js. */ -}}
+{{- $lunrSearch := slice (resources.Get "js/vendor/lunr.js") -}}
+
+{{- /* Add lunr multilanguage support. */ -}}
+{{- $lunrSearch = $lunrSearch | append (resources.Get "js/vendor/lunr.multi.js" ) -}}
+{{- $lunrSearch = $lunrSearch | append (resources.Get "js/vendor/lunr.stemmer.support.js" ) -}}
{{- $lunrLangs := slice "de" "es" "fr" "it" "pt" "ru" -}}
{{- range $lunrLangs -}}
- {{ $vendors = $vendors | append (resources.Get (printf "js/vendor/lunr.%s.js" .) ) }}
+ {{ $lunrSearch = $lunrSearch | append (resources.Get (printf "js/vendor/lunr.%s.js" .) ) -}}
{{- end -}}
-{{- $vendors = $vendors | resources.Concat "js/lunr-bundle.js" -}}
-{{- if or (eq (getenv "HUGO_ENV") "production") (eq site.Params.env "production") }}
- {{- $vendors = $vendors | minify -}}
+{{- /* Build lunr. */ -}}
+{{- $lunrSearch = $lunrSearch | resources.Concat "js/lunr-bundle.js" -}}
+
+{{- if $isProduction -}}
+ {{- $lunrSearch = $lunrSearch | minify -}}
{{- end -}}
-{{- if not site.Params.assets.disable_fingerprinting -}}
- {{- $vendors = $vendors | fingerprint -}}
- <script src="{{ $vendors.RelPermalink }}" integrity="{{ $vendors.Data.Integrity }}"></script>
+
+{{- if or (site.Params.assets.disable_fingerprinting) (not $isProduction) }}
+ <script src="{{ $lunrSearch.RelPermalink }}"></script>
{{- else -}}
- <script src="{{ $vendors.RelPermalink }}"></script>
+ {{- $lunrSearch = $lunrSearch | fingerprint }}
+ <script src="{{ $lunrSearch.RelPermalink }}" integrity="{{ $lunrSearch.Data.Integrity }}"></script>
{{- end -}}
-{{- $search := resources.Get "js/search.js" -}}
-{{- if or (eq (getenv "HUGO_ENV") "production") (eq site.Params.env "production") }}
- {{- $search = $search | minify -}}
+{{- /* Configure search engine. */ -}}
+{{- $maxSummaryLength := site.Params.search.maxSummaryLength | default 100 -}}
+{{- $searchConfig := dict "indexURI" ("/index.json" | relLangURL) "maxSummaryLength" $maxSummaryLength -}}
+{{- $searchI18n := dict "enterTerm" (i18n "search_enter_term") "noResults" (i18n "search_no_results") -}}
+{{- $searchParams := dict "searchConfig" $searchConfig "i18n" $searchI18n -}}
+
+{{- $siteSearch := slice -}}
+{{- $siteSearch = $siteSearch | append (resources.Get "js/search.js") -}}
+{{- $siteSearch = $siteSearch | resources.Concat "js/search-bundle.js" -}}
+
+{{- if $isProduction -}}
+ {{- $siteSearch = $siteSearch | js.Build (dict "format" "iife" "params" $searchParams) | minify -}}
+{{ else }}
+ {{- $siteSearch = $siteSearch | js.Build (dict "format" "iife" "sourceMap" "inline" "params" $searchParams) -}}
{{- end -}}
-{{- if not site.Params.assets.disable_fingerprinting -}}
- {{- $search = $search | fingerprint -}}
- <script src="{{ $search.RelPermalink }}" integrity="{{ $search.Data.Integrity }}"></script>
+
+{{- if or (site.Params.assets.disable_fingerprinting) (not $isProduction) }}
+ <script src="{{ $siteSearch.RelPermalink }}"></script>
{{- else -}}
- <script src="{{ $search.RelPermalink }}"></script>
+ {{- $siteSearch = $siteSearch | fingerprint }}
+ <script src="{{ $siteSearch.RelPermalink }}" integrity="{{ $siteSearch.Data.Integrity }}"></script>
{{- end -}}