Compare commits
9 Commits
Author | SHA1 | Date | |
---|---|---|---|
5dfe806e6b | |||
7ef4b48b18 | |||
d321c805e1 | |||
ba28de9f61 | |||
29bdf18fd6 | |||
3d5a1e12c0 | |||
75284a9696 | |||
2701cbe8c5 | |||
e055360b68 |
2
.github/workflows/release-image.yml
vendored
2
.github/workflows/release-image.yml
vendored
@@ -5,7 +5,7 @@ on:
|
||||
branches:
|
||||
- main
|
||||
tags:
|
||||
- 6.*
|
||||
- 0.*
|
||||
|
||||
env:
|
||||
REGISTRY: ghcr.io
|
||||
|
14
Dockerfile
14
Dockerfile
@@ -1,22 +1,30 @@
|
||||
FROM node:20.16.0-alpine3.20 AS base
|
||||
|
||||
LABEL version="0.1.6"
|
||||
LABEL description="Astro based website to use as a profile"
|
||||
|
||||
ENV PNPM_HOME="/pnpm"
|
||||
ENV PATH="$PNPM_HOME:$PATH"
|
||||
RUN corepack enable
|
||||
|
||||
WORKDIR /app
|
||||
COPY . .
|
||||
|
||||
COPY package.json pnpm-lock.yaml ./
|
||||
|
||||
FROM base AS prod-deps
|
||||
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-lockfile
|
||||
|
||||
FROM base AS build
|
||||
FROM prod-deps AS build-deps
|
||||
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
|
||||
|
||||
FROM build-deps AS build
|
||||
COPY . .
|
||||
RUN pnpm run build
|
||||
|
||||
FROM base
|
||||
FROM base AS runtime
|
||||
COPY --from=prod-deps /app/node_modules /app/node_modules
|
||||
COPY --from=build /app/dist /app/dist
|
||||
|
||||
ENV HOST=0.0.0.0
|
||||
ENV PORT=4321
|
||||
EXPOSE 4321
|
||||
|
@@ -12,6 +12,7 @@
|
||||
"dependencies": {
|
||||
"@astrojs/check": "^0.9.3",
|
||||
"@astrojs/node": "^8.3.3",
|
||||
"@directus/sdk": "^17.0.0",
|
||||
"astro": "^4.14.2",
|
||||
"typescript": "^5.5.4"
|
||||
}
|
||||
|
9
pnpm-lock.yaml
generated
9
pnpm-lock.yaml
generated
@@ -14,6 +14,9 @@ importers:
|
||||
'@astrojs/node':
|
||||
specifier: ^8.3.3
|
||||
version: 8.3.3(astro@4.14.2(rollup@4.21.0)(typescript@5.5.4))
|
||||
'@directus/sdk':
|
||||
specifier: ^17.0.0
|
||||
version: 17.0.0
|
||||
astro:
|
||||
specifier: ^4.14.2
|
||||
version: 4.14.2(rollup@4.21.0)(typescript@5.5.4)
|
||||
@@ -161,6 +164,10 @@ packages:
|
||||
resolution: {integrity: sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@directus/sdk@17.0.0':
|
||||
resolution: {integrity: sha512-ADKoFrLjWPVVsYNK0EffVFstl/ZHVaQbiUp4NCueKfvFaOSLQ16xSVNj5O//rP5+rU8t1HkjwC6JDh02rao7ZQ==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@emmetio/abbreviation@2.3.3':
|
||||
resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==}
|
||||
|
||||
@@ -2226,6 +2233,8 @@ snapshots:
|
||||
'@babel/helper-validator-identifier': 7.24.7
|
||||
to-fast-properties: 2.0.0
|
||||
|
||||
'@directus/sdk@17.0.0': {}
|
||||
|
||||
'@emmetio/abbreviation@2.3.3':
|
||||
dependencies:
|
||||
'@emmetio/scanner': 1.0.4
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 98 KiB |
BIN
public/assets/hiking.jpg
Normal file
BIN
public/assets/hiking.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.5 MiB |
Binary file not shown.
Before Width: | Height: | Size: 128 KiB After Width: | Height: | Size: 188 KiB |
@@ -5,7 +5,7 @@ import Icon from './Icon.astro';
|
||||
|
||||
<aside>
|
||||
<h2>Interested in working together?</h2>
|
||||
<CallToAction href="mailto:me@example.com">
|
||||
<CallToAction href="mailto:alexander.lebens@gmail.com">
|
||||
Send Me a Message
|
||||
<Icon icon="paper-plane-tilt" size="1.2em" />
|
||||
</CallToAction>
|
||||
|
@@ -6,15 +6,14 @@ const currentYear = new Date().getFullYear();
|
||||
<footer>
|
||||
<div class="group">
|
||||
<p>
|
||||
Designed & Developed in Portland with <a href="https://astro.build/">Astro</a>
|
||||
Designed & Developed in Minnesota with <a href="https://astro.build/">Astro</a>
|
||||
<Icon icon="rocket-launch" size="1.2em" />
|
||||
</p>
|
||||
<p>© {currentYear} Jeanine White</p>
|
||||
<p>© {currentYear} Alex Lebens</p>
|
||||
</div>
|
||||
<p class="socials">
|
||||
<a href="https://twitter.com/me"> Twitter</a>
|
||||
<a href="https://github.com/me"> GitHub</a>
|
||||
<a href="https://codepen.io/me"> CodePen</a>
|
||||
<a href="https://github.com/alexlebens"> GitHub</a>
|
||||
<a href="https://www.linkedin.com/in/alexanderlebens"> LinkedIn</a>
|
||||
</p>
|
||||
</footer>
|
||||
<style>
|
||||
|
@@ -7,8 +7,8 @@ interface Props {
|
||||
}
|
||||
|
||||
const {
|
||||
title = 'Jeanine White: Personal Site',
|
||||
description = 'The personal site of Jeanine White',
|
||||
title = 'Alex Lebens: Personal Site',
|
||||
description = 'The personal site of Alex Lebens',
|
||||
} = Astro.props;
|
||||
---
|
||||
|
||||
|
@@ -12,12 +12,8 @@ const textLinks: { label: string; href: string }[] = [
|
||||
|
||||
/** Icon links to social media — edit these with links to your profiles! */
|
||||
const iconLinks: { label: string; href: string; icon: keyof typeof iconPaths }[] = [
|
||||
{ label: 'Twitter', href: 'https://twitter.com/me', icon: 'twitter-logo' },
|
||||
{ label: 'Twitch', href: 'https://twitch.tv/me', icon: 'twitch-logo' },
|
||||
{ label: 'GitHub', href: 'https://github.com/me', icon: 'github-logo' },
|
||||
{ label: 'CodePen', href: 'https://codepen.io/me', icon: 'codepen-logo' },
|
||||
{ label: 'dribbble', href: 'https://dribbble.com/me', icon: 'dribbble-logo' },
|
||||
{ label: 'YouTube', href: 'https://www.youtube.com/@me/', icon: 'youtube-logo' },
|
||||
{ label: 'GitHub', href: 'https://github.com/alexlebens', icon: 'github-logo' },
|
||||
{ label: 'LinkedIn', href: 'https://www.linkedin.com/in/alexanderlebens', icon: 'codepen-logo' },
|
||||
];
|
||||
---
|
||||
|
||||
@@ -25,7 +21,7 @@ const iconLinks: { label: string; href: string; icon: keyof typeof iconPaths }[]
|
||||
<div class="menu-header">
|
||||
<a href="/" class="site-title">
|
||||
<Icon icon="terminal-window" color="var(--accent-regular)" size="1.6em" gradient />
|
||||
Jeanine White
|
||||
Alex Lebens
|
||||
</a>
|
||||
<menu-button>
|
||||
<template>
|
||||
|
@@ -5,7 +5,7 @@ import ContactCTA from '../components/ContactCTA.astro';
|
||||
import Hero from '../components/Hero.astro';
|
||||
---
|
||||
|
||||
<BaseLayout title="About | Jeanine White" description="About Jeanine White Lorem Ipsum">
|
||||
<BaseLayout title="About | Alex Lebens" description="About Alex Lebens">
|
||||
<div class="stack gap-20">
|
||||
<main class="wrapper about">
|
||||
<Hero
|
||||
@@ -15,8 +15,8 @@ import Hero from '../components/Hero.astro';
|
||||
<img
|
||||
width="1553"
|
||||
height="873"
|
||||
src="/assets/at-work.jpg"
|
||||
alt="Jeanine White at work with a colleague"
|
||||
src="/assets/hiking.jpg"
|
||||
alt="Alex Lebens hiking in Texas"
|
||||
/>
|
||||
</Hero>
|
||||
|
||||
|
@@ -30,8 +30,8 @@ const projects = (await getCollection('work'))
|
||||
<div class="wrapper stack gap-8 lg:gap-20">
|
||||
<header class="hero">
|
||||
<Hero
|
||||
title="Hello, my name is Jeanine White"
|
||||
tagline="I am a Creative Developer who is currently based in Portland, Oregon."
|
||||
title="Hello, my name is Alex Lebens"
|
||||
tagline="I am a Cloud Engineer who is currently based in St. Paul, Minnesota."
|
||||
align="start"
|
||||
>
|
||||
<div class="roles">
|
||||
@@ -42,7 +42,7 @@ const projects = (await getCollection('work'))
|
||||
</Hero>
|
||||
|
||||
<img
|
||||
alt="Jeanine White smiling in a red plaid shirt and tortoise shell glasses"
|
||||
alt="Alex Lebens in Antarctica"
|
||||
width="480"
|
||||
height="620"
|
||||
src="/assets/portrait.jpg"
|
||||
@@ -56,7 +56,7 @@ const projects = (await getCollection('work'))
|
||||
<section class="section with-background with-cta">
|
||||
<header class="section-header stack gap-2 lg:gap-4">
|
||||
<h3>Selected Work</h3>
|
||||
<p>Take a look below at some of my featured work for clients from the past few years.</p>
|
||||
<p>Take a look below at some of my featured work from the past few years.</p>
|
||||
</header>
|
||||
|
||||
<div class="gallery">
|
||||
|
@@ -14,8 +14,8 @@ const projects = (await getCollection('work')).sort(
|
||||
---
|
||||
|
||||
<BaseLayout
|
||||
title="My Work | Jeanine White"
|
||||
description="Learn about Jeanine White's most recent projects"
|
||||
title="My Work | Alex Lebens"
|
||||
description="Learn about Alex Lebens's most recent projects"
|
||||
>
|
||||
<div class="stack gap-20">
|
||||
<main class="wrapper stack gap-8">
|
||||
|
Reference in New Issue
Block a user