diff --git a/website/src/layouts/BaseLayout.astro b/website/src/layouts/BaseLayout.astro index 47201548df..fb0667be85 100644 --- a/website/src/layouts/BaseLayout.astro +++ b/website/src/layouts/BaseLayout.astro @@ -60,6 +60,9 @@ const { + + + diff --git a/website/src/pages/workflow/[id].astro b/website/src/pages/workflow/[id].astro index 02fa224c17..f027998969 100644 --- a/website/src/pages/workflow/[id].astro +++ b/website/src/pages/workflow/[id].astro @@ -3,6 +3,7 @@ import BaseLayout from "../../layouts/BaseLayout.astro"; import IWCHeader from "../../components/IWCHeader.astro"; import WorkflowContent from "../../components/WorkflowContent.vue"; import { loadManifest, getAllWorkflows } from "../../utils/manifest"; +import { generateWorkflowJsonLd, serializeJsonLd, generateCitationMetaTags } from "../../utils/jsonld"; import type { Workflow } from "../../models/workflow"; export async function getStaticPaths() { @@ -22,6 +23,13 @@ const { workflow } = Astro.props as { workflow: Workflow }; const baseUrl = "https://iwc.galaxyproject.org"; const workflowName = workflow.definition?.name || "Workflow Details"; const description = workflow.definition.annotation || "Galaxy workflow"; + +// Generate JSON-LD structured data for SEO and academic discoverability +const jsonLd = generateWorkflowJsonLd(workflow, baseUrl); +const jsonLdScript = serializeJsonLd(jsonLd); + +// Generate Google Scholar citation meta tags +const citationMetaTags = generateCitationMetaTags(workflow); --- + + + +