diff --git a/astro.config.mjs b/astro.config.mjs
index 63295c2..1ec2e4e 100644
--- a/astro.config.mjs
+++ b/astro.config.mjs
@@ -45,6 +45,10 @@ export default defineConfig({
components: {
// Override the default `Head` component to add our page tracking.
Head: './src/components/starlight/Head.astro',
+ Header: './src/components/starlight/Header.astro',
+ // Boost schema reference pages in Pagefind results.
+ MarkdownContent: './src/components/starlight/MarkdownContent.astro',
+ PageTitle: './src/components/starlight/PageTitle.astro',
// Override the default `SiteTitle` component to link to both firegiant.com and docs.firegiant.com.
SiteTitle: './src/components/starlight/SiteTitle.astro',
},
diff --git a/src/components/starlight/Header.astro b/src/components/starlight/Header.astro
new file mode 100644
index 0000000..58bc454
--- /dev/null
+++ b/src/components/starlight/Header.astro
@@ -0,0 +1,88 @@
+---
+import config from 'virtual:starlight/user-config';
+
+import LanguageSelect from 'virtual:starlight/components/LanguageSelect';
+import Search from 'virtual:starlight/components/Search';
+import SiteTitle from 'virtual:starlight/components/SiteTitle';
+import SocialIcons from 'virtual:starlight/components/SocialIcons';
+import ThemeSelect from 'virtual:starlight/components/ThemeSelect';
+
+const shouldRenderSearch =
+ config.pagefind || config.components.Search !== '@astrojs/starlight/components/Search.astro';
+---
+
+
+
+
diff --git a/src/components/starlight/MarkdownContent.astro b/src/components/starlight/MarkdownContent.astro
new file mode 100644
index 0000000..8c0aa59
--- /dev/null
+++ b/src/components/starlight/MarkdownContent.astro
@@ -0,0 +1,11 @@
+---
+import '@astrojs/starlight/style/markdown.css';
+import { PRIORITY_PAGEFIND_CONTENT_WEIGHT, isPrioritySearchSlug } from '../../utils/pagefind';
+
+const slug = Astro.locals.starlightRoute.entry.slug;
+const dataAttributes = isPrioritySearchSlug(slug)
+ ? { 'data-pagefind-weight': PRIORITY_PAGEFIND_CONTENT_WEIGHT }
+ : {};
+---
+
+
diff --git a/src/components/starlight/PageTitle.astro b/src/components/starlight/PageTitle.astro
new file mode 100644
index 0000000..a8265fa
--- /dev/null
+++ b/src/components/starlight/PageTitle.astro
@@ -0,0 +1,23 @@
+---
+import { PRIORITY_PAGEFIND_TITLE_WEIGHT, isPrioritySearchSlug } from '../../utils/pagefind';
+
+const PAGE_TITLE_ID = '_top';
+const slug = Astro.locals.starlightRoute.entry.slug;
+const dataAttributes = isPrioritySearchSlug(slug)
+ ? { 'data-pagefind-weight': PRIORITY_PAGEFIND_TITLE_WEIGHT }
+ : {};
+---
+
+{Astro.locals.starlightRoute.entry.data.title}
+
+
diff --git a/src/components/starlight/SiteTitle.astro b/src/components/starlight/SiteTitle.astro
index 505c986..e8328df 100644
--- a/src/components/starlight/SiteTitle.astro
+++ b/src/components/starlight/SiteTitle.astro
@@ -14,14 +14,24 @@ const docsHref = 'https://docs.firegiant.com/';
diff --git a/src/styles/custom.css b/src/styles/custom.css
index bf4d203..090cf63 100644
--- a/src/styles/custom.css
+++ b/src/styles/custom.css
@@ -60,7 +60,6 @@ body {
font-family: Plex, var(--__sl-font);
}
-
/* Home
============================= */
diff --git a/src/utils/pagefind.ts b/src/utils/pagefind.ts
new file mode 100644
index 0000000..e261089
--- /dev/null
+++ b/src/utils/pagefind.ts
@@ -0,0 +1,8 @@
+const PRIORITY_SEARCH_PREFIXES = ['wix/schema/', 'firegiant/schema/'] as const;
+
+export const PRIORITY_PAGEFIND_CONTENT_WEIGHT = '8';
+export const PRIORITY_PAGEFIND_TITLE_WEIGHT = '10';
+
+export function isPrioritySearchSlug(slug: string): boolean {
+ return PRIORITY_SEARCH_PREFIXES.some((prefix) => slug.startsWith(prefix));
+}