improve blog page design

This commit is contained in:
2026-05-21 16:18:52 +02:00
parent b7f7ae8f31
commit d38902643c
2 changed files with 24 additions and 11 deletions
+15 -1
View File
@@ -1,3 +1,4 @@
import React from "react";
import type { Metadata } from "next"; import type { Metadata } from "next";
import { notFound } from "next/navigation"; import { notFound } from "next/navigation";
import { MDXRemote } from "next-mdx-remote/rsc"; import { MDXRemote } from "next-mdx-remote/rsc";
@@ -6,6 +7,7 @@ import { ArticleHero } from "@/components/sections/ArticleHero";
import { ArticleSummary } from "@/components/sections/ArticleSummary"; import { ArticleSummary } from "@/components/sections/ArticleSummary";
import { locales } from "@/middleware"; import { locales } from "@/middleware";
import Link from "next/link"; import Link from "next/link";
import { MermaidDiagram } from "@/components/mdx/MermaidDiagram";
type props = { type props = {
params: Promise<{ params: Promise<{
@@ -119,6 +121,17 @@ const mdxComponents = {
</a> </a>
); );
}, },
pre: (props: React.ComponentPropsWithoutRef<"pre"> & { children?: React.ReactElement<{ className?: string; children?: React.ReactNode }> }) => {
const child = props.children;
const isMermaid = child?.props?.className?.includes("language-mermaid");
if (isMermaid && child) {
const code = String(child.props.children).trimEnd();
return <MermaidDiagram code={code} />;
}
return <pre {...props} />;
},
}; };
export default async function ArticlePage({ params }: props) { export default async function ArticlePage({ params }: props) {
@@ -197,8 +210,9 @@ export default async function ArticlePage({ params }: props) {
)} )}
<article <article
className=" className="
flex flex-col gap-12 flex flex-col gap-5
[&_h2]:font-serif [&_h2]:text-[clamp(40px,5vw,64px)] [&_h2]:text-brand-brown [&_h2]:leading-none [&_h2]:mb-6 [&_h2]:mt-2 [&_h2]:font-serif [&_h2]:text-[clamp(40px,5vw,64px)] [&_h2]:text-brand-brown [&_h2]:leading-none [&_h2]:mb-6 [&_h2]:mt-2
[&_h3]:font-serif [&_h3]:text-[clamp(24px,3vw,36px)] [&_h3]:text-brand-brown [&_h3]:leading-tight [&_h3]:mb-4 [&_h3]:mt-2
[&_p]:font-sans [&_p]:text-sm [&_p]:text-brand-brown/70 [&_p]:leading-[1.9] [&_p]:font-sans [&_p]:text-sm [&_p]:text-brand-brown/70 [&_p]:leading-[1.9]
[&_strong]:font-semibold [&_strong]:text-brand-brown/85 [&_strong]:font-semibold [&_strong]:text-brand-brown/85
[&_a]:text-brand-brown [&_a]:underline [&_a]:text-brand-brown [&_a]:underline
+5 -6
View File
@@ -192,16 +192,15 @@
}, },
"active": "224cf476c7b474e6", "active": "224cf476c7b474e6",
"lastOpenFiles": [ "lastOpenFiles": [
"blog/fr/03-Deploying-an-infrastructure-for-a-macos-app-distribution.mdx",
"blog/en/03-Deploying-an-infrastructure-for-a-macos-app-distribution.mdx",
"blog/fr/02-Claude-Design-vs-Figma-Make.mdx",
"blog/fr/01-How-I-built-my-new-website-and-why.mdx",
"blog/fr/02.mdx", "blog/fr/02.mdx",
"blog/en/02.mdx", "blog/en/02.mdx",
"blog/fr/02-Claude-Design-vs-Figma-Make.mdx",
"blog/en/02-Claude-Design-vs-Figma-Make.mdx", "blog/en/02-Claude-Design-vs-Figma-Make.mdx",
"projects/fr/Thence.mdx", "projects/fr/Thence.mdx",
"projects/en/Thence.mdx", "projects/en/Thence.mdx",
"blog/fr/01-How-I-built-my-new-website-and-why.mdx", "blog/en/01-How-I-built-my-new-website-and-why.mdx"
"blog/en/01-How-I-built-my-new-website-and-why.mdx",
"blog/template.mdx",
"projects/fr/MGDev.mdx",
"projects/en/MGDev.mdx"
] ]
} }