mirror of
https://github.com/andwati/andwati.com.git
synced 2026-10-31 14:52:16 +00:00
Data model: nodes are real content entries (writings, portfolio, bookshelf), edges are shared-tag connections — the same relationship "related posts" already uses, drawn instead of listed. No decorative or fake data. - src/lib/constellation-data.ts: builds the node/edge graph from the actual collections at build time. - src/lib/constellation-scene.ts: vanilla Three.js scene (no framework) — fibonacci-sphere layout, auto-rotation, pointer raycasting with a title tooltip, click-through to the entry's page. Honors prefers-reduced-motion (skips rotation and the spring-eased entrance, which reuses src/lib/spring.ts) and checks WebGL support, falling back to a plain count for browsers/settings that lack it. - src/components/Constellation.astro: wires it up, serializing the graph as inline JSON for the client script to consume. - Homepage rebuilt around it: hero constellation above a 3-column dashboard (latest writings/portfolio/bookshelf), using a new `wide` layout variant on Base.astro (dashboard needs more than the 42rem article width). Also: removes "life and beliefs" from all site copy (site.config.ts, the llms.txt generator + its output) per request — description is now "Computer science and mathematics." Verified in-browser: real WebGL scene renders with correctly positioned/colored nodes and edges, hover shows the right title via raycasting, layout holds at the new wide container width.
35 lines
1.4 KiB
TypeScript
35 lines
1.4 KiB
TypeScript
/**
|
|
* Site-wide metadata. Placeholder copy — ported from the legacy zola.toml
|
|
* values as a reasonable default, pending a real editorial pass once the
|
|
* design system lands.
|
|
*/
|
|
export const siteConfig = {
|
|
title: "Thoughts and Musings",
|
|
description: "Computer science and mathematics.",
|
|
baseUrl: "https://andwati.com",
|
|
author: "andwati",
|
|
llmsDescription:
|
|
"Ian Andwati's personal digital-legacy site covering computer science and mathematics — writings, portfolio, and a curated bookshelf.",
|
|
nav: [
|
|
{ name: "Writings", url: "/writings/" },
|
|
{ name: "Portfolio", url: "/portfolio/" },
|
|
{ name: "Bookshelf", url: "/bookshelf/" },
|
|
{ name: "Blogs", url: "/blogs/" },
|
|
],
|
|
social: {
|
|
github: "https://github.com/andwati",
|
|
twitter: "https://twitter.com/andwati_",
|
|
youtube: "https://www.youtube.com/@pwnforfunandprofit",
|
|
email: "[email protected]",
|
|
},
|
|
tagDescriptions: {
|
|
linux:
|
|
"Practical notes on running Arch-based Linux distributions, from WiFi hotspot quirks to database setup.",
|
|
"subresource-integrity":
|
|
"How Subresource Integrity (SRI) hashes protect a site from tampered third-party scripts and stylesheets.",
|
|
garuda:
|
|
"Setup notes for Garuda Linux, an Arch-based distribution built for performance.",
|
|
cors: "Notes on Cross-Origin Resource Sharing (CORS) and how browsers enforce cross-origin security policies.",
|
|
} as Record<string, string>,
|
|
};
|