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.
+
+
+
+
+ Add a project
+
+
{
/*
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.
+
+
+
+
+ Join the webring
+
+
{
/*
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;
+---
+
+
+
+ {label}
+
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);
-
-
- Add a project
-
+ />
{
/*
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) =>
-
-
- Join the webring
-
+ />
{
/*