diff --git a/AGENTS.md b/AGENTS.md index f44852e..601086a 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -10,6 +10,7 @@ Josselin Perrus's personal site: an Astro 7 static site served by Cloudflare Wor - The page background (`src/components/Background.astro`: the paper texture and the corner pattern) and the topic map (`TopicMap.astro`, inside the `Intro` of Home and About) are drawn on canvases from small images in `src/assets/background/`. `scripts/make-background.py` makes those images, from the map's land in `src/data/topic-map.json`; rerun it after changing either, and commit its output. The site loads no shader library. - `src/content/writing/`: git submodule of [meaningfool-writing](https://github.com/meaningfool/meaningfool-writing), which holds every article, activity log and image. Read its `AGENTS.md` before editing content. - `src/content.config.ts`: the content collection, built from `articles/*.md` and `daily-logs/*.md` in the submodule. +- `src/pages/index.astro`: the home. Its Writing list holds the articles, not the activity logs, and picking a topic on the map shows only the articles about it. An article's topics are its `topics` frontmatter field (`customer-success`, `product`, `ai-agents`: each one that makes up 30% or more of it), or else its entry in `src/data/topics.ts`. - `src/pages/articles/[slug].astro`: the page of every article and activity log. The Markdown goes through the plugins in `src/lib/` set in `astro.config.mjs`: the `# Title` line is dropped, the headings are renumbered from h2, and `rehype-article.mjs` shapes figures, YouTube embeds (moved to youtube-nocookie.com) and tables for `src/styles/prose.css`. In a table, a row whose cells are all bold is highlighted, and a paragraph starting with `Table:` right after it, past a blank line, is its caption. An image alone in its paragraph is captioned with its title, or with its alt text when that has a space. - `src/data/projects.ts`: the projects, with their screenshots in `src/assets/projects/`, and which articles belong to each, by article id. - `docs/document-sharing.md`: how the encrypted portfolio links on `/documents/` work and how to create them. diff --git a/astro.config.mjs b/astro.config.mjs index 3182e6d..45fb002 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -34,8 +34,7 @@ export default defineConfig({ shikiConfig: { theme: 'github-light' }, // code blocks sit on the white page, in a light frame (prose.css) }, integrations: [sitemap({ - // TEMPORARY (#30): /map-preview/ shows the intro and the map until the home uses them; #31 deletes it. - filter: (page) => !/^\/(documents|map-preview)\/?$/.test(new URL(page).pathname), + filter: (page) => !/^\/documents\/?$/.test(new URL(page).pathname), serialize: (item) => ({ ...item, lastmod: lastModified.get(new URL(item.url).pathname) }), }), trailingSlashRedirects()], site: 'https://meaningfool.net', diff --git a/src/components/ArticlesList.astro b/src/components/ArticlesList.astro deleted file mode 100644 index dae2449..0000000 --- a/src/components/ArticlesList.astro +++ /dev/null @@ -1,72 +0,0 @@ ---- -import type { CollectionEntry } from 'astro:content'; - -export interface Props { - articles: CollectionEntry<'writing'>[]; -} - -const { articles } = Astro.props; ---- - - - - \ No newline at end of file diff --git a/src/components/Footer.astro b/src/components/Footer.astro index d98f260..a57720d 100644 --- a/src/components/Footer.astro +++ b/src/components/Footer.astro @@ -1,13 +1,9 @@ --- // The site footer: the wordmark, then About and the profiles elsewhere. On phones the links go under the wordmark. import Wordmark from './Wordmark.astro'; +import { profiles } from '../data/profiles'; -const links = [ - { href: '/about/', label: 'About' }, - { href: 'https://www.linkedin.com/in/josselinperrus/', label: 'LinkedIn' }, - { href: 'https://github.com/meaningfool', label: 'GitHub' }, - { href: 'https://x.com/nonils', label: 'X' }, -]; +const links = [{ href: '/about/', label: 'About' }, ...profiles]; ---