diff --git a/astro.config.mjs b/astro.config.mjs index 32e2cf1..4859dc5 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -38,6 +38,7 @@ export default defineConfig({ PageTitle: './src/components/PageTitle.astro', PageSidebar: './src/components/PageSidebar.astro', Footer: './src/components/Footer.astro', + Header: './src/components/Header.astro', }, social: [ { icon: 'linkedin', label: 'LinkedIn', href: 'https://www.linkedin.com/company/apiopscycles/' }, diff --git a/src/components/Header.astro b/src/components/Header.astro new file mode 100644 index 0000000..818784e --- /dev/null +++ b/src/components/Header.astro @@ -0,0 +1,124 @@ +--- +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 MobileMenuToggle from 'virtual:starlight/components/MobileMenuToggle'; +import ThemeSelect from 'virtual:starlight/components/ThemeSelect'; + +/** + * Render the `Search` component if Pagefind is enabled or the default search component has been overridden. + */ +const shouldRenderSearch = + config.pagefind || config.components.Search !== '@astrojs/starlight/components/Search.astro'; + +const { hasSidebar } = Astro.locals.starlightRoute; +--- + +
+
+ +
+
+ {shouldRenderSearch && } +
+
+ +
+
+ + + +
+ {hasSidebar && ( +
+ +
+ )} +
+ +