From 456cf011b36de91c9936994b1fa45703adcd309b Mon Sep 17 00:00:00 2001 From: Dawid Rycerz Date: Thu, 3 Jul 2025 10:56:21 +0300 Subject: Initial fork of chrismwilliams/astro-theme-cactus theme --- src/site.config.ts | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 src/site.config.ts (limited to 'src/site.config.ts') diff --git a/src/site.config.ts b/src/site.config.ts new file mode 100644 index 0000000..3efa4ea --- /dev/null +++ b/src/site.config.ts @@ -0,0 +1,81 @@ +import type { SiteConfig } from "@/types"; +import type { AstroExpressiveCodeOptions } from "astro-expressive-code"; + +export const siteConfig: SiteConfig = { + // Used as both a meta property (src/components/BaseHead.astro L:31 + L:49) & the generated satori png (src/pages/og-image/[slug].png.ts) + author: "Chris Williams", + // Date.prototype.toLocaleDateString() parameters, found in src/utils/date.ts. + date: { + locale: "en-GB", + options: { + day: "numeric", + month: "short", + year: "numeric", + }, + }, + // Used as the default description meta property and webmanifest description + description: "An opinionated starter theme for Astro", + // HTML lang property, found in src/layouts/Base.astro L:18 & astro.config.ts L:48 + lang: "en-GB", + // Meta property, found in src/components/BaseHead.astro L:42 + ogLocale: "en_GB", + /* + - Used to construct the meta title property found in src/components/BaseHead.astro L:11 + - The webmanifest name found in astro.config.ts L:42 + - The link value found in src/components/layout/Header.astro L:35 + - In the footer found in src/components/layout/Footer.astro L:12 + */ + title: "Astro Cactus", + // ! Please remember to replace the following site property with your own domain, used in astro.config.ts + url: "https://astro-cactus.chriswilliams.dev/", +}; + +// Used to generate links in both the Header & Footer. +export const menuLinks: { path: string; title: string }[] = [ + { + path: "/", + title: "Home", + }, + { + path: "/about/", + title: "About", + }, + { + path: "/posts/", + title: "Blog", + }, + { + path: "/notes/", + title: "Notes", + }, +]; + +// https://expressive-code.com/reference/configuration/ +export const expressiveCodeOptions: AstroExpressiveCodeOptions = { + styleOverrides: { + borderRadius: "4px", + codeFontFamily: + 'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace', + codeFontSize: "0.875rem", + codeLineHeight: "1.7142857rem", + codePaddingInline: "1rem", + frames: { + frameBoxShadowCssValue: "none", + }, + uiLineHeight: "inherit", + }, + themeCssSelector(theme, { styleVariants }) { + // If one dark and one light theme are available + // generate theme CSS selectors compatible with cactus-theme dark mode switch + if (styleVariants.length >= 2) { + const baseTheme = styleVariants[0]?.theme; + const altTheme = styleVariants.find((v) => v.theme.type !== baseTheme?.type)?.theme; + if (theme === baseTheme || theme === altTheme) return `[data-theme='${theme.type}']`; + } + // return default selector + return `[data-theme="${theme.name}"]`; + }, + // One dark, one light theme => https://expressive-code.com/guides/themes/#available-themes + themes: ["dracula", "github-light"], + useThemedScrollbars: false, +}; -- cgit v1.2.3