From 36050876a53f6299b2981a00600884b80abd969f Mon Sep 17 00:00:00 2001 From: DaveWJRH Date: Fri, 24 Jul 2026 19:36:38 -0400 Subject: [PATCH 1/2] Add CTA buttons for adding projects and joining the webring --- src/pages/projects.astro | 24 ++++++++++++++++++++---- src/pages/webring.astro | 25 +++++++++++++++++++++---- 2 files changed, 41 insertions(+), 8 deletions(-) diff --git a/src/pages/projects.astro b/src/pages/projects.astro index b1d598d..eb5e1da 100644 --- a/src/pages/projects.astro +++ b/src/pages/projects.astro @@ -1,6 +1,7 @@ --- import { getCollection } from 'astro:content'; import Base from '../layouts/Base.astro'; +import { Icon } from 'astro-icon/components'; import Card from '../components/Card.astro'; const projects = await getCollection('projects'); @@ -8,11 +9,26 @@ projects.sort((a, b) => b.data.year - a.data.year); --- -

Projects

-

- Projects built by Carleton Computer Science students. -

+
+
+

Projects

+

+ Projects built by Carleton Computer Science students. +

+
+ + +
{ /* FILTER BAR insertion point — "domain + year filter" ticket. diff --git a/src/pages/webring.astro b/src/pages/webring.astro index 45bfe49..ac2192c 100644 --- a/src/pages/webring.astro +++ b/src/pages/webring.astro @@ -1,6 +1,7 @@ --- import { getCollection } from 'astro:content'; import Base from '../layouts/Base.astro'; +import { Icon } from 'astro-icon/components'; import RingGraph from '../components/RingGraph.astro'; const members = await getCollection('webring'); @@ -11,11 +12,27 @@ const displayUrl = (url: string) => --- -

Webring

-

- Personal sites of Carleton Computer Science students, linked into a ring. -

+
+
+

Webring

+

+ Personal sites of Carleton Computer Science students, linked into a + ring. +

+
+ + +
{ /* Two-column layout: directory table + graph panel. Stacks on mobile (table From 8a70cd5996f5f65aa8eee1c5ebf37fbe5ee3b112 Mon Sep 17 00:00:00 2001 From: DaveWJRH Date: Tue, 4 Aug 2026 13:14:59 -0400 Subject: [PATCH 2/2] Migrate CTA buttons to shared Astro component --- src/components/CTAButton.astro | 20 ++++++++++++++++++++ src/pages/projects.astro | 13 ++++--------- src/pages/webring.astro | 13 ++++--------- 3 files changed, 28 insertions(+), 18 deletions(-) create mode 100644 src/components/CTAButton.astro diff --git a/src/components/CTAButton.astro b/src/components/CTAButton.astro new file mode 100644 index 0000000..d56fbf8 --- /dev/null +++ b/src/components/CTAButton.astro @@ -0,0 +1,20 @@ +--- +import { Icon } from 'astro-icon/components'; + +interface Props { + label: string; + href: string; +} + +const { label, href } = Astro.props; +--- + + + diff --git a/src/pages/projects.astro b/src/pages/projects.astro index eb5e1da..41d2aff 100644 --- a/src/pages/projects.astro +++ b/src/pages/projects.astro @@ -1,8 +1,8 @@ --- import { getCollection } from 'astro:content'; import Base from '../layouts/Base.astro'; -import { Icon } from 'astro-icon/components'; import Card from '../components/Card.astro'; +import CTAButton from '../components/CTAButton.astro'; const projects = await getCollection('projects'); projects.sort((a, b) => b.data.year - a.data.year); @@ -19,15 +19,10 @@ projects.sort((a, b) => b.data.year - a.data.year);

- - + /> { /* diff --git a/src/pages/webring.astro b/src/pages/webring.astro index ac2192c..6cac756 100644 --- a/src/pages/webring.astro +++ b/src/pages/webring.astro @@ -1,7 +1,7 @@ --- import { getCollection } from 'astro:content'; import Base from '../layouts/Base.astro'; -import { Icon } from 'astro-icon/components'; +import CTAButton from '../components/CTAButton.astro'; import RingGraph from '../components/RingGraph.astro'; const members = await getCollection('webring'); @@ -23,15 +23,10 @@ const displayUrl = (url: string) =>

- - + /> { /*