diff options
author | Alexander Neonxp Kiryukhin <i@neonxp.ru> | 2024-11-03 20:08:36 +0300 |
---|---|---|
committer | Alexander Neonxp Kiryukhin <i@neonxp.ru> | 2024-11-03 20:08:36 +0300 |
commit | 59c7d4567380d1a9c80e96eb958fdbdd512ce006 (patch) | |
tree | 65410cfc10dbc7d060ec23be110662d9b7f6b0e9 /themes/hugo-theme-stack/layouts/page |
новая жизнь блога
Diffstat (limited to 'themes/hugo-theme-stack/layouts/page')
-rw-r--r-- | themes/hugo-theme-stack/layouts/page/search.html | 33 | ||||
-rw-r--r-- | themes/hugo-theme-stack/layouts/page/search.json | 26 |
2 files changed, 59 insertions, 0 deletions
diff --git a/themes/hugo-theme-stack/layouts/page/search.html b/themes/hugo-theme-stack/layouts/page/search.html new file mode 100644 index 0000000..fbfb74d --- /dev/null +++ b/themes/hugo-theme-stack/layouts/page/search.html @@ -0,0 +1,33 @@ +{{ define "body-class" }}template-search{{ end }} +{{ define "head" }} + {{- with .OutputFormats.Get "json" -}} + <link rel="preload" href="{{ .RelPermalink }}" as="fetch" crossorigin="anonymous"> + {{- end -}} +{{ end }} +{{ define "main" }} +<form action="{{ .RelPermalink }}" class="search-form"{{ with .OutputFormats.Get "json" -}} data-json="{{ .RelPermalink }}"{{- end }}> + <p> + <label>{{ T "search.title" }}</label> + <input name="keyword" placeholder="{{ T `search.placeholder` }}" /> + </p> + + <button title="{{ T `search.title` }}"> + {{ partial "helper/icon" "search" }} + </button> +</form> + +<div class="search-result"> + <h3 class="search-result--title section-title"></h3> + <div class="search-result--list article-list--compact"></div> +</div> + +<script> + window.searchResultTitleTemplate = "{{ T `search.resultTitle` }}" +</script> + +{{- $opts := dict "minify" hugo.IsProduction "JSXFactory" "createElement" -}} +{{- $searchScript := resources.Get "ts/search.tsx" | js.Build $opts -}} +<script type="text/javascript" src="{{ $searchScript.RelPermalink }}" defer></script> + +{{ partialCached "footer/footer" . }} +{{ end }}
\ No newline at end of file diff --git a/themes/hugo-theme-stack/layouts/page/search.json b/themes/hugo-theme-stack/layouts/page/search.json new file mode 100644 index 0000000..5d4e627 --- /dev/null +++ b/themes/hugo-theme-stack/layouts/page/search.json @@ -0,0 +1,26 @@ +{{- $pages := where .Site.RegularPages "Type" "in" .Site.Params.mainSections -}} +{{- $notHidden := where .Site.RegularPages "Params.hidden" "!=" true -}} +{{- $filtered := ($pages | intersect $notHidden) -}} + +{{- $result := slice -}} + +{{- range $filtered -}} + {{- $data := dict "title" .Title "date" .Date "permalink" .Permalink "content" (.Plain) -}} + + {{- $image := partialCached "helper/image" (dict "Context" . "Type" "articleList") .RelPermalink "articleList" -}} + {{- if $image.exists -}} + {{- $imagePermalink := "" -}} + {{- if and $image.resource (default true .Page.Site.Params.imageProcessing.cover.enabled) -}} + {{- $thumbnail := $image.resource.Fill "120x120" -}} + {{- $imagePermalink = (absURL $thumbnail.Permalink) -}} + {{- else -}} + {{- $imagePermalink = $image.permalink -}} + {{- end -}} + + {{- $data = merge $data (dict "image" (absURL $imagePermalink)) -}} + {{- end -}} + + {{- $result = $result | append $data -}} +{{- end -}} + +{{ jsonify $result }}
\ No newline at end of file |