Refactor schema.org markup and move person identity to home page#42
Merged
Conversation
The pnpm.overrides rule `unhead@<2.1.13: '>=2.1.13'` had no upper bound, so `@unhead/vue@2.1.12`'s `unhead@2.1.12` dep got resolved up to 3.1.0, while `@unhead/schema-org@2.1.13` (locked to `unhead@2.1.13`) stayed on v2. The split unhead instances meant the schema-org plugin (registered into v2) never saw the JSON-LD script tag (registered via useHead into v3), so the prerendered `<script type="application/ld+json">` shipped with an empty body. Adding the `<3` upper bound deduplicates `unhead` to 2.1.13 and lets the schema-org plugin populate the graph during prerender. https://claude.ai/code/session_015bxsd4W7qsVxKBM4BZDjCe
Qualifies / for Google's Profile Page rich result by setting @type: [WebPage, ProfilePage] with mainEntity pointing at the Person identity, plus the recommended dateCreated and dateModified. Consolidates the Person definition into schemaOrg.identity in nuxt.config.ts (adds a description byline) and removes the duplicate definePerson() from app.vue, which was producing duplicate sameAs entries in the graph. https://claude.ai/code/session_015bxsd4W7qsVxKBM4BZDjCe
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Restructured schema.org markup organization by moving person identity definition from the root app component to the home page, and updated the unhead dependency constraint to prevent version splitting issues.
Key Changes
definePerson()schema definition and associatedprofileImageUrlcomputation from the root componentdefineWebPage()with ProfilePage type on the index page, including dateCreated, dateModified, and mainEntity reference to the person identitydescriptionfield to the identity configuration with expanded details about role and responsibilitiesunhead@<2.1.13override from>=2.1.13to>=2.1.13 <3to prevent version splitting between@unhead/vue(v3) and@unhead/schema-org(v2), which was causing empty JSON-LD output on prerenderImplementation Details
The person identity is now defined in
nuxt.config.tsand referenced from the home page via schema.org'smainEntityproperty, creating a cleaner separation of concerns where the home page acts as the ProfilePage that describes the person entity. The unhead constraint ensures both head registry consumers use the same major version, maintaining proper JSON-LD generation during prerendering.https://claude.ai/code/session_015bxsd4W7qsVxKBM4BZDjCe