add author to blog posts

Signed-off-by: Hadi <112569860+anotherhadi@users.noreply.github.com>
This commit is contained in:
Hadi
2026-04-24 20:33:43 +02:00
parent 0a8c04fccb
commit e332a5732b
2 changed files with 47 additions and 26 deletions
+18
View File
@@ -0,0 +1,18 @@
---
import { Image } from "astro:assets";
const avatar = "/avatar.jpg";
const username = "anotherhadi"
const bio = "Infosec engineer."
---
<div class="flex gap-3 justify-start">
<div
class="ring-base-300 ring-offset-base-100 rounded-full ring-2 ring-offset-2 flex justify-center items-center"
>
<Image src={avatar} alt="anotherhadi avatar" class="rounded-full m-auto" width={36} height={36}/>
</div>
<div>
<p class="text-sm font-semibold"><a href="/"><span class="text-base-content/40">@</span>{username}</a></p>
<p class="text-xs text-base-content/60">{bio}</p>
</div>
</div>
+29 -26
View File
@@ -5,6 +5,7 @@ import TagBadge from "../components/TagBadge.astro";
import BackToTop from "../components/BackToTop.astro"; import BackToTop from "../components/BackToTop.astro";
import { ChevronLeft } from "@lucide/astro"; import { ChevronLeft } from "@lucide/astro";
import { parse } from "node-html-parser"; import { parse } from "node-html-parser";
import Author from "../components/Author.astro";
interface Props { interface Props {
title: string; title: string;
@@ -54,17 +55,17 @@ const toc = headers.map((header) => ({
<!-- Featured Image --> <!-- Featured Image -->
{ {
image && ( image && (
<figure class="mb-8 rounded-2xl overflow-hidden"> <figure class="mb-8 rounded-2xl overflow-hidden">
<Image <Image
src={image} src={image}
alt={title} alt={title}
class="w-full aspect-video object-cover" class="w-full aspect-video object-cover"
width={1200} width={1200}
height={630} height={630}
/> />
</figure> </figure>
) )
} }
<!-- Post Header --> <!-- Post Header -->
@@ -73,7 +74,7 @@ const toc = headers.map((header) => ({
<p class="text-xl text-base-content/70 mb-4">{description}</p> <p class="text-xl text-base-content/70 mb-4">{description}</p>
<div <div
class="flex flex-wrap items-center gap-4 text-sm text-base-content/60" class="flex flex-wrap items-center gap-4 text-sm text-base-content/60 mb-4"
> >
<time datetime={publishDate.toISOString()}> <time datetime={publishDate.toISOString()}>
{formatDate(publishDate)} {formatDate(publishDate)}
@@ -81,24 +82,26 @@ const toc = headers.map((header) => ({
<span>•</span> <span>•</span>
<span>{readingTime} min read</span> <span>{readingTime} min read</span>
{ {
updatedDate && ( updatedDate && (
<> <>
<span>•</span> <span>•</span>
<span>Updated: {formatDate(updatedDate)}</span> <span>Updated: {formatDate(updatedDate)}</span>
</> </>
) )
} }
</div> </div>
{ {
tags && tags.length > 0 && ( tags && tags.length > 0 && (
<div class="flex flex-wrap gap-2 mt-4"> <div class="flex flex-wrap gap-2 mb-4">
{tags.map((tag) => ( {tags.map((tag) => (
<TagBadge tag={tag} /> <TagBadge tag={tag} />
))} ))}
</div> </div>
) )
} }
<Author />
</header> </header>
<!-- Divider --> <!-- Divider -->
@@ -170,7 +173,7 @@ const toc = headers.map((header) => ({
<span class="text-base-content/30">•</span> <span class="text-base-content/30">•</span>
<a href="/#contact" class="link link-hover">Contact me</a> <a href="/#contact" class="link link-hover">Contact me</a>
<span class="text-base-content/30">•</span> <span class="text-base-content/30">•</span>
<a href="https://ko-fi.com/anotherhadi" class="link link-hover">Support me</a> <a href="https://ko-fi.com/anotherhadi" class="link link-hover">Support me</a>
</div> </div>
</div> </div>
</article> </article>