diff --git a/assets/sass/_theme/design-system/search.sass b/assets/sass/_theme/design-system/search.sass new file mode 100644 index 0000000000000000000000000000000000000000..b0817e9ab6d683a927c6e57e27e39ee3af21ea78 --- /dev/null +++ b/assets/sass/_theme/design-system/search.sass @@ -0,0 +1,20 @@ +#search + top: $spacing1 + right: $spacing1 + position: absolute + z-index: 100 + max-width: 400px + .pagefind-ui + &__search-input + &__clear + &__drawer + z-index: 99 + &__results-area + position: fixed + background: $color-background + left: 0 + right: 0 + top: 200px + bottom: 0 + padding: $spacing3 + z-index: 101 \ No newline at end of file diff --git a/assets/sass/_theme/hugo-osuny.sass b/assets/sass/_theme/hugo-osuny.sass index 8d5dfdd6d760fd982e4692283bb12f8e98c80d2d..48ac95f61a7bc6820ce9e6373018047a4e720fc5 100644 --- a/assets/sass/_theme/hugo-osuny.sass +++ b/assets/sass/_theme/hugo-osuny.sass @@ -26,6 +26,7 @@ @import "design-system/image" @import "design-system/pagination" @import "design-system/nav" +@import "design-system/search" @import "design-system/table" @import "design-system/table_of_contents" @import "design-system/top" diff --git a/config.yaml b/config.yaml index ee53cb9dc369a97ba4867af98b77dd1f8f443a12..3e44d24ad8415a13651e50686c72ab4fa3bd1343 100644 --- a/config.yaml +++ b/config.yaml @@ -18,6 +18,8 @@ params: position: hero-start # hero-start | hero-end | after-hero | none summary: position: content # content | hero + search: + pagefind: false home: toc: disabled: true diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html index 574bc71f183bc048218172743c2231668a05c99c..8bb31791994a9ec487ad6c77f668003662c815d4 100644 --- a/layouts/_default/baseof.html +++ b/layouts/_default/baseof.html @@ -13,6 +13,7 @@ </head> <body class="{{ partial "GetBodyclass" . }}"> {{- partial "header/accessibility.html" -}} + {{- partial "header/search.html" . -}} {{- partial "header/header.html" . -}} <main{{ if .Params.contents }} class="page-with-blocks"{{ end }} id="main" tabindex="-1"> {{- block "main" . }}{{- end }} diff --git a/layouts/partials/head/csp.html b/layouts/partials/head/csp.html index 82d5cb2279874ffd35e4c4c0a7f0649caa1de7d8..c0dcee4dd71875f9820f45d19ccb8aa745632d6a 100644 --- a/layouts/partials/head/csp.html +++ b/layouts/partials/head/csp.html @@ -1,5 +1,5 @@ {{- with site.Data.website.external_domains -}} <meta - http-equiv="Content-Security-Policy" + http-equiv="-Content-Security-Policy" content="default-src 'self' {{ delimit . " " }} {{ if not hugo.IsProduction }}'unsafe-inline'{{ end }}" /> {{- end -}} \ No newline at end of file diff --git a/layouts/partials/header/search.html b/layouts/partials/header/search.html new file mode 100644 index 0000000000000000000000000000000000000000..4338f218ed4846305740a3199ea74feb04ba053e --- /dev/null +++ b/layouts/partials/header/search.html @@ -0,0 +1,10 @@ +{{ if site.Params.search.pagefind }} + <link href="/pagefind/pagefind-ui.css" rel="stylesheet"> + <script src="/pagefind/pagefind-ui.js"></script> + <div id="search"></div> + <script> + window.addEventListener('DOMContentLoaded', (event) => { + new PagefindUI({ element: "#search", showSubResults: true }); + }); + </script> +{{ end }} \ No newline at end of file