MOAR SEO
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { TooltipTrigger } from "@radix-ui/react-tooltip";
|
||||
import { eq } from "drizzle-orm";
|
||||
import { BookAlert, CircleDollarSign, SendHorizonal } from "lucide-react";
|
||||
import type { Metadata } from "next";
|
||||
import { cookies } from "next/headers";
|
||||
import Link from "next/link";
|
||||
import { Suspense } from "react";
|
||||
@@ -29,8 +30,9 @@ import { ArtifactFormWrapper } from "./form";
|
||||
import { LiveButton } from "./live";
|
||||
import { RulesDialog } from "./rules";
|
||||
|
||||
export const metadata = {
|
||||
export const metadata: Metadata = {
|
||||
title: "เสือกไอดีชาวบ้าน",
|
||||
description: "ระบบลงคิวดูอาร์ติแฟกต์เกนชินในไลฟ์สตรีม",
|
||||
};
|
||||
|
||||
export default async function ArtifactFormPage() {
|
||||
|
||||
@@ -6,6 +6,7 @@ import {
|
||||
SendHorizonal,
|
||||
X,
|
||||
} from "lucide-react";
|
||||
import type { Metadata } from "next";
|
||||
import { cookies } from "next/headers";
|
||||
import Link from "next/link";
|
||||
import { Suspense } from "react";
|
||||
@@ -66,8 +67,9 @@ import {
|
||||
import { EndgameFormWrapper } from "./form";
|
||||
import { RulesDialog } from "./rules";
|
||||
|
||||
export const metadata = {
|
||||
export const metadata: Metadata = {
|
||||
title: "รับกรรมแทนทางบ้าน",
|
||||
description: "รับเล่นคอนเท้น Endgame เกนชินแทนคนดู",
|
||||
};
|
||||
|
||||
export default async function EndgamePage() {
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
import { desc, not } from "drizzle-orm";
|
||||
import type { Metadata } from "next";
|
||||
import Link from "next/link";
|
||||
import Image from "@/components/image";
|
||||
import { ScrollArea, ScrollBar } from "@/components/ui/scroll-area";
|
||||
import { db } from "@/lib/db";
|
||||
import { tierlistTypes, tierlistVersions } from "@/lib/db/schema";
|
||||
|
||||
export const metadata = {
|
||||
export const metadata: Metadata = {
|
||||
title: "จัดเทียร์ลิสต์",
|
||||
description: "ระบบจัดเทียร์ลิสต์ตัวละครของคอนเท้น Abyss และ Stygain",
|
||||
};
|
||||
|
||||
export default async function TierlistSelectionPage() {
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ export const metadata: Metadata = {
|
||||
metadataBase: new URL(process.env.BASE_URL || "https://buzz.sudloh.com"),
|
||||
title: "เกนชินไม่ใช่เกมมือถือ",
|
||||
description: "ระบบอีเวนท์ของเกนชินไม่ใช่เกมมือถือ",
|
||||
icons: `/favicon.webp`, // TODO: CHANGE BACK TO buzz
|
||||
icons: `/favicon.webp`,
|
||||
openGraph: {
|
||||
url: `/`,
|
||||
siteName: "เกนชินไม่ใช่เกมมือถือ",
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
import { eq } from "drizzle-orm";
|
||||
import type { MetadataRoute } from "next";
|
||||
import { base } from "@/lib/const";
|
||||
import { db } from "@/lib/db";
|
||||
import { tierlistTypes, tierlistVersions } from "@/lib/db/schema";
|
||||
|
||||
export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
|
||||
const tlTypes = await db
|
||||
.select({ type: tierlistTypes.id, version: tierlistVersions.id })
|
||||
.from(tierlistTypes)
|
||||
.innerJoin(tierlistVersions, eq(tierlistTypes.id, tierlistVersions.type));
|
||||
|
||||
return [
|
||||
{
|
||||
url: `${base}/`,
|
||||
lastModified: new Date(),
|
||||
changeFrequency: "yearly",
|
||||
priority: 1,
|
||||
},
|
||||
{
|
||||
url: `${base}/artifact`,
|
||||
lastModified: new Date(),
|
||||
changeFrequency: "monthly",
|
||||
priority: 0.8,
|
||||
},
|
||||
{
|
||||
url: `${base}/rubgram`,
|
||||
lastModified: new Date(),
|
||||
changeFrequency: "monthly",
|
||||
priority: 0.8,
|
||||
},
|
||||
{
|
||||
url: `${base}/tl`,
|
||||
lastModified: new Date(),
|
||||
changeFrequency: "monthly",
|
||||
priority: 0.6,
|
||||
},
|
||||
...tlTypes.map(
|
||||
(t) =>
|
||||
({
|
||||
url: `${base}/tl/${t.type}/${t.version}`,
|
||||
lastModified: new Date(),
|
||||
changeFrequency: "monthly",
|
||||
priority: 0.6,
|
||||
}) as const,
|
||||
),
|
||||
];
|
||||
}
|
||||
Reference in New Issue
Block a user