diff --git a/src/app/blog/[slug]/page.tsx b/src/app/blog/[slug]/page.tsx index e12c366..e3dfbd8 100644 --- a/src/app/blog/[slug]/page.tsx +++ b/src/app/blog/[slug]/page.tsx @@ -45,13 +45,25 @@ export default async function BlogPostPage({ params }: { params: Promise<{ slug: headline: post.title, description: post.description, datePublished: post.date, + dateModified: post.date, author: { '@type': 'Organization', - name: 'ObatLog', + name: '第29大阪技術局', + url: `${site}/`, }, publisher: { '@type': 'Organization', - name: 'ObatLog', + name: '第29大阪技術局', + url: `${site}/`, + }, + reviewedBy: { + '@type': 'Person', + name: '監修薬剤師', + jobTitle: 'Pharmacist', + }, + mainEntityOfPage: { + '@type': 'WebPage', + '@id': `${site}/blog/${slug}/`, }, url: `${site}/blog/${slug}/`, }; diff --git a/src/app/blog/page.tsx b/src/app/blog/page.tsx index f37ef1d..b06e4cb 100644 --- a/src/app/blog/page.tsx +++ b/src/app/blog/page.tsx @@ -6,12 +6,14 @@ import { getSiteUrl } from '../../lib/site'; const site = getSiteUrl(); export const metadata: Metadata = { - title: 'ブログ', - description: 'ObatLogの使い方ガイドや服薬管理のTipsを紹介します。', + title: '服薬管理ブログ', + description: + 'ObatLogの使い方ガイドや服薬管理のコツ、飲み忘れ防止のヒントをわかりやすく紹介。お薬との上手な付き合い方を学べるブログです。', alternates: { canonical: `${site}/blog/` }, openGraph: { - title: 'ブログ | ObatLog', - description: 'ObatLogの使い方ガイドや服薬管理のTipsを紹介します。', + title: '服薬管理ブログ | ObatLog', + description: + 'ObatLogの使い方ガイドや服薬管理のコツ、飲み忘れ防止のヒントをわかりやすく紹介。お薬との上手な付き合い方を学べるブログです。', url: `${site}/blog/`, siteName: 'ObatLog', locale: 'ja_JP', diff --git a/src/app/changelog/layout.tsx b/src/app/changelog/layout.tsx new file mode 100644 index 0000000..2251fd6 --- /dev/null +++ b/src/app/changelog/layout.tsx @@ -0,0 +1,25 @@ +import type { Metadata } from 'next'; +import { getSiteUrl } from '@/lib/site'; + +const site = getSiteUrl(); + +export const metadata: Metadata = { + title: '更新履歴', + description: + 'ObatLogの更新履歴・リリースノートです。新機能や改善内容をバージョンごとにご確認いただけます。', + alternates: { canonical: `${site}/changelog/` }, + openGraph: { + title: '更新履歴 | ObatLog', + description: + 'ObatLogの更新履歴・リリースノートです。新機能や改善内容をバージョンごとにご確認いただけます。', + url: `${site}/changelog/`, + siteName: 'ObatLog', + locale: 'ja_JP', + type: 'website', + }, + robots: { index: true, follow: true }, +}; + +export default function ChangelogLayout({ children }: { children: React.ReactNode }) { + return children; +} diff --git a/src/app/demo/layout.tsx b/src/app/demo/layout.tsx new file mode 100644 index 0000000..b1a2a65 --- /dev/null +++ b/src/app/demo/layout.tsx @@ -0,0 +1,25 @@ +import type { Metadata } from 'next'; +import { getSiteUrl } from '@/lib/site'; + +const site = getSiteUrl(); + +export const metadata: Metadata = { + title: 'デモを試す', + description: + 'ObatLogのデモモードを体験できます。登録不要で服薬記録・過量チェック・通知機能をお試しください。', + alternates: { canonical: `${site}/demo/` }, + openGraph: { + title: 'デモを試す | ObatLog', + description: + 'ObatLogのデモモードを体験できます。登録不要で服薬記録・過量チェック・通知機能をお試しください。', + url: `${site}/demo/`, + siteName: 'ObatLog', + locale: 'ja_JP', + type: 'website', + }, + robots: { index: true, follow: true }, +}; + +export default function DemoLayout({ children }: { children: React.ReactNode }) { + return children; +} diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 5217f0b..ad7dbff 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -8,9 +8,12 @@ const site = getSiteUrl(); export const metadata: Metadata = { metadataBase: new URL(`${site}/`), - title: { default: 'ObatLog — 服薬記録・過量チェック', template: '%s | ObatLog' }, + title: { + default: 'ObatLog|お薬の飲み忘れ・飲みすぎを防ぐ服薬記録アプリ', + template: '%s | ObatLog', + }, description: - '毎日の服薬を記録し、1日の上限チェックで過量を防ぐシンプルなウェブアプリ(PWA)。医療機器ではありません。', + '毎日の服薬をワンタップで記録。過量服薬(OD)チェックと飲み忘れ通知で安心の服薬管理を。登録無料・スマホでサクッと使えるPWA対応アプリ。', applicationName: 'ObatLog', manifest: '/manifest.json', openGraph: { @@ -18,13 +21,15 @@ export const metadata: Metadata = { locale: 'ja_JP', url: site, siteName: 'ObatLog', - title: 'ObatLog — 服薬記録・過量チェック', - description: '毎日の服薬を記録し、過量を防ぐシンプルなウェブアプリ。', + title: 'ObatLog|お薬の飲み忘れ・飲みすぎを防ぐ服薬記録アプリ', + description: + '毎日の服薬をワンタップで記録。過量服薬チェックと飲み忘れ通知で安心の服薬管理を。登録無料・スマホでサクッと使えるアプリ。', }, twitter: { card: 'summary_large_image', - title: 'ObatLog', - description: '服薬記録・過量チェックアプリ', + title: 'ObatLog|お薬の飲み忘れ・飲みすぎを防ぐ服薬記録アプリ', + description: + '毎日の服薬をワンタップで記録。過量服薬チェックと飲み忘れ通知で安心の服薬管理を。', }, robots: { index: true, follow: true }, other: { diff --git a/src/app/login/layout.tsx b/src/app/login/layout.tsx new file mode 100644 index 0000000..2d1ea69 --- /dev/null +++ b/src/app/login/layout.tsx @@ -0,0 +1,25 @@ +import type { Metadata } from 'next'; +import { getSiteUrl } from '@/lib/site'; + +const site = getSiteUrl(); + +export const metadata: Metadata = { + title: 'ログイン', + description: + 'ObatLogにログインして服薬記録を管理しましょう。メール・Googleアカウントで簡単にログインできます。', + alternates: { canonical: `${site}/login/` }, + openGraph: { + title: 'ログイン | ObatLog', + description: + 'ObatLogにログインして服薬記録を管理しましょう。メール・Googleアカウントで簡単にログインできます。', + url: `${site}/login/`, + siteName: 'ObatLog', + locale: 'ja_JP', + type: 'website', + }, + robots: { index: false, follow: true }, +}; + +export default function LoginLayout({ children }: { children: React.ReactNode }) { + return children; +} diff --git a/src/app/logs/layout.tsx b/src/app/logs/layout.tsx new file mode 100644 index 0000000..d201cb4 --- /dev/null +++ b/src/app/logs/layout.tsx @@ -0,0 +1,12 @@ +import type { Metadata } from 'next'; + +export const metadata: Metadata = { + title: '服薬ログ', + description: + '過去の服薬記録を確認できます。日付ごとにグルーピングされた服薬履歴を振り返りましょう。', + robots: { index: false, follow: false }, +}; + +export default function LogsLayout({ children }: { children: React.ReactNode }) { + return children; +} diff --git a/src/app/medications/layout.tsx b/src/app/medications/layout.tsx new file mode 100644 index 0000000..08f9096 --- /dev/null +++ b/src/app/medications/layout.tsx @@ -0,0 +1,12 @@ +import type { Metadata } from 'next'; + +export const metadata: Metadata = { + title: 'お薬一覧', + description: + '登録したお薬の一覧ページです。薬の追加・編集・1日の上限設定・通知設定を管理できます。', + robots: { index: false, follow: false }, +}; + +export default function MedicationsLayout({ children }: { children: React.ReactNode }) { + return children; +} diff --git a/src/app/page.tsx b/src/app/page.tsx index d08ccf1..2594144 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,6 +1,47 @@ -'use client'; import HomePage from '@/components/HomePage'; +import { getSiteUrl } from '@/lib/site'; + +const site = getSiteUrl(); export default function Page() { - return ; + // WebApplication + Organization JSON-LD 構造化データ + const jsonLd = { + '@context': 'https://schema.org', + '@graph': [ + { + '@type': 'WebApplication', + name: 'ObatLog', + description: + '毎日の服薬をワンタップで記録。過量服薬チェックと飲み忘れ通知で安心の服薬管理を。', + applicationCategory: 'HealthApplication', + operatingSystem: 'Web', + offers: { + '@type': 'Offer', + price: '0', + priceCurrency: 'JPY', + }, + author: { + '@type': 'Organization', + name: '第29大阪技術局', + url: `${site}/`, + }, + url: `${site}/`, + }, + { + '@type': 'Organization', + name: '第29大阪技術局', + url: `${site}/`, + }, + ], + }; + + return ( + <> +