fix: KO metadata layout bad generation

This commit is contained in:
Julien Froidefond
2025-02-13 18:24:35 +01:00
parent f70f852748
commit d95e101dc2
3 changed files with 107 additions and 71 deletions

View File

@@ -1,65 +0,0 @@
<head>
{/* ... existing meta tags ... */}
{/* Splashscreens pour iOS */}
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
{/* iPad Pro 12.9" */}
<link
rel="apple-touch-startup-image"
media="screen and (device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
href="/images/splash/splash-2048x2732.png"
/>
{/* iPad Pro 11" */}
<link
rel="apple-touch-startup-image"
media="screen and (device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
href="/images/splash/splash-1668x2388.png"
/>
{/* iPad Mini, Air */}
<link
rel="apple-touch-startup-image"
media="screen and (device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
href="/images/splash/splash-1536x2048.png"
/>
{/* iPhone X/XS */}
<link
rel="apple-touch-startup-image"
media="screen and (device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
href="/images/splash/splash-1125x2436.png"
/>
{/* iPhone XS Max */}
<link
rel="apple-touch-startup-image"
media="screen and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
href="/images/splash/splash-1242x2688.png"
/>
{/* iPhone XR */}
<link
rel="apple-touch-startup-image"
media="screen and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
href="/images/splash/splash-828x1792.png"
/>
{/* iPhone 8, SE */}
<link
rel="apple-touch-startup-image"
media="screen and (device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
href="/images/splash/splash-750x1334.png"
/>
{/* iPhone 8 Plus */}
<link
rel="apple-touch-startup-image"
media="screen and (device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
href="/images/splash/splash-1242x2208.png"
/>
{/* ... existing code ... */}
</head>;

View File

@@ -6,13 +6,28 @@ const inter = Inter({ subsets: ["latin"] });
export const metadata: Metadata = { export const metadata: Metadata = {
title: "StripStream - Komga Reader", title: "StripStream - Komga Reader",
description: "A modern web reader for Komga", description: "Votre bibliothèque numérique pour lire vos BD, mangas et comics préférés",
manifest: "/manifest.json",
themeColor: "#4F46E5",
appleWebApp: {
capable: true,
statusBarStyle: "default",
title: "StripStream",
},
icons: { icons: {
icon: [ icon: [
{ {
url: "/favicon.svg", url: "/favicon.svg",
type: "image/svg+xml", type: "image/svg+xml",
}, },
{ url: "/images/icons/icon-72x72.png", sizes: "72x72", type: "image/png" },
{ url: "/images/icons/icon-96x96.png", sizes: "96x96", type: "image/png" },
{ url: "/images/icons/icon-128x128.png", sizes: "128x128", type: "image/png" },
{ url: "/images/icons/icon-144x144.png", sizes: "144x144", type: "image/png" },
{ url: "/images/icons/icon-152x152.png", sizes: "152x152", type: "image/png" },
{ url: "/images/icons/icon-192x192.png", sizes: "192x192", type: "image/png" },
{ url: "/images/icons/icon-384x384.png", sizes: "384x384", type: "image/png" },
{ url: "/images/icons/icon-512x512.png", sizes: "512x512", type: "image/png" },
], ],
apple: [ apple: [
{ {
@@ -32,11 +47,26 @@ export const metadata: Metadata = {
}, },
], ],
}, },
manifest: "/manifest.json", viewport: {
appleWebApp: { width: "device-width",
capable: true, initialScale: 1,
statusBarStyle: "default", maximumScale: 1,
title: "StripStream", userScalable: false,
},
applicationName: "StripStream",
generator: "Next.js",
keywords: ["comics", "manga", "bd", "reader", "komga", "stripstream"],
authors: [{ name: "Julien Froidefond" }],
colorScheme: "dark light",
formatDetection: {
telephone: false,
},
other: {
"mobile-web-app-capable": "yes",
"apple-mobile-web-app-capable": "yes",
"apple-mobile-web-app-status-bar-style": "black-translucent",
"msapplication-TileColor": "#4F46E5",
"msapplication-tap-highlight": "no",
}, },
}; };
@@ -46,6 +76,49 @@ import ClientLayout from "@/components/layout/ClientLayout";
export default function RootLayout({ children }: { children: React.ReactNode }) { export default function RootLayout({ children }: { children: React.ReactNode }) {
return ( return (
<html lang="fr" suppressHydrationWarning> <html lang="fr" suppressHydrationWarning>
<head>
{/* Splashscreens pour iOS */}
<link
rel="apple-touch-startup-image"
media="screen and (device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
href="/images/splash/splash-2048x2732.png"
/>
<link
rel="apple-touch-startup-image"
media="screen and (device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
href="/images/splash/splash-1668x2388.png"
/>
<link
rel="apple-touch-startup-image"
media="screen and (device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
href="/images/splash/splash-1536x2048.png"
/>
<link
rel="apple-touch-startup-image"
media="screen and (device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
href="/images/splash/splash-1125x2436.png"
/>
<link
rel="apple-touch-startup-image"
media="screen and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
href="/images/splash/splash-1242x2688.png"
/>
<link
rel="apple-touch-startup-image"
media="screen and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
href="/images/splash/splash-828x1792.png"
/>
<link
rel="apple-touch-startup-image"
media="screen and (device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
href="/images/splash/splash-750x1334.png"
/>
<link
rel="apple-touch-startup-image"
media="screen and (device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
href="/images/splash/splash-1242x2208.png"
/>
</head>
<body className={inter.className}> <body className={inter.className}>
<ClientLayout>{children}</ClientLayout> <ClientLayout>{children}</ClientLayout>
</body> </body>

28
src/app/not-found.tsx Normal file
View File

@@ -0,0 +1,28 @@
import Link from "next/link";
import { Metadata } from "next";
export const metadata: Metadata = {
title: "Page non trouvée - StripStream",
description: "La page que vous recherchez n'existe pas ou a été déplacée.",
robots: {
index: false,
follow: true,
},
};
export default function NotFound() {
return (
<div className="container flex flex-col items-center justify-center min-h-[calc(100vh-theme(spacing.14))] space-y-4 text-center">
<h1 className="text-4xl font-bold">404 - Page non trouvée</h1>
<p className="text-muted-foreground max-w-[600px]">
Désolé, la page que vous recherchez n'existe pas ou a été déplacée.
</p>
<Link
href="/"
className="inline-flex items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground ring-offset-background transition-colors hover:bg-primary/90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2"
>
Retour à l'accueil
</Link>
</div>
);
}