// @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/local-dev/': '/whp/local-dev/overview/',
    '/whp/reference/': '/whp/reference/service-hostnames/',
    '/whp/add-ons/': '/whp/add-ons/overview/',
    '/whp/admin/': '/whp/admin/overview/',
    '/domains/': '/domains/transferring-a-domain-to-us/',
    '/support/': '/support/remote-support/',
    '/cpanel/': '/cpanel/nameservers/',
    '/email/': '/email/set-up-your-email-client/',
  },
  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 <Head> 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: 'Local development',
              items: [{ autogenerate: { directory: 'whp/local-dev' } }],
            },
            {
              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' } }],
            },
          ],
        },
        {
          label: 'cPanel hosting',
          items: [{ autogenerate: { directory: 'cpanel' } }],
        },
        {
          label: 'Domains',
          items: [{ autogenerate: { directory: 'domains' } }],
        },
        {
          label: 'Email',
          items: [{ autogenerate: { directory: 'email' } }],
        },
        {
          label: 'Support',
          items: [{ autogenerate: { directory: 'support' } }],
        },
        // Future products only appear once they have content.
      ],
      pagefind: true,
      lastUpdated: true,
    }),
    sitemap(),
  ],
});
