{{/* Open Graph / Twitter Card metadata for link previews. See public_viewer.html for the gating rationale. */}} {{if .Description}}{{end}} {{if .Description}}{{end}} {{if .ShareURL}}{{end}} {{if .BrandName}}{{end}} {{if .OGImageURL}}{{end}} {{if .Description}}{{end}} {{if .OGImageURL}}{{end}}
{{if or .ImplementorName .ImplementorLogoSVG}}
{{if .ImplementorURL}}{{end}} {{if .ImplementorLogoSVG}}{{end}} {{if .ImplementorName}}{{.ImplementorName}}{{end}} {{if .ImplementorURL}}{{end}}
{{end}}

{{.Name}}

{{/* Platform brand block. The Go handler always populates BrandName (defaults to "MCP Data Platform") and BrandLogoSVG (defaults to the bundled logo SVG) in pkg/portal/public.go, so in practice these are never empty — but we guard anyway for symmetry with the implementor block and to remain robust to future handler changes that might allow opting out. {{.BrandLogoSVG}} is rendered as template.HTML by the handler (see public.go: template.HTML(brandLogo)), so the inline SVG passes through unescaped. */}} {{if or .BrandName .BrandLogoSVG}}
{{if .BrandURL}}{{end}} {{if .BrandLogoSVG}}{{end}} {{if .BrandName}}{{.BrandName}}{{end}} {{if .BrandURL}}{{end}}
{{end}}
{{if or .NoticeText (and .ExpiresAtISO (not .HideExpiration))}}
{{if and .ExpiresAtISO (not .HideExpiration)}}This page expires {{end}} {{if and .ExpiresAtISO (not .HideExpiration) .NoticeText}} · {{end}} {{if .NoticeText}}{{.NoticeText}}{{end}}
{{end}}