From 659941ee8fc44b0b6cd2f9eab49207a046c2b38e Mon Sep 17 00:00:00 2001 From: Sakura Knoll Date: Sat, 5 Nov 2022 04:18:23 +0900 Subject: [PATCH] Add canonical --- next-sitemap.config.js | 2 +- src/components/atoms/Head.tsx | 14 +++++++- src/components/pages/SingleStigmataPage.tsx | 1 + src/components/pages/StigmataSetPage.tsx | 1 + src/lib/consts.ts | 1 + .../honkai3rd/battlesuits/[battlesuitId].tsx | 1 + src/pages/honkai3rd/battlesuits/index.tsx | 1 + src/pages/honkai3rd/elfs/[elfId].tsx | 1 + src/pages/honkai3rd/elfs/index.tsx | 1 + .../battlesuits/[battlesuitId].tsx | 1 + src/pages/honkai3rd/elysian-realm/index.tsx | 1 + .../elysian-realm/remembrance-sigils.tsx | 1 + .../elysian-realm/signets/[signetId].tsx | 1 + .../elysian-realm/support-battlesuits.tsx | 1 + .../elysian-realm/utils/gen-guide.tsx | 9 +++++ src/pages/honkai3rd/index.tsx | 5 ++- src/pages/honkai3rd/stigmata/index.tsx | 1 + src/pages/honkai3rd/{ => temp}/enemies.tsx | 0 .../prints/battlesuits/[battlesuitId].tsx | 34 +++++++++---------- .../prints/stigmata/[stigmataId].tsx | 16 ++++----- .../{ => temp}/prints/weapons/[weaponId].tsx | 25 ++++++++------ src/pages/honkai3rd/versions/[versionId].tsx | 1 + src/pages/honkai3rd/versions/index.tsx | 1 + src/pages/honkai3rd/weapons/[weaponId].tsx | 1 + src/pages/honkai3rd/weapons/index.tsx | 1 + 25 files changed, 83 insertions(+), 39 deletions(-) rename src/pages/honkai3rd/{ => temp}/enemies.tsx (100%) rename src/pages/honkai3rd/{ => temp}/prints/battlesuits/[battlesuitId].tsx (87%) rename src/pages/honkai3rd/{ => temp}/prints/stigmata/[stigmataId].tsx (88%) rename src/pages/honkai3rd/{ => temp}/prints/weapons/[weaponId].tsx (86%) diff --git a/next-sitemap.config.js b/next-sitemap.config.js index aa9e9d4c..3951e697 100644 --- a/next-sitemap.config.js +++ b/next-sitemap.config.js @@ -2,5 +2,5 @@ module.exports = { siteUrl: process.env.SITE_URL || 'https://www.abyss-lab.app', generateRobotsTxt: true, - exclude: ['*/prints/*'], + exclude: ['*/temp/*'], } diff --git a/src/components/atoms/Head.tsx b/src/components/atoms/Head.tsx index 7be5b718..b1e5c486 100644 --- a/src/components/atoms/Head.tsx +++ b/src/components/atoms/Head.tsx @@ -1,11 +1,15 @@ import NextHead from 'next/head' +import { useRouter } from 'next/router' +import { baseUrl } from '../../lib/consts' interface HeadProps { title: string description?: string + canonicalHref?: string } -const Head = ({ title, description }: HeadProps) => { +const Head = ({ title, description, canonicalHref }: HeadProps) => { + const { locale } = useRouter() return ( {title} @@ -19,6 +23,14 @@ const Head = ({ title, description }: HeadProps) => { /> + {canonicalHref && ( + + )} ) } diff --git a/src/components/pages/SingleStigmataPage.tsx b/src/components/pages/SingleStigmataPage.tsx index 24e0c16e..065c2bb6 100644 --- a/src/components/pages/SingleStigmataPage.tsx +++ b/src/components/pages/SingleStigmataPage.tsx @@ -43,6 +43,7 @@ const SingleStigmataPage = ({ )} / HP : ${stigmataData.hp} / ATK : ${stigmataData.atk} / DEF : ${ stigmataData.def } / CRT : ${stigmataData.crt}`} + canonicalHref={`/honkai3rd/stigmata/${stigmataData.id}`} /> diff --git a/src/lib/consts.ts b/src/lib/consts.ts index e7fa0629..a6dc192b 100644 --- a/src/lib/consts.ts +++ b/src/lib/consts.ts @@ -1,2 +1,3 @@ export const assetsBucketBaseUrl = process.env.NEXT_PUBLIC_ASSETS_BUCKET_BASE_URL +export const baseUrl = process.env.NEXT_PUBLIC_BASE_URL diff --git a/src/pages/honkai3rd/battlesuits/[battlesuitId].tsx b/src/pages/honkai3rd/battlesuits/[battlesuitId].tsx index a1e1a7be..2bb90924 100644 --- a/src/pages/honkai3rd/battlesuits/[battlesuitId].tsx +++ b/src/pages/honkai3rd/battlesuits/[battlesuitId].tsx @@ -98,6 +98,7 @@ const BattlesuitShowPage = ({ return translate(locale, { 'ko-KR': krLabel }, label) }) .join(', ')}`} + canonicalHref={`/honkai3rd/battlesuits/${battlesuit.id}`} /> diff --git a/src/pages/honkai3rd/battlesuits/index.tsx b/src/pages/honkai3rd/battlesuits/index.tsx index da57e761..e8aef62a 100644 --- a/src/pages/honkai3rd/battlesuits/index.tsx +++ b/src/pages/honkai3rd/battlesuits/index.tsx @@ -99,6 +99,7 @@ const BattlesuitListPage = ({ battlesuits }: BattlesuitListPageProps) => { 'common.abyss-lab' )}`} description={t('battlesuits-list.description')} + canonicalHref={`/honkai3rd/battlesuits`} /> diff --git a/src/pages/honkai3rd/elfs/[elfId].tsx b/src/pages/honkai3rd/elfs/[elfId].tsx index 175b1f88..901ab90b 100644 --- a/src/pages/honkai3rd/elfs/[elfId].tsx +++ b/src/pages/honkai3rd/elfs/[elfId].tsx @@ -52,6 +52,7 @@ const ElfShowPage = ({ elf }: ElfShowPageProps) => { return translate(locale, { 'ko-KR': krLabel }, label) }) .join(', ')}`} + canonicalHref={`/honkai3rd/elfs/${elf.id}`} /> diff --git a/src/pages/honkai3rd/elfs/index.tsx b/src/pages/honkai3rd/elfs/index.tsx index 27aee0b6..74d95ad6 100644 --- a/src/pages/honkai3rd/elfs/index.tsx +++ b/src/pages/honkai3rd/elfs/index.tsx @@ -25,6 +25,7 @@ const ElfListPage = ({ elfs }: ElfListPageProps) => { 'common.abyss-lab' )}`} description={t('elfs-list.description')} + canonicalHref={`/honkai3rd/elfs`} /> diff --git a/src/pages/honkai3rd/elysian-realm/index.tsx b/src/pages/honkai3rd/elysian-realm/index.tsx index 424dad15..b1718779 100644 --- a/src/pages/honkai3rd/elysian-realm/index.tsx +++ b/src/pages/honkai3rd/elysian-realm/index.tsx @@ -45,6 +45,7 @@ const ElysianRealmIndexPage = ({ 'common.abyss-lab' )}`} description={t('common.elysian-realm')} + canonicalHref={`/honkai3rd/elysian-realm`} /> diff --git a/src/pages/honkai3rd/elysian-realm/remembrance-sigils.tsx b/src/pages/honkai3rd/elysian-realm/remembrance-sigils.tsx index 284ca43a..801d1312 100644 --- a/src/pages/honkai3rd/elysian-realm/remembrance-sigils.tsx +++ b/src/pages/honkai3rd/elysian-realm/remembrance-sigils.tsx @@ -30,6 +30,7 @@ const ElysianRealmIndexPage = ({ description={`${t('common.elysian-realm')} ${t( 'elysian-realm.supports' )}`} + canonicalHref={`/honkai3rd/elysian-realm/remembrance-sigils`} /> diff --git a/src/pages/honkai3rd/elysian-realm/signets/[signetId].tsx b/src/pages/honkai3rd/elysian-realm/signets/[signetId].tsx index 7b8a0b20..c2ee079d 100644 --- a/src/pages/honkai3rd/elysian-realm/signets/[signetId].tsx +++ b/src/pages/honkai3rd/elysian-realm/signets/[signetId].tsx @@ -35,6 +35,7 @@ const SignetShowPage = ({ signetId, signetGroup }: SignetShowPageProps) => { description={`${t('common.honkai-3rd')} ${signetGroup.name} ${t( 'elysian-realm.signets' )}`} + canonicalHref={`/honkai3rd/elysian-realm/signets/${signetId}`} /> diff --git a/src/pages/honkai3rd/elysian-realm/support-battlesuits.tsx b/src/pages/honkai3rd/elysian-realm/support-battlesuits.tsx index c04fc515..3f29463e 100644 --- a/src/pages/honkai3rd/elysian-realm/support-battlesuits.tsx +++ b/src/pages/honkai3rd/elysian-realm/support-battlesuits.tsx @@ -37,6 +37,7 @@ const ElysianRealmIndexPage = ({ description={`${t('common.elysian-realm')} ${t( 'elysian-realm.supports' )}`} + canonicalHref={`/honkai3rd/elysian-realm/support-battlesuits`} /> diff --git a/src/pages/honkai3rd/elysian-realm/utils/gen-guide.tsx b/src/pages/honkai3rd/elysian-realm/utils/gen-guide.tsx index f876ccfb..e9b173cd 100644 --- a/src/pages/honkai3rd/elysian-realm/utils/gen-guide.tsx +++ b/src/pages/honkai3rd/elysian-realm/utils/gen-guide.tsx @@ -19,6 +19,8 @@ import { import { listStigmata } from '../../../../server/data/honkai3rd/stigmata' import { listWeapons } from '../../../../server/data/honkai3rd/weapons' import { getI18NProps } from '../../../../server/i18n' +import Head from '../../../../components/atoms/Head' +import { useTranslation } from 'next-i18next' interface GenerateGuidePageProps { weapons: WeaponData[] @@ -36,9 +38,16 @@ const GenerateGuidePage = ({ sigils, }: GenerateGuidePageProps) => { const router = useRouter() + const { t } = useTranslation() return ( +