mirror of
https://github.com/McShelby/hugo-theme-relearn.git
synced 2024-11-26 17:23:05 +00:00
search: create search index and page from template and content adapter #888
This commit is contained in:
parent
e1a1f01f4c
commit
d9e69db2f1
18 changed files with 129 additions and 103 deletions
6
content/_relearn/_index.md
Normal file
6
content/_relearn/_index.md
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
+++
|
||||||
|
[_build]
|
||||||
|
render = "never"
|
||||||
|
list = "never"
|
||||||
|
publishResources = false
|
||||||
|
+++
|
16
content/_relearn/searchpage/_content.gotmpl
Normal file
16
content/_relearn/searchpage/_content.gotmpl
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{{- if and (not .Site.Params.disableSearchIndex) (not .Site.Params.disableSearchPage) }}
|
||||||
|
{{- .EnableAllLanguages }}
|
||||||
|
{{- $url := trim (or .Site.Params.searchPageURL "search") "/" }}
|
||||||
|
{{- $content := dict
|
||||||
|
"mediaType" "text/markdown"
|
||||||
|
"value" "{{% _relearn_searchform %}}"
|
||||||
|
}}
|
||||||
|
{{- $page := dict
|
||||||
|
"content" $content
|
||||||
|
"kind" "page"
|
||||||
|
"path" "_relearn_searchpage"
|
||||||
|
"title" (T "Search")
|
||||||
|
"url" $url
|
||||||
|
}}
|
||||||
|
{{- .AddPage $page }}
|
||||||
|
{{- end }}
|
6
content/_relearn/searchpage/_index.md
Normal file
6
content/_relearn/searchpage/_index.md
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
+++
|
||||||
|
[_build]
|
||||||
|
render = "never"
|
||||||
|
list = "never"
|
||||||
|
publishResources = false
|
||||||
|
+++
|
|
@ -32,12 +32,9 @@ title = "Hugo Relearn Theme"
|
||||||
summaryLength = 10
|
summaryLength = 10
|
||||||
|
|
||||||
[outputs]
|
[outputs]
|
||||||
# add `search` to the home to support Lunr search; This is a mandatory setting
|
|
||||||
# for the side wide search functionality
|
|
||||||
# add `searchpage` to the home to create a dedicated searchpage
|
|
||||||
# add `print` to home, section and page to activate the feature to print whole
|
# add `print` to home, section and page to activate the feature to print whole
|
||||||
# chapters
|
# chapters
|
||||||
home = ["html", "rss", "print", "search", "searchpage"]
|
home = ["html", "rss", "print"]
|
||||||
section = ["html", "rss", "print"]
|
section = ["html", "rss", "print"]
|
||||||
page = ["html", "rss", "print"]
|
page = ["html", "rss", "print"]
|
||||||
|
|
||||||
|
|
|
@ -98,15 +98,6 @@ disableGeneratorVersion = false
|
||||||
# may not function correctly anymore.
|
# may not function correctly anymore.
|
||||||
disableRandomIds = false
|
disableRandomIds = false
|
||||||
|
|
||||||
# Multilanguage content.
|
|
||||||
# Default: not set
|
|
||||||
# If your pages contain further languages besides the main one used, add all
|
|
||||||
# those auxiliary languages here. This will create a search index with
|
|
||||||
# support for all used languages of your site.
|
|
||||||
# This is handy for example if you are writing in Spanish but have lots of
|
|
||||||
# source code on your page which typically uses English terminology.
|
|
||||||
additionalContentLanguage = [ "en" ]
|
|
||||||
|
|
||||||
# Additional code dependencies.
|
# Additional code dependencies.
|
||||||
# Default: See hugo.toml of the theme
|
# Default: See hugo.toml of the theme
|
||||||
# The theme provides a mechanism to load further JavaScript and CSS
|
# The theme provides a mechanism to load further JavaScript and CSS
|
||||||
|
@ -147,18 +138,57 @@ disableNextPrev = false
|
||||||
# in the pages frontmatter. This is useful if you want to give the opportunity
|
# in the pages frontmatter. This is useful if you want to give the opportunity
|
||||||
# for people to create merge request for your content.
|
# for people to create merge request for your content.
|
||||||
editURL = "https://github.com/McShelby/hugo-theme-relearn/edit/main/exampleSite/content/${FilePath}"
|
editURL = "https://github.com/McShelby/hugo-theme-relearn/edit/main/exampleSite/content/${FilePath}"
|
||||||
|
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
# Search
|
||||||
|
# These options modify various aspects of the search functionality.
|
||||||
|
|
||||||
|
# Disable the search.
|
||||||
|
# Default: false
|
||||||
|
# If the search is disabled, no search box will be displayed in the menu,
|
||||||
|
# nor in-page search, search popup or dedicated search page will be available.
|
||||||
|
# This will also cause the keyboard shortcut to be disabled.
|
||||||
|
disableSearch = false
|
||||||
|
|
||||||
|
# Disable the search index generation.
|
||||||
|
# Default: false
|
||||||
|
# `disableSearch=false` must be set to let the generation of the search index
|
||||||
|
# file to be affected by this option. If the search index is disabled, no
|
||||||
|
# search popup or dedicated search page will be available.
|
||||||
|
disableSearchIndex = false
|
||||||
|
|
||||||
|
# URL of the search index file relative to the language home.
|
||||||
|
# Default: "search_index.js"
|
||||||
|
# You have to set this option if your page already has a content file named
|
||||||
|
# `search_index.js` in the language home.
|
||||||
|
searchIndexURL = "search_index.js"
|
||||||
|
|
||||||
|
# Disable the dedicated search page.
|
||||||
|
# Default: false
|
||||||
|
# `disableSearch=false` and `disableSearchIndex=false` must be set to let the
|
||||||
|
# generation of the dedicated search page to be affected by this option.
|
||||||
|
disableSearchPage = false
|
||||||
|
|
||||||
|
# URL of the dedicated search page relative to the language home.
|
||||||
|
# Default: "search"
|
||||||
|
# In its basic form the search page URL is named the same for all languages
|
||||||
|
# but you are free to override it in each language options to localised the
|
||||||
|
# URL. You also need to set this option if your page already has a content
|
||||||
|
# page named `search`.
|
||||||
|
searchPageURL = "search"
|
||||||
|
|
||||||
|
# Multilanguage content.
|
||||||
|
# Default: not set
|
||||||
|
# If the search index is enabled and your pages contain further languages
|
||||||
|
# besides the main one used, add all those auxiliary languages here. This
|
||||||
|
# will create a search index with support for all used languages of your site.
|
||||||
|
# This is handy for example if you are writing in Spanish but have lots of
|
||||||
|
# source code on your page which typically uses English terminology.
|
||||||
|
additionalContentLanguage = [ "en" ]
|
||||||
|
|
||||||
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
# Menu
|
# Menu
|
||||||
# These options modify the menu appearance.
|
# These options modify the menu appearance.
|
||||||
|
|
||||||
# Hide the search box.
|
|
||||||
# Default: false
|
|
||||||
# If the search box is disabled, the search functionality is disabled too.
|
|
||||||
# This will also cause the keyboard shortcut to be disabled and the dedicated
|
|
||||||
# search page is not linked although it mighty be configured.
|
|
||||||
disableSearch = false
|
|
||||||
|
|
||||||
# Hide the Home entry.
|
# Hide the Home entry.
|
||||||
# Default: false
|
# Default: false
|
||||||
# If shown, a Home button will appear below the search bar and the main menu.
|
# If shown, a Home button will appear below the search bar and the main menu.
|
||||||
|
|
|
@ -61,7 +61,7 @@ If not already present, add the following lines in your `hugo.toml` file.
|
||||||
|
|
||||||
{{< multiconfig file=hugo >}}
|
{{< multiconfig file=hugo >}}
|
||||||
[outputs]
|
[outputs]
|
||||||
home = ["html", "rss", "search"]
|
home = ["html", "rss"]
|
||||||
{{< /multiconfig >}}
|
{{< /multiconfig >}}
|
||||||
|
|
||||||
This will generate a search index file at the root of your public folder ready to be consumed by the Lunr search library.
|
This will generate a search index file at the root of your public folder ready to be consumed by the Lunr search library.
|
||||||
|
@ -72,7 +72,7 @@ You can add a dedicated search page for your page by adding the `searchpage` out
|
||||||
|
|
||||||
{{< multiconfig file=hugo >}}
|
{{< multiconfig file=hugo >}}
|
||||||
[outputs]
|
[outputs]
|
||||||
home = ["html", "rss", "search", "searchpage"]
|
home = ["html", "rss"]
|
||||||
{{< /multiconfig >}}
|
{{< /multiconfig >}}
|
||||||
|
|
||||||
You can access this page by either clicking on the magnifier glass or by typing some search term and pressing `ENTER` inside of the menu's search box .
|
You can access this page by either clicking on the magnifier glass or by typing some search term and pressing `ENTER` inside of the menu's search box .
|
||||||
|
@ -91,7 +91,7 @@ You can activate print support to add the capability to print whole chapters or
|
||||||
|
|
||||||
{{< multiconfig file=hugo >}}
|
{{< multiconfig file=hugo >}}
|
||||||
[outputs]
|
[outputs]
|
||||||
home = ["html", "rss", "print", "search"]
|
home = ["html", "rss", "print"]
|
||||||
section = ["html", "rss", "print"]
|
section = ["html", "rss", "print"]
|
||||||
page = ["html", "rss", "print"]
|
page = ["html", "rss", "print"]
|
||||||
{{< /multiconfig >}}
|
{{< /multiconfig >}}
|
||||||
|
|
16
hugo.toml
16
hugo.toml
|
@ -15,22 +15,6 @@
|
||||||
permalinkable = false
|
permalinkable = false
|
||||||
noUgly = true
|
noUgly = true
|
||||||
|
|
||||||
[outputFormats.search]
|
|
||||||
name= "search"
|
|
||||||
baseName = "index.search"
|
|
||||||
isPlainText = true
|
|
||||||
mediaType = 'text/javascript'
|
|
||||||
permalinkable = false
|
|
||||||
noUgly = true
|
|
||||||
|
|
||||||
[outputFormats.searchpage]
|
|
||||||
name= "searchpage"
|
|
||||||
baseName = "search"
|
|
||||||
isHTML = true
|
|
||||||
mediaType = 'text/html'
|
|
||||||
permalinkable = false
|
|
||||||
noUgly = true
|
|
||||||
|
|
||||||
[params.relearn.dependencies]
|
[params.relearn.dependencies]
|
||||||
[params.relearn.dependencies.mathjax]
|
[params.relearn.dependencies.mathjax]
|
||||||
name = "MathJax"
|
name = "MathJax"
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
{{- $ret := path.Base (strings.TrimSuffix (path.Ext .) .) }}
|
|
||||||
{{- return $ret }}
|
|
|
@ -1,12 +1,6 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
{{- $format := partial "get-format.hugo" . }}
|
{{- $format := partial "get-format.hugo" . }}
|
||||||
{{- $outputFormat := partial "output-format.hugo" (dict "page" . "format" $format) }}
|
{{- $outputFormat := partial "output-format.hugo" (dict "page" . "format" $format) }}
|
||||||
{{- $basename := "index" }}
|
|
||||||
{{- if eq .Kind "home" }}
|
|
||||||
{{- if eq $outputFormat "searchpage" }}
|
|
||||||
{{- $basename = partial "BaseName.hugo" $format.RelPermalink }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if eq . .Site.Sites.First.Home }}
|
{{- if eq . .Site.Sites.First.Home }}
|
||||||
{{- $hugoVersion := "0.121.0" }}
|
{{- $hugoVersion := "0.121.0" }}
|
||||||
{{- if lt hugo.Version $hugoVersion }}
|
{{- if lt hugo.Version $hugoVersion }}
|
||||||
|
@ -27,9 +21,9 @@
|
||||||
{{- if .IsTranslated -}}
|
{{- if .IsTranslated -}}
|
||||||
{{- range $index, $trans := .AllTranslations }}
|
{{- range $index, $trans := .AllTranslations }}
|
||||||
{{- if eq $index 0 }}
|
{{- if eq $index 0 }}
|
||||||
<link href="{{ partial "relLangPrettyUglyURL.hugo" (dict "to" . "abs" true "basename" $basename) }}" rel="alternate" hreflang="x-default">
|
<link href="{{ partial "relLangPrettyUglyURL.hugo" (dict "to" . "abs" true) }}" rel="alternate" hreflang="x-default">
|
||||||
{{- end }}
|
{{- end }}
|
||||||
<link href="{{ partial "relLangPrettyUglyURL.hugo" (dict "to" . "abs" true "basename" $basename) }}" rel="alternate" hreflang="{{ .Language.LanguageCode }}">
|
<link href="{{ partial "relLangPrettyUglyURL.hugo" (dict "to" . "abs" true) }}" rel="alternate" hreflang="{{ .Language.LanguageCode }}">
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
|
@ -37,10 +31,8 @@
|
||||||
{{- else }}
|
{{- else }}
|
||||||
{{- range .AlternativeOutputFormats }}
|
{{- range .AlternativeOutputFormats }}
|
||||||
{{- if eq .Rel "canonical" }}
|
{{- if eq .Rel "canonical" }}
|
||||||
{{ (printf $link (partial "relLangPrettyUglyURL.hugo" (dict "to" . "abs" true "basename" $basename)) .Rel .MediaType.Type ($title | htmlEscape)) | safeHTML }}
|
{{ (printf $link (partial "relLangPrettyUglyURL.hugo" (dict "to" . "abs" true)) .Rel .MediaType.Type ($title | htmlEscape)) | safeHTML }}
|
||||||
{{- else if eq $outputFormat "searchpage" }}
|
{{- else }}
|
||||||
{{- else if eq .Name "searchpage" }}
|
|
||||||
{{- else if ne .Name "search" }}
|
|
||||||
{{ (printf $link (partial "relLangPrettyUglyURL.hugo" (dict "to" .)) .Rel .MediaType.Type ($title | htmlEscape)) | safeHTML }}
|
{{ (printf $link (partial "relLangPrettyUglyURL.hugo" (dict "to" .)) .Rel .MediaType.Type ($title | htmlEscape)) | safeHTML }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
|
@ -1,13 +1,5 @@
|
||||||
|
|
||||||
{{- $showvisitedlinks := .Site.Params.showVisitedLinks }}
|
{{- $showvisitedlinks := .Site.Params.showVisitedLinks }}
|
||||||
{{- $basename := "index" }}
|
|
||||||
{{- if eq .Kind "home" }}
|
|
||||||
{{- $format := partial "get-format.hugo" . }}
|
|
||||||
{{- $outputFormat := partial "output-format.hugo" (dict "page" . "format" $format) }}
|
|
||||||
{{- if eq $outputFormat "searchpage" }}
|
|
||||||
{{- $basename = partial "BaseName.hugo" $format.RelPermalink }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
<aside id="R-sidebar" class="default-animation{{ if $showvisitedlinks }} showVisitedLinks{{ end }}">
|
<aside id="R-sidebar" class="default-animation{{ if $showvisitedlinks }} showVisitedLinks{{ end }}">
|
||||||
{{- $currentNode := . }}
|
{{- $currentNode := . }}
|
||||||
<div id="R-header-topbar" class="default-animation"></div>
|
<div id="R-header-topbar" class="default-animation"></div>
|
||||||
|
@ -15,9 +7,7 @@
|
||||||
<div id="R-header" class="default-animation">
|
<div id="R-header" class="default-animation">
|
||||||
{{ partial "logo.html" . }}
|
{{ partial "logo.html" . }}
|
||||||
</div>
|
</div>
|
||||||
{{- if not .Site.Params.disableSearch }}
|
|
||||||
{{ partial "search.html" . }}
|
{{ partial "search.html" . }}
|
||||||
{{- end }}
|
|
||||||
</div>
|
</div>
|
||||||
<div id="R-homelinks" class="default-animation{{ if not .Site.Params.disableLandingPageButton }} homelinks{{ end }}">
|
<div id="R-homelinks" class="default-animation{{ if not .Site.Params.disableLandingPageButton }} homelinks{{ end }}">
|
||||||
{{- if not .Site.Params.disableLandingPageButton }}
|
{{- if not .Site.Params.disableLandingPageButton }}
|
||||||
|
@ -79,7 +69,7 @@
|
||||||
{{- $page := .Page }}
|
{{- $page := .Page }}
|
||||||
{{- $pageLang := .Page.Language.Lang }}
|
{{- $pageLang := .Page.Language.Lang }}
|
||||||
{{- range .Page.AllTranslations }}
|
{{- range .Page.AllTranslations }}
|
||||||
<option id="R-select-language-{{ .Language.Lang }}" value="#R-select-language-{{ .Language.Lang }}" data-url="{{ partial "relLangPrettyUglyURL.hugo" (dict "to" . "basename" $basename) }}" lang="{{ .Language.LanguageCode }}"{{ if eq $pageLang .Language.Lang }} selected{{ end }}>{{ .Language.LanguageName }}</option>
|
<option id="R-select-language-{{ .Language.Lang }}" value="#R-select-language-{{ .Language.Lang }}" data-url="{{ partial "relLangPrettyUglyURL.hugo" (dict "to" .) }}" lang="{{ .Language.LanguageCode }}"{{ if eq $pageLang .Language.Lang }} selected{{ end }}>{{ .Language.LanguageName }}</option>
|
||||||
{{- end }}
|
{{- end }}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,13 +1,5 @@
|
||||||
{{- /* based on Hugo 0.125.5 opengraph.html */}}
|
{{- /* based on Hugo 0.125.5 opengraph.html */}}
|
||||||
{{- $basename := "index" }}
|
<meta property="og:url" content="{{ partial "relLangPrettyUglyURL.hugo" (dict "to" . "abs" true) }}">
|
||||||
{{- if eq .Kind "home" }}
|
|
||||||
{{- $format := partial "get-format.hugo" . }}
|
|
||||||
{{- $outputFormat := partial "output-format.hugo" (dict "page" . "format" $format) }}
|
|
||||||
{{- if eq $outputFormat "searchpage" }}
|
|
||||||
{{- $basename = partial "BaseName.hugo" $format.RelPermalink }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
<meta property="og:url" content="{{ partial "relLangPrettyUglyURL.hugo" (dict "to" . "abs" true "basename" $basename) }}">
|
|
||||||
|
|
||||||
{{- with site.Title | plainify }}
|
{{- with site.Title | plainify }}
|
||||||
<meta property="og:site_name" content="{{ . }}">
|
<meta property="og:site_name" content="{{ . }}">
|
||||||
|
|
|
@ -11,14 +11,6 @@
|
||||||
|
|
||||||
{{- if eq .Kind "home" }}
|
{{- if eq .Kind "home" }}
|
||||||
{{- $title = $title | default $siteTitle }}
|
{{- $title = $title | default $siteTitle }}
|
||||||
{{- $outputFormat := $.outputFormat }}
|
|
||||||
{{- if not $outputFormat }}
|
|
||||||
{{- $format := $.format | default (partial "get-format.hugo" .) }}
|
|
||||||
{{- $outputFormat = $.outputFormat | default (partial "output-format.hugo" (dict "page" . "format" $format)) }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if eq $outputFormat "searchpage" }}
|
|
||||||
{{- $title = T "Search" }}
|
|
||||||
{{- end }}
|
|
||||||
{{- else if eq .Kind "taxonomy" }}
|
{{- else if eq .Kind "taxonomy" }}
|
||||||
{{- $title = default (default .Data.Plural (i18n .Data.Plural)) .Params.Title }}
|
{{- $title = default (default .Data.Plural (i18n .Data.Plural)) .Params.Title }}
|
||||||
{{- else if eq .Kind "term" }}
|
{{- else if eq .Kind "term" }}
|
||||||
|
|
|
@ -1,12 +1,26 @@
|
||||||
|
{{- if not .Site.Params.disableSearch }}
|
||||||
|
{{- $assetBusting := partialCached "assetbusting.hugo" . }}
|
||||||
{{- $link := "" }}
|
{{- $link := "" }}
|
||||||
{{- with .Site.Home.OutputFormats.Get "json" }}
|
{{- with .Site.Home.OutputFormats.Get "json" }}
|
||||||
{{- warnf "UNSUPPORTED usage of 'json' output format found, use 'search' instead; see https://mcshelby.github.io/hugo-theme-relearn/basics/migration#600" }}
|
{{- warnf "UNSUPPORTED usage of 'json' output format found, use 'search' instead; see https://mcshelby.github.io/hugo-theme-relearn/basics/migration#600" }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .Site.Home.OutputFormats.Get "search" }}
|
|
||||||
{{- with .Site.Home.OutputFormats.Get "searchpage" }}
|
{{- with .Site.Home.OutputFormats.Get "searchpage" }}
|
||||||
|
{{- warnf "UNSUPPORTED usage of 'searchpage' output format found, remove it from your config; see https://mcshelby.github.io/hugo-theme-relearn/basics/migration#700" }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if not .Site.Params.disableSearchIndex }}
|
||||||
|
{{- $url := path.Join .Site.LanguagePrefix (trim (or .Site.Params.searchIndexURL "search_index.js") "/") }}
|
||||||
|
{{- $templateres := resources.Get "_relearn_search_index.js" }}
|
||||||
|
{{- $resultres := $templateres | resources.ExecuteAsTemplate $url .Site.Home }}
|
||||||
|
{{- /* the following code causes Hugo to generate our file - although it is in comments */}}<!-- {{ $resultres.RelPermalink }} -->
|
||||||
|
<script>
|
||||||
|
window.index_js_url={{ (printf "%s%s" $url $assetBusting) | relLangURL }};
|
||||||
|
</script>
|
||||||
|
{{- if not .Site.Params.disableSearchPage }}
|
||||||
|
{{- with .Site.GetPage "_relearn_searchpage" }}
|
||||||
{{- $link = partial "relLangPrettyUglyURL.hugo" (dict "to" .) }}
|
{{- $link = partial "relLangPrettyUglyURL.hugo" (dict "to" .) }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
<search>{{ if $link }}<form action="{{ $link }}" method="get">{{ end }}
|
<search>{{ if $link }}<form action="{{ $link }}" method="get">{{ end }}
|
||||||
<div class="searchbox default-animation">
|
<div class="searchbox default-animation">
|
||||||
{{ if $link }}<button class="search-detail" type="submit" title="{{ T "Search" }} (CTRL+ALT+f)">{{ end }}<i class="fas fa-search"{{ if not $link }} title="{{ T "Search" }} (CTRL+ALT+f)"{{ end }}></i>{{ if $link }}</button>{{ end }}
|
{{ if $link }}<button class="search-detail" type="submit" title="{{ T "Search" }} (CTRL+ALT+f)">{{ end }}<i class="fas fa-search"{{ if not $link }} title="{{ T "Search" }} (CTRL+ALT+f)"{{ end }}></i>{{ if $link }}</button>{{ end }}
|
||||||
|
@ -15,7 +29,6 @@
|
||||||
<button class="search-clear" type="button" data-search-clear="" title="{{ T "Clear-search" }}"><i class="fas fa-times" title="{{ T "Clear-search" }}"></i></button>
|
<button class="search-clear" type="button" data-search-clear="" title="{{ T "Clear-search" }}"><i class="fas fa-times" title="{{ T "Clear-search" }}"></i></button>
|
||||||
</div>
|
</div>
|
||||||
{{ if $link }}</form>{{ end }}</search>
|
{{ if $link }}</form>{{ end }}</search>
|
||||||
{{- $assetBusting := partialCached "assetbusting.hugo" . }}
|
|
||||||
{{- $pageBaseLang := replaceRE "([a-z]+).*" "${1}" .Page.Language.LanguageCode }}
|
{{- $pageBaseLang := replaceRE "([a-z]+).*" "${1}" .Page.Language.LanguageCode }}
|
||||||
{{- $contentlangs := (union (slice | append (.Site.Params.additionalContentLanguage | default slice)) (slice $pageBaseLang)) }}
|
{{- $contentlangs := (union (slice | append (.Site.Params.additionalContentLanguage | default slice)) (slice $pageBaseLang)) }}
|
||||||
{{- $quotedcontentlangs := slice }}
|
{{- $quotedcontentlangs := slice }}
|
||||||
|
@ -51,3 +64,4 @@
|
||||||
<script src="{{ $file | relURL}}{{ $assetBusting }}" defer></script>
|
<script src="{{ $file | relURL}}{{ $assetBusting }}" defer></script>
|
||||||
{{- end }}
|
{{- end }}
|
||||||
<script src="{{ "js/search.js" | relURL }}{{ $assetBusting }}" defer></script>
|
<script src="{{ "js/search.js" | relURL }}{{ $assetBusting }}" defer></script>
|
||||||
|
{{- end }}
|
|
@ -32,9 +32,6 @@
|
||||||
window.relearn.absBaseUri='{{ replaceRE "/*$" "" .Site.BaseURL | safeJS }}';
|
window.relearn.absBaseUri='{{ replaceRE "/*$" "" .Site.BaseURL | safeJS }}';
|
||||||
window.relearn.disableAnchorCopy={{ printf "%t" (eq .Site.Params.disableAnchorCopy true) | safeJS }};
|
window.relearn.disableAnchorCopy={{ printf "%t" (eq .Site.Params.disableAnchorCopy true) | safeJS }};
|
||||||
window.relearn.disableAnchorScrolling={{ printf "%t" (eq .Site.Params.disableAnchorScrolling true) | safeJS }};
|
window.relearn.disableAnchorScrolling={{ printf "%t" (eq .Site.Params.disableAnchorScrolling true) | safeJS }};
|
||||||
{{- with .Site.Home.OutputFormats.Get "search" }}
|
|
||||||
window.index_js_url={{ (printf "index.search.js%s" $assetBusting) | relLangURL }};
|
|
||||||
{{- end }}
|
|
||||||
{{ "// variant stuff" | safeJS }}
|
{{ "// variant stuff" | safeJS }}
|
||||||
{{- $quotedthemevariants := slice }}
|
{{- $quotedthemevariants := slice }}
|
||||||
{{- range $themevariants }}
|
{{- range $themevariants }}
|
||||||
|
|
|
@ -9,13 +9,7 @@
|
||||||
{{- $endarrow = "🡐" }}
|
{{- $endarrow = "🡐" }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- $next := .Scratch.Get "relearnNextPage" }}
|
{{- $next := .Scratch.Get "relearnNextPage" }}
|
||||||
{{- if eq .Page.Kind "home" }}
|
{{- if eq .Page.Kind "term" }}
|
||||||
{{- $format := partial "get-format.hugo" .Page }}
|
|
||||||
{{- $outputFormat := partial "output-format.hugo" (dict "page" .Page "format" $format) }}
|
|
||||||
{{- if eq $outputFormat "searchpage" }}
|
|
||||||
{{- $next = "" }}
|
|
||||||
{{- end }}
|
|
||||||
{{- else if eq .Page.Kind "term" }}
|
|
||||||
{{- /* go to next term page */}}
|
{{- /* go to next term page */}}
|
||||||
{{- $taxonomy_page := .Site.GetPage .Data.Plural }}
|
{{- $taxonomy_page := .Site.GetPage .Data.Plural }}
|
||||||
{{- $pages := partialCached "partials/pageHelper/taxonomyPages.html" $taxonomy_page $taxonomy_page }}
|
{{- $pages := partialCached "partials/pageHelper/taxonomyPages.html" $taxonomy_page $taxonomy_page }}
|
||||||
|
|
|
@ -9,13 +9,7 @@
|
||||||
{{- $startarrow = "🡒" }}
|
{{- $startarrow = "🡒" }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- $prev := .Scratch.Get "relearnPrevPage" }}
|
{{- $prev := .Scratch.Get "relearnPrevPage" }}
|
||||||
{{- if eq .Page.Kind "home" }}
|
{{- if eq .Page.Kind "term" }}
|
||||||
{{- $format := partial "get-format.hugo" .Page }}
|
|
||||||
{{- $outputFormat := partial "output-format.hugo" (dict "page" .Page "format" $format) }}
|
|
||||||
{{- if eq $outputFormat "searchpage" }}
|
|
||||||
{{- $prev = .Site.Home }}
|
|
||||||
{{- end }}
|
|
||||||
{{- else if eq .Page.Kind "term" }}
|
|
||||||
{{- /* go to previous term page or taxonomy page if it is the first term */}}
|
{{- /* go to previous term page or taxonomy page if it is the first term */}}
|
||||||
{{- $taxonomy_page := .Site.GetPage .Data.Plural }}
|
{{- $taxonomy_page := .Site.GetPage .Data.Plural }}
|
||||||
{{- $pages := partialCached "partials/pageHelper/taxonomyPages.html" $taxonomy_page $taxonomy_page }}
|
{{- $pages := partialCached "partials/pageHelper/taxonomyPages.html" $taxonomy_page $taxonomy_page }}
|
||||||
|
|
24
layouts/shortcodes/_relearn_searchform.html
Normal file
24
layouts/shortcodes/_relearn_searchform.html
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
{{/*
|
||||||
|
This is an internal shortcode used for the dedicated search page;
|
||||||
|
it is undocumented and not be meant to be used in your content files!
|
||||||
|
*/ -}}
|
||||||
|
<search>
|
||||||
|
<form action="javascript:triggerSearch()">
|
||||||
|
<div class="searchform">
|
||||||
|
<label class="a11y-only" for="R-search-by-detail">{{ T "Search" }}</label>
|
||||||
|
<input data-search-input id="R-search-by-detail" class="search-by" name="search-by" type="search" placeholder="{{ T "Search-placeholder" }}">
|
||||||
|
{{- partial "shortcodes/button.html" (dict
|
||||||
|
"page" .Page
|
||||||
|
"type" "submit"
|
||||||
|
"style" "secondary"
|
||||||
|
"icon" "search"
|
||||||
|
"content" (T "Search")
|
||||||
|
)}}
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</search>
|
||||||
|
<div class="searchhint">
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div id="R-searchresults">
|
||||||
|
</div>
|
Loading…
Reference in a new issue