{% set s = seo() %} {# This partial is included in — it outputs meta tags only. #} {# The is handled separately in base.html.twig via seo().title #} {% if s.metaDescription %} <meta name="description" content="{{ s.metaDescription|e }}"> {% endif %} {% if s.robots %} <meta name="robots" content="{{ s.robots|e }}"> {% endif %} {% if s.canonicalUrl %} <link rel="canonical" href="{{ s.canonicalUrl|e }}"> {% endif %} {# Open Graph #} {% if s.ogTitle %} <meta property="og:title" content="{{ s.ogTitle|e }}"> {% endif %} {% if s.ogDescription %} <meta property="og:description" content="{{ s.ogDescription|e }}"> {% endif %} {% if s.ogImageUrl %} <meta property="og:image" content="{{ (s.ogImageUrl starts with 'http' ? s.ogImageUrl : absolute_url(asset(s.ogImageUrl)))|e }}"> {% endif %} {% if s.ogImageAlt %} <meta property="og:image:alt" content="{{ s.ogImageAlt|e }}"> {% endif %} <meta property="og:type" content="{{ s.ogType|default('website')|e }}"> <meta property="og:locale" content="{{ s.ogLocale|default('fr_FR')|e }}"> {% if s.ogUrl %} <meta property="og:url" content="{{ s.ogUrl|e }}"> {% endif %} {% if siteParams.siteName %} <meta property="og:site_name" content="{{ siteParams.siteName|e }}"> {% endif %} {# Twitter Card #} <meta name="twitter:card" content="{{ s.twCard|default('summary_large_image')|e }}"> {% if s.twTitle %} <meta name="twitter:title" content="{{ s.twTitle|e }}"> {% endif %} {% if s.twDescription %} <meta name="twitter:description" content="{{ s.twDescription|e }}"> {% endif %} {% if s.twImageUrl %} <meta name="twitter:image" content="{{ (s.twImageUrl starts with 'http' ? s.twImageUrl : absolute_url(asset(s.twImageUrl)))|e }}"> {% endif %} {% if s.twSite %} <meta name="twitter:site" content="{{ s.twSite|e }}"> {% endif %} {# ─── JSON-LD structured data ─────────────────────────────────── #} {# LocalBusiness is injected on every page (CLAUDE.md §6.11). #} {# BreadcrumbList is injected on every page except the homepage. #} {# Page-specific schemas (Service, FAQPage, Article, Organization, WebSite) #} {# are injected by each page template via {{ json_ld(...) }}. #} {% set _route = app.request.attributes.get('_route', '') %} {{ json_ld(schema_local_business()) }} {% if _route != 'app_home' and _route != '' %} {{ json_ld(schema_breadcrumb()) }} {% endif %}