Compare commits

...

6 Commits

Author SHA1 Message Date
d415dda661 feat: release 2.14.1
All checks were successful
release-image-gitea / build (push) Successful in 56s
renovate / renovate (push) Successful in 2m36s
release-image-gitea / release (push) Successful in 1m50s
test-build / build (push) Successful in 4m52s
release-image-harbor / build (push) Successful in 4m57s
test-build / guarddog (push) Successful in 5m25s
release-image-harbor / release (push) Successful in 3m17s
2026-02-18 22:42:56 -06:00
ea9ae016d7 fix: add env 2026-02-18 22:42:38 -06:00
0416ab7f9e feat: release 2.14.0
All checks were successful
test-build / guarddog (push) Successful in 30s
release-image-gitea / build (push) Successful in 48s
renovate / renovate (push) Successful in 2m21s
release-image-gitea / release (push) Successful in 1m57s
test-build / build (push) Successful in 4m7s
release-image-harbor / build (push) Successful in 6m46s
release-image-harbor / release (push) Successful in 4m20s
2026-02-18 21:48:17 -06:00
6f1728a909 feat: move url configuration to support file 2026-02-18 21:47:53 -06:00
db2711d878 feat: release 2.13.1
All checks were successful
test-build / guarddog (push) Successful in 30s
test-build / build (push) Successful in 59s
release-image-gitea / build (push) Successful in 50s
renovate / renovate (push) Successful in 2m26s
release-image-gitea / release (push) Successful in 1m52s
release-image-harbor / build (push) Successful in 6m14s
release-image-harbor / release (push) Successful in 11m50s
2026-02-18 21:26:50 -06:00
7f2a27248a feat: improve behavior of showmore, fix alignment 2026-02-18 21:26:23 -06:00
11 changed files with 22 additions and 28 deletions

View File

@@ -22,13 +22,11 @@ WORKDIR /app
COPY --from=prod-deps /app/node_modules /app/node_modules COPY --from=prod-deps /app/node_modules /app/node_modules
COPY --from=build /app/dist /app/dist COPY --from=build /app/dist /app/dist
ENV HOST=0.0.0.0 LABEL version="2.14.1"
ENV SITE_URL=https://www.alexlebens.dev
ENV DIRECTUS_URL=https://directus.alexlebens.net
ENV PORT=4321
LABEL version="2.13.0"
LABEL description="Astro based personal website" LABEL description="Astro based personal website"
ENV HOST=0.0.0.0
ENV PORT=4321
EXPOSE $PORT EXPOSE $PORT
CMD ["node", "./dist/server/entry.mjs"] CMD ["node", "./dist/server/entry.mjs"]

View File

@@ -9,12 +9,7 @@ import tailwindcss from '@tailwindcss/vite';
import icon from 'astro-icon'; import icon from 'astro-icon';
import swup from '@swup/astro'; import swup from '@swup/astro';
const getSiteURL = () => { import { getSiteURL } from './src/support/url';
if (process.env.SITE_URL) {
return `https://${process.env.SITE_URL}`;
}
return 'http://localhost:4321';
};
export default defineConfig({ export default defineConfig({
site: getSiteURL(), site: getSiteURL(),

View File

@@ -1,7 +1,7 @@
{ {
"name": "site-profile", "name": "site-profile",
"type": "module", "type": "module",
"version": "2.13.0", "version": "2.14.1",
"homepage": "https://www.alexlebens.dev", "homepage": "https://www.alexlebens.dev",
"bugs": { "bugs": {
"url": "https://gitea.alexlebens.dev/alexlebens/site-profile/issues", "url": "https://gitea.alexlebens.dev/alexlebens/site-profile/issues",

View File

@@ -4,8 +4,8 @@ import { Icon } from 'astro-icon/components';
import type { Post } from '@lib/directusTypes'; import type { Post } from '@lib/directusTypes';
import Image from '@components/ui/images/Image.astro'; import Image from '@components/ui/images/Image.astro';
import { getDirectusImageURL } from '@lib/directusFunctions';
import { formatDate } from '@support/time'; import { formatDate } from '@support/time';
import { getDirectusImageURL } from '@/support/url';
interface Props { interface Props {
post: Post; post: Post;

View File

@@ -2,7 +2,7 @@
import { Icon } from 'astro-icon/components'; import { Icon } from 'astro-icon/components';
import Logo from '@components/ui/logos/Logo.astro'; import Logo from '@components/ui/logos/Logo.astro';
import { getDirectusImageURL } from '@lib/directusFunctions'; import { getDirectusImageURL } from '@/support/url';
interface Props { interface Props {
topic: string; topic: string;

View File

@@ -2,7 +2,7 @@
import { Icon } from 'astro-icon/components'; import { Icon } from 'astro-icon/components';
import Image from '@components/ui/images/Image.astro'; import Image from '@components/ui/images/Image.astro';
import { getDirectusImageURL } from '@lib/directusFunctions'; import { getDirectusImageURL } from '@/support/url';
interface Props { interface Props {
title: string; title: string;

View File

@@ -2,7 +2,7 @@
import { Icon } from 'astro-icon/components'; import { Icon } from 'astro-icon/components';
import Image from '@components/ui/images/Image.astro'; import Image from '@components/ui/images/Image.astro';
import { getDirectusImageURL } from '@lib/directusFunctions'; import { getDirectusImageURL } from '@/support/url';
interface Props { interface Props {
title: string; title: string;

View File

@@ -18,7 +18,7 @@ const experiences = ((await directus.request(
<h3 class="smooth-reveal card-text-header flex relative items-center w-full gap-3 pb-10"> <h3 class="smooth-reveal card-text-header flex relative items-center w-full gap-3 pb-10">
Experience Experience
</h3> </h3>
<ul class="ml-8 w-full flex flex-col"> <ul class="flex flex-col w-full ml-8 pr-8">
{experiences.map((experience: Experience) => { {experiences.map((experience: Experience) => {
const startYear = new Date(experience.startDate).getFullYear(); const startYear = new Date(experience.startDate).getFullYear();
const endYear = experience.endDate != null ? new Date(experience.endDate).getFullYear() : 'Present'; const endYear = experience.endDate != null ? new Date(experience.endDate).getFullYear() : 'Present';
@@ -36,7 +36,7 @@ const experiences = ((await directus.request(
</time> </time>
</header> </header>
<div class="relative flex flex-col sm:col-span-12 pb-6"> <div class="relative flex flex-col sm:col-span-12 pb-6">
<div class="absolute bg-stone-400 -translate-x-[1.71rem] rounded-full h-2 w-2 mt-4"/> <div class="absolute bg-accent -translate-x-[1.71rem] rounded-full h-2 w-2 mt-3"/>
<h3> <h3>
<div <div
class="inline-flex items-center text-2xl leading-tight font-semibold" class="inline-flex items-center text-2xl leading-tight font-semibold"
@@ -78,7 +78,7 @@ const experiences = ((await directus.request(
</div> </div>
)} )}
{(experience.responsibilities || experience.achievements) && ( {(experience.responsibilities || experience.achievements) && (
<div class="relative flex flex-col gap-4 max-sm:h-auto! md:after:absolute md:after:bottom-0 md:after:h-12 md:after:w-full md:after:bg-linear-to-t md:after:from-neutral-200 dark:md:after:from-stone-700 md:after:content-[''] " :class="expanded ? 'after:hidden' : ''" x-show="expanded" x-collapse.min.50px> <div class="relative flex flex-col gap-4 after:absolute after:bottom-0 after:h-12 after:w-full after:bg-linear-to-t after:from-neutral-200 dark:after:from-stone-700 after:content-[''] " :class="expanded ? 'after:hidden' : ''" x-show="expanded" x-collapse.min.50px>
{experience.responsibilities && ( {experience.responsibilities && (
<div class="flex flex-col gap-1"> <div class="flex flex-col gap-1">
<h4 class="text-header font-semibold"> <h4 class="text-header font-semibold">
@@ -108,7 +108,7 @@ const experiences = ((await directus.request(
</div> </div>
)} )}
</div> </div>
<button @click="expanded = ! expanded" class="group/more flex items-center justify-center text-primary hover:text-primary-hover text-xs underline transition-all gap-1.5 w-fit cursor-pointer"> <button @click="expanded = ! expanded" class="group/more flex items-center justify-center text-primary hover:text-primary-hover text-xs underline transition-all gap-1.5 w-fit cursor-pointer">
<span x-text="expanded ? 'Show less' : 'Show more'"> <span x-text="expanded ? 'Show less' : 'Show more'">
Show more Show more
@@ -129,7 +129,7 @@ const experiences = ((await directus.request(
</button> </button>
<ul <ul
class="flex print:hidden flex-wrap gap-2" class="flex print:hidden flex-wrap gap-2 mt-2"
aria-label="Technologies used" aria-label="Technologies used"
> >
{experience.skills && experience.skills.map(skill => { {experience.skills && experience.skills.map(skill => {

View File

@@ -12,7 +12,7 @@ import type {
Skill, Skill,
} from '@lib/directusTypes'; } from '@lib/directusTypes';
import { getDirectusURL } from '@lib/directusFunctions'; import { getDirectusURL } from '@/support/url';
type Schema = { type Schema = {
site_global: Global; site_global: Global;

View File

@@ -10,8 +10,8 @@ import Image from '@components/ui/images/Image.astro';
import SocialShareButton from '@components/buttons/SocialShareButton.astro'; import SocialShareButton from '@components/buttons/SocialShareButton.astro';
import BaseLayout from '@layouts/BaseLayout.astro'; import BaseLayout from '@layouts/BaseLayout.astro';
import directus from '@lib/directus'; import directus from '@lib/directus';
import { getDirectusImageURL } from '@lib/directusFunctions';
import { formatDate } from '@support/time'; import { formatDate } from '@support/time';
import { getDirectusImageURL } from '@/support/url';
const post = Astro.props; const post = Astro.props;

View File

@@ -1,12 +1,13 @@
const getDirectusURL = () => { const getDirectusURL = () => {
if (process.env.DIRECTUS_URL) {
return `https://${process.env.DIRECTUS_URL}`;
}
return 'https://directus.alexlebens.net'; return 'https://directus.alexlebens.net';
}; };
const getSiteURL = () => {
return 'https://www.alexlebens.dev';
};
async function getDirectusImageURL(image: string) { async function getDirectusImageURL(image: string) {
return `${getDirectusURL()}/assets/${image}`; return `${getDirectusURL()}/assets/${image}`;
} }
export { getDirectusURL, getDirectusImageURL }; export { getDirectusURL, getSiteURL, getDirectusImageURL };