import { defineConfig } from "astro/config";
import starlight from "@astrojs/starlight";
import { ExpressiveCodeTheme } from "@astrojs/starlight/expressive-code";
import themeJson from "./src/styles/theme.json";
import darkThemeJson from "./src/styles/theme-dark.json";

import { navigation } from "./src/components/navigation.ts";

const sakuraDreams = ExpressiveCodeTheme.fromJSONString(
  JSON.stringify(themeJson)
);
const sakuraDreamsDark = ExpressiveCodeTheme.fromJSONString(
  JSON.stringify(darkThemeJson)
);

export default defineConfig({
  site: "https://docs.nhcarrigan.com",
  integrations: [
    starlight({
      components: {
        Footer: "./src/components/Footer.astro",
        ThemeProvider: "./src/components/ThemeProvider.astro",
      },
      title: "NHCarrigan Docs",
      sidebar: navigation,
      tableOfContents: { minHeadingLevel: 2, maxHeadingLevel: 4 },
      description:
        "This site contains all of the documentation related to NHCarrigan, its Policies, and its Projects.",
      editLink: {
        baseUrl: "https://git.nhcarrigan.com/nhcarrigan/docs/_edit/main/",
        label: "Edit this page on Naomi's Self-hosted Git instance",
      },
      lastUpdated: true,
      social: {
        github: "https://git.nhcarrigan.com",
        discourse: "https://forum.nhcarrigan.com",
        mastodon: "https://fedi.nhcarrigan.com/@naomi",
        matrix: "https://matrix.nhcarrigan.com",
        rss: "https://irc.nhcarrigan.com",
        email: "mailto:contact@nhcarrigan.com",
      },
      logo: {
        src: "./public/logo.png",
        alt: "NHCarrigan Logo",
        replacesTitle: true
      },
      head: [
        {
          tag: "script",
          attrs: {
            type: "text/javascript",
            id: "analytics",
            src: "https://analytics.nhcarrigan.com/js/script.file-downloads.outbound-links.js",
            defer: true,
            "data-domain": "nhcarrigan.com",
            "event-domain": "docs.nhcarrigan.com",
          },
        },
        {
          tag: "script",
          content:
            "window.plausible = window.plausible || function() { (window.plausible.q = window.plausible.q || []).push(arguments) }",
        },
        {
          tag: "script",
          attrs: {
            type: "text/javascript",
            id: "trees",
            src: "https://widgets.tree-nation.com/js/widgets/v1/widgets.min.js?v=1.0",
            defer: true,
          },
        },
        {
          tag: "link",
          attrs: {
            rel: "icon",
            href: "./public/logo.png",
          },
        },
        {
          tag: "script",
          attrs: {
            type: "text/javascript",
            src: "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3569924701890974",
            async: true,
            crossorigin: "anonymous",
          },
        },
        {
          tag: "meta",
          attrs: {
            property: "og:image",
            content: "https://cdn.nhcarrigan.com/og-image.png"
          }
        }
      ],
      customCss: ["./src/styles/style.css", "./src/fonts/font-face.css"],
      expressiveCode: {
        themes: [sakuraDreams, sakuraDreamsDark],
      },
    }),
  ],
});
