feat(search): allow complete section customization
This allows configuring the searchable sections and which sections show the search box. In addition the javascript is only included on pages where the search box is visible.
This commit is contained in:
parent
75d250b240
commit
00e4a7886e
|
@ -94,7 +94,13 @@ Source:
|
||||||
|
|
||||||
// https://discourse.gohugo.io/t/range-length-or-last-element/3803/2
|
// https://discourse.gohugo.io/t/range-length-or-last-element/3803/2
|
||||||
|
|
||||||
{{ $list := (where .Site.Pages "Section" "docs") -}}
|
{{ $list := slice }}
|
||||||
|
{{- if eq (len .Site.Params.options.searchSectionsIndex) 0 }}
|
||||||
|
{{- $list = (where .Site.Pages "Section" "docs") }}
|
||||||
|
{{- else }}
|
||||||
|
{{- $list = (where .Site.Pages "Type" "in" .Site.Params.options.searchSectionsIndex) }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
{{ $len := (len $list) -}}
|
{{ $len := (len $list) -}}
|
||||||
|
|
||||||
{{ range $index, $element := $list -}}
|
{{ range $index, $element := $list -}}
|
||||||
|
|
|
@ -83,6 +83,8 @@ lastMod = false
|
||||||
clipBoard = true
|
clipBoard = true
|
||||||
instantPage = true
|
instantPage = true
|
||||||
flexSearch = true
|
flexSearch = true
|
||||||
|
searchSectionsShow = []
|
||||||
|
searchSectionsIndex = []
|
||||||
darkMode = true
|
darkMode = true
|
||||||
bootStrapJs = true
|
bootStrapJs = true
|
||||||
breadCrumb = false
|
breadCrumb = false
|
||||||
|
|
|
@ -39,6 +39,8 @@
|
||||||
{{ $slice = $slice | append $flexSearch -}}
|
{{ $slice = $slice | append $flexSearch -}}
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
|
|
||||||
|
{{ $includeFlexSearch := and .Site.Params.options.flexSearch (or (eq (len .Site.Params.options.searchSectionsShow) 0) (in .Site.Params.options.searchSectionsShow .Section)) }}
|
||||||
|
|
||||||
{{ if .Site.Params.options.darkMode -}}
|
{{ if .Site.Params.options.darkMode -}}
|
||||||
{{ $darkMode := resources.Get "js/darkmode.js" -}}
|
{{ $darkMode := resources.Get "js/darkmode.js" -}}
|
||||||
{{ $darkMode := $darkMode | js.Build -}}
|
{{ $darkMode := $darkMode | js.Build -}}
|
||||||
|
@ -77,7 +79,7 @@
|
||||||
{{ with .Params.mermaid -}}
|
{{ with .Params.mermaid -}}
|
||||||
<script src="{{ $mermaid.RelPermalink }}" defer></script>
|
<script src="{{ $mermaid.RelPermalink }}" defer></script>
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
{{ if .Site.Params.options.flexSearch -}}
|
{{ if $includeFlexSearch -}}
|
||||||
<script src="{{ $index.RelPermalink }}" defer></script>
|
<script src="{{ $index.RelPermalink }}" defer></script>
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
{{ else -}}
|
{{ else -}}
|
||||||
|
@ -102,7 +104,7 @@
|
||||||
{{ with .Params.mermaid -}}
|
{{ with .Params.mermaid -}}
|
||||||
<script src="{{ $mermaid.RelPermalink }}" integrity="{{ $mermaid.Data.Integrity }}" crossorigin="anonymous" defer></script>
|
<script src="{{ $mermaid.RelPermalink }}" integrity="{{ $mermaid.Data.Integrity }}" crossorigin="anonymous" defer></script>
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
{{ if .Site.Params.options.flexSearch -}}
|
{{ if $includeFlexSearch -}}
|
||||||
<script src="{{ $index.Permalink }}" integrity="{{ $index.Data.Integrity }}" crossorigin="anonymous" defer></script>
|
<script src="{{ $index.Permalink }}" integrity="{{ $index.Data.Integrity }}" crossorigin="anonymous" defer></script>
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
|
|
|
@ -77,7 +77,7 @@
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
{{ if .Site.Params.options.flexSearch -}}
|
{{ if and .Site.Params.options.flexSearch (or (eq (len .Site.Params.options.searchSectionsShow) 0) (in .Site.Params.options.searchSectionsShow .Section)) -}}
|
||||||
<hr class="text-black-50 my-4 d-lg-none">
|
<hr class="text-black-50 my-4 d-lg-none">
|
||||||
<form class="doks-search position-relative flex-grow-1 ms-lg-auto me-lg-2">
|
<form class="doks-search position-relative flex-grow-1 ms-lg-auto me-lg-2">
|
||||||
<input id="search" class="form-control is-search" type="search" placeholder="Search docs..." aria-label="Search docs..." autocomplete="off">
|
<input id="search" class="form-control is-search" type="search" placeholder="Search docs..." aria-label="Search docs..." autocomplete="off">
|
||||||
|
|
Loading…
Reference in New Issue