Compare commits
11 Commits
2.0.1
...
renovate/a
Author | SHA1 | Date | |
---|---|---|---|
a0c04c7930
|
|||
b58cbdbe0a | |||
49e2376dbf | |||
6b1eaa439a | |||
f92f911360 | |||
1cdbbd4a11 | |||
da7c5c4a58 | |||
931d1009ed | |||
43ff986963 | |||
b9d85a5520 | |||
9836b40531 |
@@ -12,7 +12,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Login to Registry
|
||||
uses: docker/login-action@v3
|
||||
|
@@ -16,7 +16,7 @@ jobs:
|
||||
container: ghcr.io/renovatebot/renovate:41
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Renovate
|
||||
run: renovate
|
||||
|
@@ -14,7 +14,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Set up pnpm
|
||||
uses: pnpm/action-setup@v4
|
||||
|
@@ -1,7 +1,7 @@
|
||||
ARG REGISTRY=docker.io
|
||||
FROM ${REGISTRY}/node:22.18.0-alpine3.22 AS base
|
||||
|
||||
LABEL version="2.0.1"
|
||||
LABEL version="2.0.5"
|
||||
LABEL description="Astro based personal website"
|
||||
|
||||
ENV PNPM_HOME="/pnpm"
|
||||
|
23
LICENSE.md
23
LICENSE.md
@@ -1,23 +0,0 @@
|
||||
# MIT License
|
||||
|
||||
Copyright (c) 2025 Lê Vĩnh Khang
|
||||
|
||||
Copyright (c) 2025 Alex Lebens
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "site-profile",
|
||||
"type": "module",
|
||||
"version": "2.0.1",
|
||||
"version": "2.0.5",
|
||||
"homepage": "https://www.alexlebens.dev",
|
||||
"bugs": {
|
||||
"url": "https://gitea.alexlebens.dev/alexlebens/site-profile/issues",
|
||||
|
@@ -5,21 +5,9 @@ interface Props {
|
||||
description: string;
|
||||
count: number;
|
||||
publishDate: string;
|
||||
layoutPattern?: {
|
||||
smCol: number;
|
||||
mdCol: number;
|
||||
row: number;
|
||||
index: number;
|
||||
};
|
||||
}
|
||||
|
||||
const { slug, layoutPattern, title, description, count, publishDate } = Astro.props;
|
||||
const isSingleItem =
|
||||
layoutPattern &&
|
||||
layoutPattern.row === 1 &&
|
||||
(layoutPattern.smCol === 1 || layoutPattern.mdCol === 1);
|
||||
|
||||
const formatedDescription = isSingleItem ? `No description available` : description;
|
||||
const { slug, title, description, count, publishDate } = Astro.props;
|
||||
|
||||
const baseClasses =
|
||||
'group group-hover rounded-xl flex h-full min-h-[220px] cursor-pointer flex-col overflow-hidden';
|
||||
@@ -32,17 +20,17 @@ const bgColorClasses =
|
||||
<div
|
||||
class={`relative min-h-0 flex-grow overflow-hidden transition-all duration-300 ${bgColorClasses}`}
|
||||
>
|
||||
<div class="absolute inset-1 flex flex-col justify-end p-3 md:p-4 lg:p-5">
|
||||
<div class="absolute inset-1 flex flex-col p-3 md:p-4 lg:p-5">
|
||||
<div class="overflow-hidden">
|
||||
<h2
|
||||
class="group-hover:text-steel dark:group-hover:text-bermuda transition-text mb-4 text-4xl font-extrabold tracking-tight text-balance text-neutral-800 duration-300 dark:text-neutral-200"
|
||||
class="group-hover:text-steel dark:group-hover:text-bermuda transition-text mb-4 text-4xl font-extrabold tracking-tight text-balance whitespace-nowrap text-neutral-800 duration-300 dark:text-neutral-200"
|
||||
>
|
||||
{title}
|
||||
</h2>
|
||||
<p
|
||||
class=`mb-4 ${isSingleItem ? 'hidden lg:block' : ''} max-w-prose text-pretty font-light text-neutral-600 dark:text-neutral-400 sm:text-lg`
|
||||
>
|
||||
{formatedDescription}
|
||||
<p class="mb-4 font-light text-neutral-600 sm:text-lg dark:text-neutral-400">
|
||||
{description}
|
||||
</p>
|
||||
</div>
|
||||
<div
|
||||
class="mt-auto flex items-center justify-between pt-1 text-xs text-neutral-600 md:pt-2 dark:text-neutral-300"
|
||||
>
|
||||
|
@@ -10,7 +10,7 @@ interface Props {
|
||||
|
||||
const { title, description, url, icon } = Astro.props;
|
||||
|
||||
const baseClasses = 'smooth-reveal-2 group group-hover flex flex-col';
|
||||
const baseClasses = 'smooth-reveal-2 group group-hover flex flex-col ';
|
||||
const borderClasses = 'border border-neutral-100 dark:border-stone-500/20';
|
||||
const bgColorClasses =
|
||||
'bg-neutral-100/80 hover:bg-neutral-100 dark:bg-neutral-800/60 dark:hover:bg-neutral-800/90';
|
||||
@@ -19,7 +19,7 @@ const shadowClasses = 'shadow-xs hover:shadow-md dark:shadow-md dark:hover:shado
|
||||
|
||||
<div class={`${baseClasses}`}>
|
||||
<a
|
||||
class={`rounded-xl duration-300 transition-all ${borderClasses} ${bgColorClasses} ${shadowClasses}`}
|
||||
class={`rounded-xl duration-300 transition-all h-30 ${borderClasses} ${bgColorClasses} ${shadowClasses}`}
|
||||
href={url}
|
||||
data-astro-prefetch
|
||||
>
|
||||
|
@@ -7,6 +7,7 @@ import BlogCard from '@components/blog/BlogCard.astro';
|
||||
|
||||
const posts = await directus.request(
|
||||
readItems('posts', {
|
||||
filter: { published: { _eq: true } },
|
||||
fields: ['*'],
|
||||
sort: ['-published_date'],
|
||||
})
|
||||
|
5
src/env.d.ts
vendored
5
src/env.d.ts
vendored
@@ -1,8 +1,3 @@
|
||||
<<<<<<< HEAD
|
||||
/// <reference path="../.astro/types.d.ts" />
|
||||
/// <reference types="astro/client" />
|
||||
/// <reference types="astro/content" />
|
||||
=======
|
||||
/// <reference types="astro/client" />
|
||||
/// <reference path="../.astro/types.d.ts" />
|
||||
>>>>>>> 184f0c7 (fix path)
|
||||
|
@@ -25,6 +25,7 @@ export type Post = {
|
||||
tags: string[];
|
||||
category: string;
|
||||
selected: boolean;
|
||||
published: boolean;
|
||||
content: string;
|
||||
image: string;
|
||||
image_alt: string;
|
||||
|
@@ -13,6 +13,7 @@ import blogImg from '@images/autumn_tree.png';
|
||||
const global = await directus.request(readSingleton('site_global'));
|
||||
const posts = await directus.request(
|
||||
readItems('posts', {
|
||||
filter: { published: { _eq: true } },
|
||||
fields: ['*'],
|
||||
sort: ['-published_date'],
|
||||
})
|
||||
|
@@ -21,6 +21,7 @@ const { category } = Astro.props;
|
||||
const global = await directus.request(readSingleton('site_global'));
|
||||
const posts = await directus.request(
|
||||
readItems('posts', {
|
||||
filter: { published: { _eq: true } },
|
||||
fields: ['*'],
|
||||
sort: ['-published_date'],
|
||||
})
|
||||
|
@@ -14,6 +14,7 @@ import categoryImg from '@images/autumn_bench.png';
|
||||
const global = await directus.request(readSingleton('site_global'));
|
||||
const posts = await directus.request(
|
||||
readItems('posts', {
|
||||
filter: { published: { _eq: true } },
|
||||
fields: ['*'],
|
||||
sort: ['-published_date'],
|
||||
})
|
||||
@@ -118,7 +119,6 @@ const description =
|
||||
description={category.data.description}
|
||||
count={postMap.get(category.slug)?.length ?? 0}
|
||||
publishDate={timeago(postMap.get(category.slug)?.[0]?.published_date)}
|
||||
layoutPattern={category.layoutPattern}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
|
@@ -11,7 +11,8 @@ import homeImg from '@images/autumn_mountain.png';
|
||||
|
||||
const global = await directus.request(readSingleton('site_global'));
|
||||
|
||||
const description = 'Engineering the cloud by day, homelab by night, and exploring Minnesota in between.';
|
||||
const description =
|
||||
'Engineering the cloud by day, homelab by night, and exploring Minnesota in between.';
|
||||
---
|
||||
|
||||
<BaseLayout
|
||||
|
@@ -23,6 +23,7 @@ export async function GET(context: APIContext) {
|
||||
// Load the content collection entries to add to our RSS feed.
|
||||
const posts = await directus.request(
|
||||
readItems('posts', {
|
||||
filter: { published: { _eq: true } },
|
||||
fields: ['*'],
|
||||
sort: ['-published_date'],
|
||||
})
|
||||
|
@@ -1,58 +0,0 @@
|
||||
/** @type {import('tailwindcss').Config} */
|
||||
module.exports = {
|
||||
content: ['./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}', '*.{js,ts,jsx,tsx,mdx}'],
|
||||
darkMode: 'class',
|
||||
theme: {
|
||||
extend: {
|
||||
typography: (theme) => ({
|
||||
DEFAULT: {
|
||||
css: {
|
||||
a: {
|
||||
color: theme('colors.zinc.900'),
|
||||
'&:hover': {
|
||||
color: theme('colors.zinc.700'),
|
||||
},
|
||||
textDecoration: 'underline',
|
||||
textDecorationColor: theme('colors.zinc.400'),
|
||||
textUnderlineOffset: '2px',
|
||||
},
|
||||
'h1, h2, h3, h4, h5, h6': {
|
||||
color: theme('colors.zinc.900'),
|
||||
},
|
||||
code: {
|
||||
color: theme('colors.zinc.900'),
|
||||
backgroundColor: theme('colors.zinc.100'),
|
||||
borderRadius: theme('borderRadius.md'),
|
||||
padding: `${theme('padding.1')} ${theme('padding.1.5')}`,
|
||||
},
|
||||
'code::before': {
|
||||
content: '""',
|
||||
},
|
||||
'code::after': {
|
||||
content: '""',
|
||||
},
|
||||
},
|
||||
},
|
||||
invert: {
|
||||
css: {
|
||||
a: {
|
||||
color: theme('colors.zinc.100'),
|
||||
'&:hover': {
|
||||
color: theme('colors.zinc.300'),
|
||||
},
|
||||
textDecorationColor: theme('colors.zinc.700'),
|
||||
},
|
||||
'h1, h2, h3, h4, h5, h6': {
|
||||
color: theme('colors.zinc.100'),
|
||||
},
|
||||
code: {
|
||||
color: theme('colors.zinc.100'),
|
||||
backgroundColor: theme('colors.zinc.800'),
|
||||
},
|
||||
},
|
||||
},
|
||||
}),
|
||||
},
|
||||
},
|
||||
plugins: [require('@tailwindcss/typography')],
|
||||
};
|
Reference in New Issue
Block a user