feat(seo): expand structured data with shared jsonld helpers (#126) - #140
feat(seo): expand structured data with shared jsonld helpers (#126)#140Escelit wants to merge 2 commits into
Conversation
|
@Escelit Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
|
@Escelit is attempting to deploy a commit to the truthixify's projects Team on Vercel. A member of the Team first needs to authorize it. |
0ed5c03 to
c976e08
Compare
|
Successfully rebased |
162e627 to
d382f73
Compare
|
succesfully rebased |
|
Heads up: this went conflicted a few minutes ago because #146 and the other blog work, so this is the last of your three as planned landed on and it should be good to go. |
|
Conflicted as expected now that #137 has landed. This is the last of your three, so one more rebase and it should be done. |
7153466 to
e69c16e
Compare
|
Rebase successfully done. Please review |
Summary
Generalizes the ad-hoc Article JSON-LD in
CaseStudies.tsxinto a typedsrc/utils/jsonld.tshelper module and closes the structured-data coverage gaps across the site.Changes
src/utils/jsonld.ts: typed helpersorganization(),article(),faqPage(),howTo(),breadcrumbList()(plus exportedSITE_URL).CaseStudies.tsx: refactored to consumearticle()+ now emits aBreadcrumbListon/case-studies/:slug.Blog.tsx: emits anArticleper blog post (from MDX frontmatter) +BreadcrumbListon both the list and/blog/:slug.Faq.tsx: emits aFAQPagebuilt fromsrc/data/faq.json.Grants.tsx: emits aHowTofor the grant application steps derived from wave.BlogAuthor.tsx+/blog/author/:idroute: emits aBreadcrumbList(closes the third nested-route gap).scripts/validate-jsonld.mjs: rebuilds every emitted blob from real data and validates it against a local schema.org structural validator. Wired into CI viapnpm validate:jsonld.Acceptance
Articleblock/faqemits a validFAQPageblock with every Q&ABreadcrumbList(/case-studies/:slug,/blog/:slug,/blog/author/:id)Test plan
pnpm validate:jsonld→ all 8 blobs valid, exits 0pnpm build→ greenpnpm format:check→ cleanCloses #126