{% extends "base.html" %}
{% block content %}
{% if page.nb_url %}
{% endif %}
{{ super() }}
{% endblock content %}
{# Banner warning readers that they are on an archived version tree. Material renders
the aside server-side and unhides it client-side, so the text stays in the HTML for
crawlers and AI answer engines that never run JavaScript. Emitting it only when
mike is deploying something other than latest keeps that warning off /latest/ —
an empty block makes Material skip the aside entirely. is_latest_release further
exempts the numbered version tree that happens to be the newest release: mike
deploy sets doc_version to that release's own tag, never to "latest", so without
this exemption the current release would warn its own readers away from itself. #}
{% block outdated %}
{% set doc_version = config.extra.doc_version | d("", true) %}
{# mkdocs's !ENV tag re-parses "true"/"false" as YAML booleans, unlike doc_version's
free-form string, so this is used for truthiness directly rather than compared
against a literal string. #}
{% set is_latest_release = config.extra.is_latest_release %}
{% set latest_url = config.site_url | d('https://supervision.roboflow.com/latest/', true) %}
{% if doc_version == "develop" %}
You are reading the unreleased development version of the documentation, built from the develop branch.
APIs described here may change or may never ship in a release, so use the latest stable release instead.
{% elif doc_version and doc_version != "latest" and not is_latest_release %}
You are reading the documentation for an older version of Supervision, kept online for reference.
APIs described here may have changed or been removed, so use the latest stable release instead.
{% endif %}
{% endblock %}
{% block extrahead %}
{{ super() }}
{% if page.meta is defined and page.meta is not none and page.meta is not undefined %}
{% set _meta = page.meta %}
{% else %}
{% set _meta = {} %}
{% endif %}
{% set page_description = _meta.description | d(config.site_description) %}
{% set docs_base_url = config.site_url | trim("/") %}
{# ── GEO: JSON-LD + OG tags (page context required — skip for theme templates like 404) #}
{# ── GEO: JSON-LD structured data ──────────────────────────── #}
{% for is_home in [page.is_homepage] %}{% if is_home %}
{% endif %}{% endfor %}
{% if page.url == 'faq/' %}
{% endif %}
{% if page.url == 'about/' or page.url == 'contact/' %}
{% endif %}
{% if 'how_to' in page.url %}
{% endif %}
{# ── How-to FAQ schema ─────────────────────────────────────── #}
{% if 'how_to' in page.url %}
{% endif %}
{% for is_not_home in [not page.is_homepage] %}{% if is_not_home %}
{% endif %}{% endfor %}
{# ── GEO: Open Graph + Twitter Card meta tags ──────────────── #}
{# ── API reference schema (detection/ metrics/ datasets/ reference pages) ── #}
{% for is_ref in [('reference' in page.url or 'detection/' in page.url or 'metrics/' in page.url or 'keypoint/' in page.url or 'classification/' in page.url) and 'how_to' not in page.url] %}{% if is_ref %}
{% endif %}{% endfor %}
{# Cookbooks FAQ schema ── #}
{% for is_cookbook in ['cookbook' in page.url] %}{% if is_cookbook %}
{% endif %}{% endfor %}
{# IndexNow ownership key — do NOT change this value.
The same key must exist in three places (all must stay in sync):
1. This meta tag (docs/theme/main.html)
2. The key file at docs/0d5d9799b1cc4a39825146388c6781eb.txt
3. The CI step in .github/workflows/publish-docs.yml
Bing/Yandex verify ownership by fetching https://supervision.roboflow.com/.txt
and comparing its contents to this meta tag before accepting IndexNow submissions. #}
{% endblock %}