Compare commits
No commits in common. "main" and "feat/refactor" have entirely different histories.
main
...
feat/refac
20 changed files with 1183 additions and 1774 deletions
41
.github/workflows/aws.yaml
vendored
Normal file
41
.github/workflows/aws.yaml
vendored
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
name: Deploy to AWS S3
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup PNPM
|
||||
uses: pnpm/action-setup@v2
|
||||
with:
|
||||
version: 8
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 18
|
||||
cache: "pnpm"
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
|
||||
- name: Build site
|
||||
run: pnpm build
|
||||
|
||||
- name: Configure AWS Credentials
|
||||
uses: aws-actions/configure-aws-credentials@v2
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws-region: us-east-2
|
||||
|
||||
- name: Deploy static site to S3 bucket
|
||||
run: |
|
||||
chmod +x scripts/deploy.sh
|
||||
scripts/deploy.sh
|
||||
36
.github/workflows/ci.yaml
vendored
36
.github/workflows/ci.yaml
vendored
|
|
@ -1,18 +1,36 @@
|
|||
name: ci
|
||||
name: CI
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches: [main]
|
||||
push:
|
||||
branches: [main]
|
||||
|
||||
jobs:
|
||||
ci:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: pnpm/action-setup@v4
|
||||
- uses: actions/setup-node@v4
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup PNPM
|
||||
uses: pnpm/action-setup@v4
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
cache: "pnpm"
|
||||
- run: pnpm install
|
||||
- run: pnpm prettier --check .
|
||||
- run: pnpm astro check
|
||||
- run: pnpm build
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
|
||||
- name: Prettier check
|
||||
run: pnpm prettier --check .
|
||||
|
||||
- name: Astro check
|
||||
run: pnpm astro check
|
||||
|
||||
- name: Build
|
||||
run: pnpm build
|
||||
|
|
|
|||
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -19,4 +19,3 @@ pnpm-debug.log*
|
|||
.gitignore
|
||||
|
||||
.claude/
|
||||
.vercel/
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
import { defineConfig } from "astro/config";
|
||||
import mdx from "@astrojs/mdx";
|
||||
import vercel from "@astrojs/vercel";
|
||||
import rehypeExternalLinks from "rehype-external-links";
|
||||
import rehypeKatex from "rehype-katex";
|
||||
import remarkMath from "remark-math";
|
||||
|
|
@ -38,8 +37,6 @@ const daylight = {
|
|||
};
|
||||
|
||||
export default defineConfig({
|
||||
output: "static",
|
||||
adapter: vercel(),
|
||||
build: {
|
||||
format: "file",
|
||||
},
|
||||
|
|
|
|||
15
package.json
15
package.json
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"name": "barrettruth.sh",
|
||||
"name": "barrettruth.com",
|
||||
"type": "module",
|
||||
"version": "0.0.1",
|
||||
"scripts": {
|
||||
|
|
@ -17,19 +17,18 @@
|
|||
]
|
||||
},
|
||||
"dependencies": {
|
||||
"@astrojs/mdx": "^4.3.13",
|
||||
"@astrojs/vercel": "^9.0.4",
|
||||
"astro": "^5.17.3",
|
||||
"@astrojs/mdx": "^4.3.6",
|
||||
"astro": "^5.14.1",
|
||||
"rehype-external-links": "^3.0.0",
|
||||
"rehype-katex": "^7.0.1",
|
||||
"remark-math": "^6.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@astrojs/check": "^0.9.6",
|
||||
"@typescript-eslint/parser": "^8.56.1",
|
||||
"@astrojs/check": "^0.9.5",
|
||||
"@typescript-eslint/parser": "^8.46.0",
|
||||
"husky": "^9.1.7",
|
||||
"lint-staged": "^16.2.7",
|
||||
"prettier": "^3.8.1",
|
||||
"lint-staged": "^16.2.3",
|
||||
"prettier": "^3.6.2",
|
||||
"prettier-plugin-astro": "^0.14.1",
|
||||
"typescript": "^5.9.3"
|
||||
},
|
||||
|
|
|
|||
2724
pnpm-lock.yaml
generated
2724
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load diff
BIN
public/fonts/apercu-mono/ApercuMonoProBold.ttf
Normal file
BIN
public/fonts/apercu-mono/ApercuMonoProBold.ttf
Normal file
Binary file not shown.
BIN
public/fonts/apercu-mono/ApercuMonoProLight.ttf
Normal file
BIN
public/fonts/apercu-mono/ApercuMonoProLight.ttf
Normal file
Binary file not shown.
BIN
public/fonts/apercu-mono/ApercuMonoProMedium.ttf
Normal file
BIN
public/fonts/apercu-mono/ApercuMonoProMedium.ttf
Normal file
Binary file not shown.
BIN
public/fonts/apercu-mono/ApercuMonoProRegular.ttf
Normal file
BIN
public/fonts/apercu-mono/ApercuMonoProRegular.ttf
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -111,36 +111,47 @@
|
|||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Berkeley Mono";
|
||||
src: url("/fonts/berkeley-mono/BerkeleyMono-Regular.ttf") format("truetype");
|
||||
font-family: "Apercu Mono";
|
||||
src: url("/fonts/apercu-mono/ApercuMonoProLight.ttf") format("truetype");
|
||||
font-weight: 300;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Apercu Mono";
|
||||
src: url("/fonts/apercu-mono/ApercuMonoProRegular.ttf") format("truetype");
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Berkeley Mono";
|
||||
src: url("/fonts/berkeley-mono/BerkeleyMono-Bold.ttf") format("truetype");
|
||||
font-weight: 700;
|
||||
font-family: "Apercu Mono";
|
||||
src: url("/fonts/apercu-mono/ApercuMonoProMedium.ttf") format("truetype");
|
||||
font-weight: 500;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Berkeley Mono";
|
||||
src: url("/fonts/berkeley-mono/BerkeleyMono-Italic.ttf") format("truetype");
|
||||
font-weight: 400;
|
||||
font-style: italic;
|
||||
font-family: "Apercu Mono";
|
||||
src: url("/fonts/apercu-mono/ApercuMonoProBold.ttf") format("truetype");
|
||||
font-weight: 700;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Berkeley Mono";
|
||||
src: url("/fonts/berkeley-mono/BerkeleyMono-BoldItalic.ttf")
|
||||
format("truetype");
|
||||
font-weight: 700;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
html,
|
||||
body {
|
||||
font-family: "Signifier", serif;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
pre,
|
||||
|
|
@ -148,7 +159,12 @@ code,
|
|||
pre code,
|
||||
.astro-code,
|
||||
code[class*="language-"] {
|
||||
font-family: "Berkeley Mono", monospace !important;
|
||||
font-family: "Apercu Mono", monospace !important;
|
||||
}
|
||||
|
||||
html,
|
||||
body {
|
||||
font-family: "Signifier", serif;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
|
|
@ -166,14 +182,3 @@ code[class*="language-"] {
|
|||
color: #e0e0e0;
|
||||
}
|
||||
}
|
||||
|
||||
html,
|
||||
body {
|
||||
font-family: "Signifier", serif;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
html,
|
||||
body {
|
||||
font-family: "Signifier", serif;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,18 +3,14 @@
|
|||
max-width: 55%;
|
||||
margin: 0 auto;
|
||||
padding: 0 clamp(20px, 5vw, 60px);
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
header {
|
||||
padding: clamp(30px, 5vw, 50px) 0;
|
||||
padding: clamp(80px, 15vw, 150px) 0 clamp(50px, 10vw, 80px) 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
flex-wrap: nowrap;
|
||||
flex-wrap: wrap;
|
||||
gap: 20px;
|
||||
}
|
||||
|
||||
|
|
@ -22,18 +18,12 @@ h1,
|
|||
.delta {
|
||||
font-size: clamp(1.5rem, 8vw, 4rem);
|
||||
font-weight: 300;
|
||||
flex-shrink: 1;
|
||||
}
|
||||
|
||||
.delta {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
section {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
||||
gap: clamp(20px, 3vw, 40px);
|
||||
padding-bottom: clamp(80px, 15vw, 150px);
|
||||
}
|
||||
|
||||
h2 {
|
||||
|
|
|
|||
3
scripts/deploy.sh
Executable file
3
scripts/deploy.sh
Executable file
|
|
@ -0,0 +1,3 @@
|
|||
#!/bin/sh
|
||||
|
||||
aws s3 sync ./dist/ s3://barrettruth.com --delete
|
||||
40
src/pages/about.astro
Normal file
40
src/pages/about.astro
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
---
|
||||
import BaseLayout from "../layouts/BaseLayout.astro";
|
||||
---
|
||||
|
||||
<BaseLayout title="Barrett Ruth">
|
||||
<div>
|
||||
<header>
|
||||
<h1>Barrett Ruth</h1>
|
||||
</header>
|
||||
<article>
|
||||
<p>
|
||||
I am a software developer studying computer science at the University of
|
||||
Virginia.
|
||||
</p>
|
||||
<p>
|
||||
I began working as a software engineer part-time with
|
||||
<a target="blank" href="https://gotransverse.com/">GoTransverse</a>
|
||||
in high school. After developing an interest in the financial/venture capital
|
||||
world, I transitioned to
|
||||
<a target="blank" href="https://www.nthventure.com/">Nth Venture</a>
|
||||
in the spring of my second year. I worked at
|
||||
<a target="blank" href="https://usa.visa.com/">VISA</a> and
|
||||
<a href="https://trbcap.com" target="_blank">TRB Capital Management</a>
|
||||
during the summer of 2024. Luckily enough, I'll be joining
|
||||
<a href="https://drw.com" target="_blank">DRW</a> and
|
||||
<a href="https://ramp.com" target="_blank">Ramp</a> in the summer and spring
|
||||
of 2025.
|
||||
</p>
|
||||
<p>
|
||||
I've a developing interest in high-performance computing, quantitative
|
||||
finance, and open-source software. I am also a passionate contributor to
|
||||
the (Neo)Vim ecosystem and beyond.
|
||||
</p>
|
||||
<p>
|
||||
You can see my related contributions on
|
||||
<a target="blank" href="https://github.com/barrettruth">GitHub</a>.
|
||||
</p>
|
||||
</article>
|
||||
</div>
|
||||
</BaseLayout>
|
||||
|
|
@ -18,23 +18,20 @@ import BaseLayout from "../layouts/BaseLayout.astro";
|
|||
<div>
|
||||
<h2>experience</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<a target="_blank" href="https://imc.com">imc</a>—july 2026
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" href="https://ramp.com">ramp</a>—fall 2025
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" href="https://drw.com">drw</a>—summer 2025
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" href="https://trbcap.com">trb capital</a
|
||||
>—summer 2024
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" href="https://usa.visa.com">visa</a>—summer
|
||||
2024
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" href="https://trbcap.com">trb capital</a
|
||||
>—summer 2024
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" href="https://www.nthventure.com">nth venture</a
|
||||
>—spring 2023
|
||||
|
|
@ -48,6 +45,9 @@ import BaseLayout from "../layouts/BaseLayout.astro";
|
|||
|
||||
<div>
|
||||
<h2>ideas</h2>
|
||||
<ul>
|
||||
<li>there are none yet</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
|
|
@ -57,11 +57,6 @@ import BaseLayout from "../layouts/BaseLayout.astro";
|
|||
<li>
|
||||
<a target="_blank" href="https://github.com/barrettruth">github</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" href="https://codeforces.com/profile/barrettruth"
|
||||
>codeforces</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue