diff options
Diffstat (limited to 'layouts/shortcodes/form-search.html')
| -rw-r--r-- | layouts/shortcodes/form-search.html | 56 |
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 -}} |
