diff --git a/content/en/blog/what-is-mksaas.mdx b/content/en/blog/what-is-mksaas.mdx
index 0d7de69..d83c4be 100644
--- a/content/en/blog/what-is-mksaas.mdx
+++ b/content/en/blog/what-is-mksaas.mdx
@@ -2,7 +2,7 @@
title: What is MkSaaS?
description: MkSaaS is the best boilerplate for building AI SaaS websites.
image: /images/blog/mksaas-og.png
-date: 2024-11-24T12:00:00.000Z
+date: 2024-11-26T12:00:00.000Z
published: true
categories: [news, guide]
author: mksaas
diff --git a/content/zh/blog/what-is-mksaas.mdx b/content/zh/blog/what-is-mksaas.mdx
index 290a32d..82ae335 100644
--- a/content/zh/blog/what-is-mksaas.mdx
+++ b/content/zh/blog/what-is-mksaas.mdx
@@ -2,7 +2,7 @@
title: MkSaaS 是什么?
description: MkSaaS 是构建 AI SaaS 网站的最佳样板。
image: /images/blog/mksaas-og.png
-date: 2024-11-24T12:00:00.000Z
+date: 2024-11-26T12:00:00.000Z
published: true
categories: [news, guide]
author: mksaas
diff --git a/src/app/(protected)/dashboard/page.tsx b/src/app/[locale]/(dashborad)/dashboard/page.tsx
similarity index 100%
rename from src/app/(protected)/dashboard/page.tsx
rename to src/app/[locale]/(dashborad)/dashboard/page.tsx
diff --git a/src/app/[locale]/(marketing)/blog/(blog)/layout.tsx b/src/app/[locale]/(marketing)/blog/(blog)/layout.tsx
index 85f2c23..c07c4ba 100644
--- a/src/app/[locale]/(marketing)/blog/(blog)/layout.tsx
+++ b/src/app/[locale]/(marketing)/blog/(blog)/layout.tsx
@@ -1,5 +1,25 @@
+import Container from '@/components/container';
+import { HeaderSection } from '@/components/shared/header-section';
import { PropsWithChildren } from 'react';
-export default function BlogLayout({ children }: PropsWithChildren) {
- return children;
-}
\ No newline at end of file
+export default async function BlogListLayout({
+ children,
+}: { children: React.ReactNode }) {
+ return (
+
+
+
+
+ {/* */}
+
+
+
+ {children}
+
+
+ );
+}
diff --git a/src/app/[locale]/(marketing)/blog/(blog)/page.tsx b/src/app/[locale]/(marketing)/blog/(blog)/page.tsx
index bc54f5f..a49291f 100644
--- a/src/app/[locale]/(marketing)/blog/(blog)/page.tsx
+++ b/src/app/[locale]/(marketing)/blog/(blog)/page.tsx
@@ -36,20 +36,6 @@ export default async function BlogPage({ params }: BlogPageProps) {
);
return (
-
-
-
-
-
- Blog
-
-
- Latest news and updates from our team
-
-
-
-
-
-
+
);
}
\ No newline at end of file
diff --git a/src/app/[locale]/(marketing)/blog/[...slug]/layout.tsx b/src/app/[locale]/(marketing)/blog/[...slug]/layout.tsx
index 746ffc1..3ed16d2 100644
--- a/src/app/[locale]/(marketing)/blog/[...slug]/layout.tsx
+++ b/src/app/[locale]/(marketing)/blog/[...slug]/layout.tsx
@@ -1,10 +1,9 @@
import Container from '@/components/container';
-import { Separator } from '@/components/ui/separator';
import { PropsWithChildren } from 'react';
export default function BlogPostLayout({ children }: PropsWithChildren) {
return (
-
+
{children}
diff --git a/src/app/[locale]/(marketing)/blog/[...slug]/page.tsx b/src/app/[locale]/(marketing)/blog/[...slug]/page.tsx
index 997b46a..4f5448b 100644
--- a/src/app/[locale]/(marketing)/blog/[...slug]/page.tsx
+++ b/src/app/[locale]/(marketing)/blog/[...slug]/page.tsx
@@ -92,9 +92,9 @@ export default async function BlogPostPage(props: NextPageProps) {
return (
- {/* Content section */}
+ {/* content section */}
- {/* Left column */}
+ {/* left column (blog post content) */}
{/* Basic information */}
@@ -129,7 +129,7 @@ export default async function BlogPostPage(props: NextPageProps) {
- {/* Right column (sidebar) */}
+ {/* right column (sidebar) */}
{/* author info */}
@@ -184,6 +184,9 @@ export default async function BlogPostPage(props: NextPageProps) {
+
+ {/* newsletter */}
+ {/* TODO: add newsletter */}
);
}
\ No newline at end of file
diff --git a/src/components/blog/blog-card.tsx b/src/components/blog/blog-card.tsx
index 9b285d7..1f6a616 100644
--- a/src/components/blog/blog-card.tsx
+++ b/src/components/blog/blog-card.tsx
@@ -71,9 +71,9 @@ export default function BlogCard({ post }: BlogCardProps) {
{/* Post excerpt, hidden for now */}
-
+
{post.description && (
-
+
{post.description}
)}
@@ -83,7 +83,7 @@ export default function BlogCard({ post }: BlogCardProps) {
{/* Author and date */}
-
+
{post?.author?.avatar && (
{posts?.length > 0 && (
-
+
{posts.map((post) => (
))}
@@ -25,7 +25,7 @@ export function BlogGridSkeleton({
count = POSTS_PER_PAGE,
}: { count?: number }) {
return (
-
+
{[...Array(count)].map((_, index) => (
))}
diff --git a/src/components/shared/header-section.tsx b/src/components/shared/header-section.tsx
index 11f8455..ff61ef8 100644
--- a/src/components/shared/header-section.tsx
+++ b/src/components/shared/header-section.tsx
@@ -45,7 +45,7 @@ export function HeaderSection({
) : null}
{subtitle ? (
-
+
{subtitle}
) : null}