Files
opencv/docs_sphinx/_templates/navbar-nav.html
T

37 lines
1.6 KiB
HTML

{# Override of pydata_sphinx_theme's components/navbar-nav.html.
PyData's default renders both top-level toctree items AND the configured
external_links in one bar. For OpenCV we want ONLY this header nav (the
tutorial module tree belongs in the left sidebar, not the header), so we
render the `external_links` slot exclusively.
These are NOT external links: conf.py declares them via the theme's
`external_links` key only because that's the data slot for a custom header
nav. Each entry is one of:
* internal -> {"docname": "<docname>", "name": ...}
resolved with `pathto` so the relative URL is correct at ANY page depth
and points at the Sphinx-rendered page (landing, tutorials, module roots);
* external -> {"url": "<abs-url>", "name": ..., "external": true}
rendered verbatim and opened in a new tab (e.g. the Java docs, which
have no Sphinx equivalent).
Internal entries carry no target="_blank" / nav-external glyph since
navigation never leaves the site. #}
<nav>
<ul class="bd-navbar-elements navbar-nav">
{%- for link in (theme_external_links or []) %}
{%- if link.docname %}
{%- set _href = pathto(link.docname) %}
{%- set _external = false %}
{%- else %}
{%- set _href = link.url %}
{%- set _external = link.get('external', false) %}
{%- endif %}
<li class="nav-item">
<a class="nav-link" href="{{ _href }}"
{%- if _external %} target="_blank" rel="noopener noreferrer"{% endif %}>{{ link.name }}</a>
</li>
{%- endfor %}
</ul>
</nav>