{# 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" } } %}