Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 0 additions & 38 deletions .github/workflows/url-check.yml

This file was deleted.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
"node": ">=18.14.1"
},
"scripts": {
"dev": "astro dev",
"start": "astro dev",
"dev": "astro dev --host",
"start": "astro dev --host",
"build": "astro build",
"preview": "astro preview",
"check": "astro check",
Expand Down
Binary file removed public/images/trident-logo.jpeg
Binary file not shown.
27 changes: 27 additions & 0 deletions scripts/checkUrls.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#!/bin/bash

# Define an array of your JSON files
files=("projects" "links")
acceptable_codes=(200 301 302 000 999)
failed=false

# Loop through each file
for file in "${files[@]}"
do
echo "Processing $file..."
# Extract URLs and loop through each
jq -r ".${file}[] | .url" "./src/data/${file}.json" | while read -r url; do
# Prepend http if not present
[[ "$url" != http* ]] && url="https:$url"
# Perform health check
http_status=$(curl -o /dev/null -s -w "%{http_code}\n" "$url")
if [[ "${acceptable_codes[@]}" =~ "$http_status" ]]; then
echo "URL check passed: $url"
else
echo "URL check failed: $url with status $http_status"
failed=true
fi
done
done

if [ $failed ]; then exit 1; fi
15 changes: 10 additions & 5 deletions src/components/About.astro
Original file line number Diff line number Diff line change
@@ -1,20 +1,25 @@
---

---

<div id="about" class="about section">
<p>
I'm a software engineer from New England, now living in Boulder, CO. I
currently work with <a href="https://mathematica.org/about-mathematica">Mathematica Policy Research</a>
I'm a software engineer from New England, now living in Boulder, CO. I
currently work with <a href="https://mathematica.org/about-mathematica"
>Mathematica Policy Research</a
>
on their infrastructure and data platforms.
</p>
<p>
I'm also working towards a master's degree in <a
href="https://www.colorado.edu/cmci/academics/media-studies/ma-media-and-public-engagement"
>Media and Public Engagement</a
> at CU Boulder, where I focus on cooperatives, worker ownership,
governance, and enterprise design.
> at CU Boulder, where I focus on cooperatives, worker ownership, governance,
and enterprise design.
</p>
<p>
I'm passionate about systems that enable and encourage collaboration, transparency, equity, and autonomy.
I'm passionate about systems that enable and encourage collaboration,
transparency, equity, and autonomy.
</p>
<p>Check out some of my <a href="/projects">projects</a>.</p>
</div>
4 changes: 2 additions & 2 deletions src/components/SocialLinks.astro
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
---
import SocialLink from "./SocialLink.astro";
import links from "../data/links.json";
import { links } from "../data/links.json";
---

<div id="links" class="social-links section">
{links.linkData.map((linkData) => <SocialLink data={linkData} />)}
{links.map((link) => <SocialLink data={link} />)}
</div>
60 changes: 24 additions & 36 deletions src/components/projects/trident/TridentIndex.astro
Original file line number Diff line number Diff line change
@@ -1,49 +1,37 @@
---
import "../../../styles/main.css";
import { Image } from "astro:assets";
import "../../../styles/trident/trident.css";

import TridentFooter from "./TridentFooter.astro";
import TridentPrevNextButtons from "./TridentPrevNextButtons.astro";
import TridentSection from "./TridentSection.astro";
import TridentSectionSelector from "./TridentSectionSelector.astro";
import { sections } from "../../../data/tridentConfig.json";
import Layout from "../../../layouts/Layout.astro";

import tridentLogo from "../../../images/trident-logo.png";

const section = Astro.props.section as number;
---

<html>
<head>
<title>drewmca.dev</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="robots" content="noindex, nofollow" />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
<link rel="manifest" href="/site.webmanifest" />
<!-- htmx -->
<script src="https://unpkg.com/htmx.org@1.9.9"></script>
</head>
<body>
<div class="trident-header">
<h1>Trident Audio Tour</h1>
<img
src="/images/trident-logo.jpeg"
alt="Trident Logo"
class="trident-logo"
/>
</div>
<span class="date">{sections[section].date}</span>
<p class="lead">
<em>
Trident is an employee-owned bookstore and cafe located in Boulder,
Colorado. Experience an audio tour of the location below.
</em>
</p>
<Layout
title="Trident Audio Tour | drewmca.dev"
desc="An audio project exploring the dynamics of work at Trident, Booksellers & Cafe, by Drew McArthur"
>
<div class="trident-header">
<h1>Trident Audio Tour</h1>
<Image src={tridentLogo} alt="Trident Logo" class="trident-logo" />
</div>
<span class="date">{sections[section].date}</span>
<p class="lead">
<em>
Trident is an employee-owned bookstore and cafe located in Boulder,
Colorado. Experience an audio tour of the location below.
</em>
</p>

<TridentSectionSelector section={section} />
<TridentSection section={section} />
<TridentPrevNextButtons section={section} />
<TridentFooter />
</body>
</html>
<TridentSectionSelector section={section} />
<TridentSection section={section} />
<TridentPrevNextButtons section={section} />
<TridentFooter />
</Layout>
6 changes: 3 additions & 3 deletions src/data/links.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"linkData": [
"links": [
{
"type": "gmail",
"text": "hi@drewmca.dev",
Expand All @@ -8,7 +8,7 @@
{
"type": "GitHub",
"text": "@drewmcarthur",
"url": "https://github.com/drewmcarthur"
"url": "https://github.com/drewmcarthur/"
},
{
"type": "GitLab",
Expand All @@ -18,7 +18,7 @@
{
"type": "LinkedIn",
"text": "@drewmcarthur",
"url": "https://linkedin.com/in/drewmcarthur"
"url": "https://www.linkedin.com/in/drewmcarthur"
},
{
"type": "Facebook",
Expand Down
43 changes: 43 additions & 0 deletions src/data/projects.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
{
"projects": [
{
"url": "//allielind.com",
"title": "allielind.com",
"desc": "a website for my partner, who happens to be an incredible aerialist!"
},
{
"url": "//qrstats.drewmca.dev",
"title": "qrstats",
"desc": "an extremely simple webapp to track link redirects. I mostly wanted to mess around with writing rust code deployed to cloudflare's serverless workers."
},
{
"url": "/papers/inflationary-equity.pdf",
"title": "Inflationary Equity",
"type": "school",
"desc": "a paper I wrote on the potential ramifications of lifting the cap in company stock, and automatically allocating it to employees."
},
{
"url": "https://www.medicaid.gov/state-overviews/scorecard/welcome",
"title": "Medicaid Scorecard ETL",
"type": "work",
"desc": "I built the majority of the ETL pipeline that provides data for Medicaid Scorecard website."
},
{
"url": "https://www.cms.gov/priorities/key-initiatives/hospital-price-transparency",
"title": "Price Transparency",
"type": "work",
"desc": "a set of infrastructure that scrapes the machine readable files that were mandated by legislation as of Summer 2022"
},
{
"url": "//github.com/drewmcarthur/msgpack-bal",
"title": "msgpack-bal",
"desc": "a msgpack library written in ballerina."
},
{
"url": "/projects/trident",
"title": "Trident Audio Project",
"type": "school",
"desc": "a class project on a local bookstore and cafe."
}
]
}
Binary file added src/images/apple-touch-icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/images/favicon-16x16.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/images/favicon-32x32.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/images/favicon.ico
Binary file not shown.
Binary file added src/images/trident-logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
40 changes: 40 additions & 0 deletions src/layouts/Layout.astro
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
import "../styles/main.css";
import appleTouchIcon from "../images/apple-touch-icon.png";
import favicon16 from "../images/favicon-16x16.png";
import favicon32 from "../images/favicon-32x32.png";

type Props = {
title?: string,
desc?: string
}

let { title, desc } = Astro.props;
if (!title || title == "") title = "drewmca.dev";
---

<html lang="en">
<head>
<title>{title}</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
{ desc ? <meta name="description" content={desc} /> : "" }
<link rel="apple-touch-icon" sizes="180x180" href={appleTouchIcon.src} />
<link rel="icon" type="image/png" sizes="32x32" href={favicon32.src} />
<link rel="icon" type="image/png" sizes="16x16" href={favicon16.src} />
<link rel="manifest" href="/site.webmanifest" />
<meta
name="theme-color"
content="#FAF0E6"
media="(prefers-color-scheme: light)"
/>
<meta
name="theme-color"
content="#292726"
media="(prefers-color-scheme: dark)"
/>
</head>
<body>
<slot />
</body>
</html>
36 changes: 7 additions & 29 deletions src/pages/index.astro
Original file line number Diff line number Diff line change
@@ -1,33 +1,11 @@
---
import App from "../components/App.astro";
import "../styles/main.css";
import Layout from "../layouts/Layout.astro";
---

<html lang="en">
<head>
<title>drew mca | drewmca.dev</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta
name="description"
content="Homepage for Drew McArthur, @drewmca.dev. A software engineer, media scholar, and systems thinker."
/>
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
<link rel="manifest" href="/site.webmanifest" />
<meta
name="theme-color"
content="#FAF0E6"
media="(prefers-color-scheme: light)"
/>
<meta
name="theme-color"
content="#292726"
media="(prefers-color-scheme: dark)"
/>
</head>
<body>
<App />
</body>
</html>
<Layout
title="drew mca | drewmca.dev"
desc="Homepage for Drew McArthur, @drewmca.dev. A software engineer, media scholar, and systems thinker."
>
<App />
</Layout>
23 changes: 23 additions & 0 deletions src/pages/projects.astro
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
import Layout from "../layouts/Layout.astro";
import "../styles/projects.css";

import { projects } from "../data/projects.json";
---

<Layout title="projects | drewmca.dev">
<div class="header"><a href="/">drewmca.dev</a>&nbsp;/ projects</div>
<ul class="projects scrollable">
{
projects.map((p) => (
<li>
<a href={p.url}>
<p>{p.title}</p>
{p.type ? <span class="type">{p.type}</span> : ""}
<p>{p.desc}</p>
</a>
</li>
))
}
</ul>
</Layout>
Loading