Initial commit

This commit is contained in:
KazooTTT
2025-02-05 14:07:58 +08:00
committed by GitHub
commit ea645368e9
85 changed files with 11210 additions and 0 deletions

76
src/site.config.ts Normal file
View File

@ -0,0 +1,76 @@
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, and webmanifest name found in astro.config.ts L:42
title: "Astro Theme 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,
};