diff --git a/package-lock.json b/package-lock.json index 71f5415..106d98d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,7 +18,9 @@ "@tailwindcss/vite": "^4.1.11", "astro": "^5.12.8", "astro-icon": "^1.1.5", + "astro-seo-schema": "^5.1.0", "get-audio-duration": "^4.0.1", + "schema-dts": "^1.1.5", "tailwindcss": "^4.1.11" }, "devDependencies": { @@ -3113,6 +3115,16 @@ "@iconify/utils": "^2.1.30" } }, + "node_modules/astro-seo-schema": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/astro-seo-schema/-/astro-seo-schema-5.1.0.tgz", + "integrity": "sha512-6qN6H7KlzSXNQ9Q+5eUMCYsHuzz+SRDEqQLjRlNaFG+0XE4UdOBSTVorRWHjd5I1LaTc5Btgz26V6RmWEXFfrA==", + "license": "MIT", + "peerDependencies": { + "astro": "^5.0.0", + "schema-dts": "^1.1.0" + } + }, "node_modules/astro/node_modules/vite": { "version": "6.3.5", "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz", @@ -8478,6 +8490,12 @@ "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", "license": "ISC" }, + "node_modules/schema-dts": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/schema-dts/-/schema-dts-1.1.5.tgz", + "integrity": "sha512-RJr9EaCmsLzBX2NDiO5Z3ux2BVosNZN5jo0gWgsyKvxKIUL5R3swNvoorulAeL9kLB0iTSX7V6aokhla2m7xbg==", + "license": "Apache-2.0" + }, "node_modules/semver": { "version": "7.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", diff --git a/package.json b/package.json index da50427..4f945fd 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,9 @@ "@tailwindcss/vite": "^4.1.11", "astro": "^5.12.8", "astro-icon": "^1.1.5", + "astro-seo-schema": "^5.1.0", "get-audio-duration": "^4.0.1", + "schema-dts": "^1.1.5", "tailwindcss": "^4.1.11" }, "devDependencies": { diff --git a/src/components/SEO.astro b/src/components/SEO.astro index 8d3d2cf..5ee7b33 100644 --- a/src/components/SEO.astro +++ b/src/components/SEO.astro @@ -8,11 +8,58 @@ interface Props { const { title, description, url = Astro.url, image } = Astro.props; +import person from "@/data/person"; import site from "@data/site"; + +import { Schema } from "astro-seo-schema"; --- + + @@ -55,3 +102,6 @@ import site from "@data/site"; /> + + + diff --git a/src/data/person.ts b/src/data/person.ts index 514ac58..327a71e 100644 --- a/src/data/person.ts +++ b/src/data/person.ts @@ -3,5 +3,7 @@ export default { first: "Nathan", last: "Cummins" }, - title: "Dr" + title: "Dr", + jobTitle: "Composer, Orchestrator, Conductor, Sound Designer, Performer", + email: "nathan@nathancummins.com.au" }; diff --git a/src/data/site.ts b/src/data/site.ts index dd888b2..f7b8ad6 100644 --- a/src/data/site.ts +++ b/src/data/site.ts @@ -3,7 +3,7 @@ import person from "@data/person"; export default { title: `${person.names.first} ${person.names.last} - Adelaide Composer, Orchestrator, Conductor, and Performer`, description: - "Nathan Cummins is an award-winning composer, orchestrator, sound designer, and conductor known for his vibrant music across video games, film, and live performance. Based in Adelaide, he brings classical craft, bold creativity, and technical innovation to every project", + "Nathan Cummins is an award-winning composer, orchestrator, sound designer, and conductor known for his vibrant music across video games, film, and live performance. Based in Adelaide, he brings classical craft, bold creativity, and technical innovation to every project.", tagline: "Composer, Orchestrator, Conductor, Performer", image: { externalURL: `${import.meta.env.SITE}/nathan-cummins-composer-orchestrator-conductor.png`,