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/404.html |
новая жизнь блога
Diffstat (limited to 'themes/hugo-theme-stack/layouts/404.html')
-rw-r--r-- | themes/hugo-theme-stack/layouts/404.html | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/themes/hugo-theme-stack/layouts/404.html b/themes/hugo-theme-stack/layouts/404.html new file mode 100644 index 0000000..98f4a67 --- /dev/null +++ b/themes/hugo-theme-stack/layouts/404.html @@ -0,0 +1,45 @@ +{{ define "main" }} + <div class="not-found-card"> + <h1 class="article-title">{{ T "notFound.title" }}</h1> + <h2 class="article-subtitle">{{ T "notFound.subtitle" }}</h2> + </div> + + {{- $query := first 1 (where .Site.Pages "Layout" "==" "search") -}} + {{- $searchPage := index $query 0 -}} + + {{- with $searchPage -}} + <form action="{{ $searchPage.RelPermalink }}" class="search-form widget" {{ with .OutputFormats.Get "json" -}}data-json="{{ .Permalink }}" {{- end }}> + <p> + <label>{{ T "search.title" }}</label> + <input id="searchInput" name="keyword" required placeholder="{{ T `search.placeholder` }}" /> + + <button title="{{ T `search.title` }}"> + {{ partial "helper/icon" "search" }} + </button> + </p> + </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> + + <script> + const wrongUrl = new URL(window.location.href); + + /// Get the search keyword from the wrong URL by removing all slashes and dashes + const searchKeyword = wrongUrl.pathname.split(/[/|-]/).join(' ').trim(); + + document.getElementById('searchInput').setAttribute('value', searchKeyword); + </script> + {{- end -}} + {{ partialCached "footer/footer" . }} +{{ end }}
\ No newline at end of file |