From 995f5161e814216599c1e05a84605df9066852ef Mon Sep 17 00:00:00 2001
From: Arnaud Levy <contact@arnaudlevy.com>
Date: Wed, 20 Sep 2023 18:06:23 +0200
Subject: [PATCH] test

---
 assets/sass/_theme/design-system/search.sass | 20 ++++++++++++++++++++
 assets/sass/_theme/hugo-osuny.sass           |  1 +
 config.yaml                                  |  2 ++
 layouts/_default/baseof.html                 |  1 +
 layouts/partials/head/csp.html               |  2 +-
 layouts/partials/header/search.html          | 10 ++++++++++
 6 files changed, 35 insertions(+), 1 deletion(-)
 create mode 100644 assets/sass/_theme/design-system/search.sass
 create mode 100644 layouts/partials/header/search.html

diff --git a/assets/sass/_theme/design-system/search.sass b/assets/sass/_theme/design-system/search.sass
new file mode 100644
index 00000000..b0817e9a
--- /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 8d5dfdd6..48ac95f6 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 ee53cb9d..3e44d24a 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 574bc71f..8bb31791 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 82d5cb22..c0dcee4d 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 00000000..4338f218
--- /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
-- 
GitLab