diff --git a/app/(pages)/blog/[slug]/page.tsx b/app/(pages)/blog/[slug]/page.tsx
index 617317e..431b958 100644
--- a/app/(pages)/blog/[slug]/page.tsx
+++ b/app/(pages)/blog/[slug]/page.tsx
@@ -12,6 +12,7 @@ import { cn, getBackgroundImage } from "@/lib/utils"
import { Metadata } from "next"
import Link from "next/link"
import { notFound } from "next/navigation"
+import { BlogHeader } from "../sections/BlogHeader"
export const dynamic = "force-dynamic"
@@ -101,79 +102,7 @@ export default function BlogArticle({ params }: any) {
: undefined,
}}
/>
-
diff --git a/app/(pages)/blog/sections/BlogHeader.tsx b/app/(pages)/blog/sections/BlogHeader.tsx
new file mode 100644
index 0000000..dfb0868
--- /dev/null
+++ b/app/(pages)/blog/sections/BlogHeader.tsx
@@ -0,0 +1,114 @@
+"use client"
+
+import { blogArticleCardTagCardVariants } from "@/components/blog/blog-article-card"
+import { AppContent } from "@/components/ui/app-content"
+import { Button } from "@/components/ui/button"
+import { Label } from "@/components/ui/label"
+import { Markdown } from "@/components/ui/markdown"
+import { cn } from "@/lib/utils"
+import Link from "next/link"
+
+interface BlogHeaderProps {
+ post: any
+ imageAsCover: boolean
+}
+
+export const BlogHeader = ({ post, imageAsCover }: BlogHeaderProps) => {
+ const authors =
+ (post?.authors ?? [])?.length > 0 ? post.authors?.join(", ") : null
+
+ return (
+
+
+
+
+ {authors && (
+
+ {authors}
+
+ )}
+
+
+ {post?.date || post?.tldr ? (
+
+ {post?.date && (
+
+ {new Date(post?.date).toLocaleDateString("en-US", {
+ month: "long",
+ day: "numeric",
+ year: "numeric",
+ })}
+
+ )}
+ {post?.canonical && (
+
+ )}
+ {post?.tldr && (
+
(
+
+ {children}
+
+ ),
+ }}
+ >
+ {post?.tldr}
+
+ )}
+
+ ) : null}
+ {(post?.tags ?? [])?.length > 0 && (
+
+
+ Tags:
+
+
+ {post?.tags?.map((tag: any) => (
+
+
+
+ ))}
+
+
+ )}
+
+
+ )
+}
diff --git a/components/icons.tsx b/components/icons.tsx
index 4d540b1..eda7567 100644
--- a/components/icons.tsx
+++ b/components/icons.tsx
@@ -542,6 +542,39 @@ export const Icons = {
/>
),
+ copied: (props: LucideProps) => (
+
+ ),
+ copy: (props: LucideProps) => (
+
+ ),
mirror: (props: LucideProps) => (