// @ts-check import { defineConfig } from 'astro/config'; import starlight from '@astrojs/starlight'; import sitemap from '@astrojs/sitemap'; import { fileURLToPath } from 'node:url'; // https://astro.build/config export default defineConfig({ site: 'https://kb.anhonesthost.com', // Send section-only URLs to the first article in that section. Without these, // hitting e.g. /whp/admin/ would render the Apache directory listing because // there is no index.html in that folder. redirects: { '/whp/': '/whp/getting-started/welcome/', '/whp/getting-started/': '/whp/getting-started/welcome/', '/whp/how-to/': '/whp/how-to/add-a-domain/', '/whp/site-builder/': '/whp/site-builder/overview/', '/whp/reference/': '/whp/reference/service-hostnames/', '/whp/add-ons/': '/whp/add-ons/overview/', '/whp/admin/': '/whp/admin/overview/', }, vite: { resolve: { alias: { // `~` resolves to /src so partial imports are depth-independent: // import SignIn from '~/content/partials/signing-in.mdx'; '~': fileURLToPath(new URL('./src', import.meta.url)), }, }, }, integrations: [ starlight({ title: 'AnHonestHost KB', description: 'Customer documentation for WHP and other AnHonestHost services.', components: { // Inline-SVG brand mark + "Knowledge Base" label. // Inlining lets the SVG's currentColor follow the active theme. SiteTitle: './src/components/SiteTitle.astro', // Wraps Starlight's default to add a click-to-zoom lightbox // (medium-zoom) that targets article content images. Head: './src/components/Head.astro', }, customCss: [ '@fontsource-variable/inter', '@fontsource-variable/jetbrains-mono', './src/styles/anhh-tokens.css', ], editLink: { baseUrl: 'https://repo.anhonesthost.net/cloud-hosting-platform/kb-anhonesthost/_edit/main/', }, sidebar: [ { label: 'WHP', items: [ { label: 'Getting started', items: [{ autogenerate: { directory: 'whp/getting-started' } }], }, { label: 'How-to guides', items: [{ autogenerate: { directory: 'whp/how-to' } }], }, { label: 'Site Builder', badge: { text: 'Beta', variant: 'tip' }, items: [{ autogenerate: { directory: 'whp/site-builder' } }], }, { label: 'Reference', items: [{ autogenerate: { directory: 'whp/reference' } }], }, { label: 'Add-ons', items: [{ autogenerate: { directory: 'whp/add-ons' } }], }, { label: 'Admin', // badge removed once content was verified against the real UI items: [{ autogenerate: { directory: 'whp/admin' } }], }, ], }, // Future products only appear once they have content. ], pagefind: true, lastUpdated: true, }), sitemap(), ], });