Skip to content

Commit 6c746e3

Browse files
committed
add json-ld metadata
1 parent c549ef0 commit 6c746e3

File tree

1 file changed

+12
-16
lines changed

1 file changed

+12
-16
lines changed

src/utils/structuredData.ts

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -455,6 +455,8 @@ export function generateTechArticle(
455455
const { isLearningResource, category } = detectContentType(pathname)
456456
const difficulty = extractDifficulty(metadata?.excerpt, pathname)
457457
const product = detectChainlinkProduct(pathname)
458+
const programmingModel = extractProgrammingModel(metadata?.excerpt, pathname)
459+
const targetPlatform = extractTargetPlatform(metadata?.excerpt, pathname)
458460

459461
const baseArticle = {
460462
"@context": "https://schema.org",
@@ -482,6 +484,9 @@ export function generateTechArticle(
482484
...(metadata?.excerpt && {
483485
keywords: metadata.excerpt,
484486
}),
487+
// Technical properties for programming content
488+
programmingModel,
489+
targetPlatform,
485490
// Add technical article specific properties with product info
486491
about: {
487492
"@type": "Thing",
@@ -536,6 +541,8 @@ export function generateHowTo(
536541
const { tools, prerequisites } = extractToolsAndPrerequisites(metadata?.excerpt, pathname)
537542
const duration = parseTimeToISO8601(estimatedTime)
538543
const product = detectChainlinkProduct(pathname)
544+
const programmingModel = extractProgrammingModel(metadata?.excerpt, pathname)
545+
const targetPlatform = extractTargetPlatform(metadata?.excerpt, pathname)
539546

540547
return {
541548
"@context": "https://schema.org",
@@ -584,7 +591,9 @@ export function generateHowTo(
584591
"@type": "Audience",
585592
audienceType: difficulty === "Beginner" ? "Beginner" : "Developer",
586593
},
587-
// Note: programmingLanguage removed for LearningResource compatibility
594+
// Technical properties for programming tutorials
595+
programmingModel,
596+
targetPlatform,
588597
about: {
589598
"@type": "Thing",
590599
name: product ? `${product} Development` : "Smart Contract Development",
@@ -692,21 +701,8 @@ export function generateAPIReference(
692701
datePublished: releaseDate,
693702
dateModified: releaseDate,
694703
}),
695-
// Valid Schema.org properties only
696-
...(versionInfo.availableVersions &&
697-
versionInfo.availableVersions.length > 1 && {
698-
// Use 'version' property (valid for CreativeWork parent)
699-
version,
700-
// Use 'isRelatedTo' for version relationships (valid for SoftwareApplication via Service inheritance)
701-
isRelatedTo: versionInfo.availableVersions
702-
.filter((v) => v !== version)
703-
.slice(0, 3) // Limit for performance
704-
.map((v) => ({
705-
"@type": "SoftwareApplication",
706-
name: `${product ? `Chainlink ${product}` : "Chainlink Protocol"} ${v}`,
707-
url: version && version !== v ? resolvedCanonicalUrl.replace(version, v) : resolvedCanonicalUrl,
708-
})),
709-
}),
704+
// Use only valid Schema.org properties for SoftwareApplication
705+
softwareVersion: version,
710706
},
711707
mainEntityOfPage: {
712708
"@type": "WebPage",

0 commit comments

Comments
 (0)