From 5b7ccf0b671e2999b62befc729a3e517a0433728 Mon Sep 17 00:00:00 2001
From: Bertrand Yuan <bert.yuan@outlook.com>
Date: Mon, 15 Dec 2025 23:48:10 +0800
Subject: initial commit -- the front-end prototype

The initial code is base on Anirudh's work.

More to see at:

    https://github.com/techwithanirudh/shadcn-blog

Therefore, the code in this commit is under MIT license.
---
 src/components/mdx-layout.tsx | 51 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)
 create mode 100644 src/components/mdx-layout.tsx

(limited to 'src/components/mdx-layout.tsx')

diff --git a/src/components/mdx-layout.tsx b/src/components/mdx-layout.tsx
new file mode 100644
index 0000000..bc68a93
--- /dev/null
+++ b/src/components/mdx-layout.tsx
@@ -0,0 +1,51 @@
+import { PostComments } from '@/app/(home)/posts/[slug]/page.client';
+import type { TOCItemType } from 'fumadocs-core/server';
+import { InlineTOC } from 'fumadocs-ui/components/inline-toc';
+import type { ReactNode } from 'react';
+import { Section } from './section';
+
+interface MdxLayoutProps {
+  children: ReactNode;
+  title: string;
+  toc?: TOCItemType[] | null;
+  comments?: boolean;
+  slug: string;
+}
+
+export default function MdxLayout({
+  children,
+  title,
+  toc,
+  comments,
+  slug,
+}: MdxLayoutProps): ReactNode {
+  return (
+    <>
+      <Section className='p-4 lg:p-6'>
+        <h1 className='text-center font-bold text-3xl leading-tight tracking-tighter md:text-4xl'>
+          {title}
+        </h1>
+      </Section>
+
+      <Section className='h-full' sectionClassName='flex flex-1'>
+        <article className='flex min-h-full flex-col lg:flex-row'>
+          <div className='flex flex-1 flex-col gap-4'>
+            {toc?.length ? (
+              <InlineTOC
+                items={toc}
+                className='rounded-none border-0 border-border/70 border-b border-dashed dark:border-border'
+              />
+            ) : null}
+            <div className='prose min-w-0 flex-1 px-4'>{children}</div>
+            {comments ? (
+              <PostComments
+                slug={slug}
+                className='[&_form>div]:!rounded-none rounded-none border-0 border-border/70 border-t border-dashed dark:border-border'
+              />
+            ) : null}
+          </div>
+        </article>
+      </Section>
+    </>
+  );
+}
-- 
cgit v1.2.3

