{# social/meta_base.html — common, non-conflicting head tags #}
{# Expected context:
site: { title, url, logo, default_image, twitter_site, fb_app_id, description? }
request: Quart request (for canonical derivation)
robots_override: optional string ("index,follow" / "noindex,nofollow")
#}
{# Canonical #}
{% set _site_url = site().url.rstrip('/') if site and site().url else '' %}
{% set canonical = (
request.url if request and request.url
else (_site_url ~ request.path if request and _site_url else _site_url or None)
) %}
{# Robots: allow override; default to index,follow #}
{# Theme & RSS #}
{% if _site_url %}
{% endif %}
{# JSON-LD: Organization & WebSite are safe on all pages (don't conflict with BlogPosting) #}
{% set org_jsonld = {
"@context": "https://schema.org",
"@type": "Organization",
"name": site().title if site and site().title else "",
"url": _site_url if _site_url else None,
"logo": site().logo if site and site().logo else None
} %}
{% set website_jsonld = {
"@context": "https://schema.org",
"@type": "WebSite",
"name": site().title if site and site().title else "",
"url": _site_url if _site_url else canonical,
"potentialAction": {
"@type": "SearchAction",
"target": (_site_url ~ "/search?q={query}") if _site_url else None,
"query-input": "required name=query"
}
} %}