feat(docs): reorganize imports and improve formatting for readability
Some checks failed
Lint / lint (pull_request) Has been cancelled
Lint / lint (push) Successful in 9m36s

Streamline import orders in MDX components and layout files. Adjust text formatting in the homepage and configuration files for consistent structure and enhanced clarity. Add new accessibility-focused linting rules in `biome.json`.
This commit is contained in:
Mathis HERRIOT
2026-01-14 18:04:31 +01:00
parent 75ac95cadb
commit 24eb99093c
5 changed files with 82 additions and 28 deletions

View File

@@ -17,7 +17,15 @@
"linter": {
"enabled": true,
"rules": {
"recommended": true
"recommended": true,
"a11y": {
"useAriaPropsForRole": "warn",
"useSemanticElements": "warn",
"useFocusableInteractive": "warn"
},
"suspicious": {
"noUnknownAtRules": "off"
}
},
"domains": {
"next": "recommended",

View File

@@ -4,8 +4,8 @@ const withMDX = createMDX();
/** @type {import('next').NextConfig} */
const config = {
reactStrictMode: true,
output: 'standalone',
reactStrictMode: true,
output: "standalone",
};
export default withMDX(config);

View File

@@ -1,5 +1,13 @@
import {
ArrowRight,
Code,
Database,
Scale,
Server,
Shield,
Zap,
} from "lucide-react";
import Link from "next/link";
import { Shield, Scale, Zap, Database, Server, Code, ArrowRight } from "lucide-react";
export default function HomePage() {
return (
@@ -33,8 +41,9 @@ export default function HomePage() {
La Bible Technique de MemeGoat 🐐
</h1>
<p className="mt-6 text-xl leading-8 text-muted-foreground">
Parce que partager des MEME de qualité demande une infrastructure qui ne broute pas.
Découvrez comment nous avons bâti le futur du rire avec une pointe de sérieux (mais pas trop).
Parce que partager des MEME de qualité demande une infrastructure qui ne
broute pas. Découvrez comment nous avons bâti le futur du rire avec une
pointe de sérieux (mais pas trop).
</p>
<div className="mt-12 flex flex-col sm:flex-row items-center justify-center gap-4 sm:gap-x-6">
<Link
@@ -58,7 +67,9 @@ export default function HomePage() {
<section className="py-24 bg-fd-background/50 border-y border-border">
<div className="container px-6 lg:px-8 mx-auto">
<div className="mx-auto max-w-2xl lg:text-center mb-16">
<h2 className="text-base font-bold leading-7 text-primary uppercase tracking-widest">Les Fondations</h2>
<h2 className="text-base font-bold leading-7 text-primary uppercase tracking-widest">
Les Fondations
</h2>
<p className="mt-2 text-4xl font-extrabold tracking-tight text-foreground sm:text-5xl">
Une plateforme bâtie pour tenir
</p>
@@ -68,21 +79,27 @@ export default function HomePage() {
{[
{
name: "Coffre-Fort Bêêêê-ton",
description: "Chiffrement PGP au repos et hachage Argon2id. Vos données sont plus en sécurité ici que dans un enclos fermé à double tour.",
description:
"Chiffrement PGP au repos et hachage Argon2id. Vos données sont plus en sécurité ici que dans un enclos fermé à double tour.",
icon: Shield,
},
{
name: "RGPD & Relax",
description: "Droit à l'oubli et portabilité. On respecte votre vie privée autant que vous respectez un bon mème bien placé.",
description:
"Droit à l'oubli et portabilité. On respecte votre vie privée autant que vous respectez un bon mème bien placé.",
icon: Scale,
},
{
name: "Vitesse Turbo-Chèvre",
description: "Transcodage WebP/WebM instantané. Vos GIFs se chargent plus vite que votre ombre, même sur le vieux smartphone de mamie.",
description:
"Transcodage WebP/WebM instantané. Vos GIFs se chargent plus vite que votre ombre, même sur le vieux smartphone de mamie.",
icon: Zap,
},
].map((feature) => (
<div key={feature.name} className="flex flex-col border border-border p-10 rounded-3xl bg-card hover:border-primary/50 transition-all shadow-md hover:shadow-xl group">
<div
key={feature.name}
className="flex flex-col border border-border p-10 rounded-3xl bg-card hover:border-primary/50 transition-all shadow-md hover:shadow-xl group"
>
<dt className="flex items-center gap-x-4 text-xl font-bold leading-7 text-foreground">
<div className="p-3 rounded-xl bg-primary/10 group-hover:bg-primary group-hover:text-primary-foreground transition-colors">
<feature.icon className="h-6 w-6" aria-hidden="true" />
@@ -103,7 +120,9 @@ export default function HomePage() {
<section className="py-24 sm:py-32 overflow-hidden">
<div className="container px-6 lg:px-8 mx-auto">
<div className="mx-auto max-w-2xl lg:text-center mb-20">
<h2 className="text-base font-bold leading-7 text-primary uppercase tracking-widest text-center">Stack Technique</h2>
<h2 className="text-base font-bold leading-7 text-primary uppercase tracking-widest text-center">
Stack Technique
</h2>
<p className="mt-2 text-4xl font-extrabold tracking-tight text-foreground sm:text-5xl text-center">
Technologies de pointe
</p>
@@ -111,13 +130,22 @@ export default function HomePage() {
<div className="mx-auto max-w-5xl">
<div className="grid grid-cols-2 gap-6 md:grid-cols-4">
{[
{ name: "Next.js 16", icon: Code, color: "hover:text-black dark:hover:text-white" },
{
name: "Next.js 16",
icon: Code,
color: "hover:text-black dark:hover:text-white",
},
{ name: "NestJS 11", icon: Server, color: "hover:text-red-500" },
{ name: "PostgreSQL 15", icon: Database, color: "hover:text-blue-500" },
{ name: "Chèvre-Power", icon: Zap, color: "hover:text-orange-500" },
].map((tech) => (
<div key={tech.name} className="flex flex-col items-center p-8 border border-border rounded-2xl bg-card/50 hover:bg-card hover:border-primary transition-all group">
<tech.icon className={`h-12 w-12 text-muted-foreground mb-4 transition-colors ${tech.color}`} />
<div
key={tech.name}
className="flex flex-col items-center p-8 border border-border rounded-2xl bg-card/50 hover:bg-card hover:border-primary transition-all group"
>
<tech.icon
className={`h-12 w-12 text-muted-foreground mb-4 transition-colors ${tech.color}`}
/>
<span className="font-bold text-lg">{tech.name}</span>
</div>
))}
@@ -131,31 +159,49 @@ export default function HomePage() {
<div className="container px-6 lg:px-8 mx-auto">
<div className="grid grid-cols-1 md:grid-cols-2 gap-12 items-center">
<div>
<h2 className="text-3xl font-extrabold mb-6 italic text-primary">"On ne rigole pas avec le rire. Surtout quand il s'agit de vous." 🐐</h2>
<h2 className="text-3xl font-extrabold mb-6 italic text-primary">
"On ne rigole pas avec le rire. Surtout quand il s'agit de vous." 🐐
</h2>
<p className="text-lg text-muted-foreground mb-8">
Memegoat n'est pas qu'un site pour scroller à l'infini. C'est un site qui as pour but de partager des MEME de qualité sans surconsommer les ressources mondiales avec des fichiers beaucoup trop gros et des requêtes trop nombreuses.
Memegoat n'est pas qu'un site pour scroller à l'infini. C'est un site
qui as pour but de partager des MEME de qualité sans surconsommer les
ressources mondiales avec des fichiers beaucoup trop gros et des
requêtes trop nombreuses.
</p>
<Link
href="/docs/index"
className="inline-flex items-center text-primary font-bold hover:gap-3 transition-all gap-2 text-lg"
>
Plongez dans le code (garanti sans crottin) <ArrowRight className="h-6 w-6" />
Plongez dans le code (garanti sans crottin){" "}
<ArrowRight className="h-6 w-6" />
</Link>
</div>
<div className="grid grid-cols-1 sm:grid-cols-2 gap-4">
<Link href="/docs/database" className="p-6 border border-border rounded-2xl hover:bg-accent transition-colors font-bold flex flex-col gap-2">
<Link
href="/docs/database"
className="p-6 border border-border rounded-2xl hover:bg-accent transition-colors font-bold flex flex-col gap-2"
>
<Database className="h-6 w-6 text-primary" />
Modèle de Données
</Link>
<Link href="/docs/security" className="p-6 border border-border rounded-2xl hover:bg-accent transition-colors font-bold flex flex-col gap-2">
<Link
href="/docs/security"
className="p-6 border border-border rounded-2xl hover:bg-accent transition-colors font-bold flex flex-col gap-2"
>
<Shield className="h-6 w-6 text-primary" />
Sécurité PGP
</Link>
<Link href="/docs/api-reference" className="p-6 border border-border rounded-2xl hover:bg-accent transition-colors font-bold flex flex-col gap-2">
<Link
href="/docs/api-reference"
className="p-6 border border-border rounded-2xl hover:bg-accent transition-colors font-bold flex flex-col gap-2"
>
<Code className="h-6 w-6 text-primary" />
Référence API
</Link>
<Link href="/docs/deployment" className="p-6 border border-border rounded-2xl hover:bg-accent transition-colors font-bold flex flex-col gap-2">
<Link
href="/docs/deployment"
className="p-6 border border-border rounded-2xl hover:bg-accent transition-colors font-bold flex flex-col gap-2"
>
<Server className="h-6 w-6 text-primary" />
Déploiement
</Link>

View File

@@ -1,5 +1,5 @@
import { Image } from "fumadocs-core/framework";
import type { BaseLayoutProps } from "fumadocs-ui/layouts/shared";
import {Image} from "fumadocs-core/framework";
export function baseOptions(): BaseLayoutProps {
return {

View File

@@ -1,11 +1,11 @@
import { Accordion, Accordions } from "fumadocs-ui/components/accordion";
import { Callout } from "fumadocs-ui/components/callout";
import { Card, Cards } from "fumadocs-ui/components/card";
import { Step, Steps } from "fumadocs-ui/components/steps";
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
import defaultMdxComponents from "fumadocs-ui/mdx";
import type { MDXComponents } from "mdx/types";
import { Mermaid } from "@/components/mdx/mermaid";
import { Card, Cards } from "fumadocs-ui/components/card";
import { Callout } from "fumadocs-ui/components/callout";
import { Step, Steps } from "fumadocs-ui/components/steps";
import { Tabs, Tab } from "fumadocs-ui/components/tabs";
import { Accordion, Accordions } from "fumadocs-ui/components/accordion";
export function getMDXComponents(components?: MDXComponents): MDXComponents {
return {