@@ -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