diff --git a/app/blog/page.tsx b/app/blog/page.tsx index 780cd39..567db7c 100644 --- a/app/blog/page.tsx +++ b/app/blog/page.tsx @@ -4,6 +4,8 @@ import { formatDate2, stringToDate } from "@/lib/utils"; import { getMetadata } from "@/app/layout"; import Image from "next/image"; import Link from "next/link"; +import { AuroraText } from "@/components/ui/aurora"; +import { ShineBorder } from "@/components/ui/shine-border"; import docuConfig from "@/docu.json"; export const metadata = getMetadata({ @@ -16,16 +18,17 @@ export default async function BlogIndexPage() { (a, b) => stringToDate(b.date).getTime() - stringToDate(a.date).getTime() ); return ( -
-
-

- Blog Posts +
+
+ # Stay Informed, Stay Ahead +

+ Blog Posts

-

- Discover the latest updates, tutorials, and insights on {meta.title}. +

+ Explore updates, tips, and deep dives from the {meta.title}.

-
-
+
+
{blogs.map((blog) => ( ))} @@ -45,9 +48,8 @@ function BlogCard({ return ( -

{title}

-

{description}

-
+
+

{title}

+

{description}

+
+

Published on {formatDate2(date)}

diff --git a/app/changelog/page.tsx b/app/changelog/page.tsx index 397a039..0caacf0 100644 --- a/app/changelog/page.tsx +++ b/app/changelog/page.tsx @@ -2,42 +2,23 @@ import { Suspense } from "react"; import { getChangelogEntries } from "@/lib/changelog"; import { VersionEntry } from "@/components/changelog/version-entry"; import { VersionToc } from "@/components/changelog/version-toc"; -import { getMetadata } from "@/app/layout"; -import docuConfig from "@/docu.json"; import { FloatingVersionToc } from "@/components/changelog/floating-version"; -export const metadata = getMetadata({ - title: "Changelog", - description: "Latest updates and improvements to DocuBook", - image: "release-note.png", -}); - export default async function ChangelogPage() { const entries = await getChangelogEntries(); - const { meta } = docuConfig; - return ( -
-
-
-

Changelog

-

- Latest updates and improvements to {meta.title} -

-
-
-
-
- }> + return ( +
+ }> ({ version, date }))} /> -
+
-
-
+
+
{entries.map((entry, index) => (
-
-
{/* Floating TOC for smaller screens */} {entries.length > 0 && ( { + const insertAtCursor = (textArea: HTMLTextAreaElement, text: string) => { const start = textArea.selectionStart; const end = textArea.selectionEnd; const before = markdown.substring(0, start); const after = markdown.substring(end); - // Menambahkan satu baris kosong sebelum dan sesudah komponen - const newText = `${before}${text}\n${after}`; + const needsLeadingNewline = before && !before.endsWith('\n\n') ? '\n\n' : ''; + const needsTrailingNewline = after && !after.startsWith('\n\n') ? '\n\n' : ''; + + const newText = `${before}${needsLeadingNewline}${text}${needsTrailingNewline}${after}`; setMarkdown(newText); requestAnimationFrame(() => { - textArea.focus(); - const newPosition = start + text.length + 1; - textArea.setSelectionRange(newPosition, newPosition); + textArea.focus(); + const newPosition = before.length + needsLeadingNewline.length + text.length + 1; + textArea.setSelectionRange(newPosition, newPosition); }); - }; - + }; if (isMobile) { return ; diff --git a/components/changelog/floating-version.tsx b/components/changelog/floating-version.tsx index e2eb109..4175564 100644 --- a/components/changelog/floating-version.tsx +++ b/components/changelog/floating-version.tsx @@ -51,7 +51,7 @@ export function FloatingVersionToc({ versions }: FloatingVersionTocProps) { }; return ( -
+
+ + {/* Content */} + {!collapsed && ( + + )} ); } diff --git a/components/leftbar.tsx b/components/leftbar.tsx index ab8c939..599c729 100644 --- a/components/leftbar.tsx +++ b/components/leftbar.tsx @@ -9,7 +9,7 @@ import { } from "@/components/ui/sheet"; import { Logo, NavMenu } from "@/components/navbar"; import { Button } from "@/components/ui/button"; -import { AlignLeftIcon, ArrowLeftFromLine, ArrowRightFromLine } from "lucide-react"; +import { AlignLeftIcon, PanelLeftClose, PanelLeftOpen } from "lucide-react"; import { FooterButtons } from "@/components/footer"; import { DialogTitle } from "@/components/ui/dialog"; import { ScrollArea } from "@/components/ui/scroll-area"; @@ -22,7 +22,7 @@ export function Leftbar() { return (