fix: KO metadata layout bad generation
This commit is contained in:
@@ -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>;
|
|
||||||
@@ -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
28
src/app/not-found.tsx
Normal 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>
|
||||||
|
);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user