[DOCS] Bump Sphinx and Pydata versions (#24083)
Sphinx -> 7.2.6 PyData -> 0.14.4 --------- Co-authored-by: Andrzej Kopytko <andrzejx.kopytko@intel.com> Co-authored-by: Karol Blaszczak <karol.blaszczak@intel.com>
This commit is contained in:
parent
7b7650e86e
commit
6029d1012d
|
|
@ -28,6 +28,7 @@ temp/
|
|||
CMakeLists.txt.user
|
||||
docs/IE_PLUGIN_DG/html/
|
||||
CMakeUserPresets.json
|
||||
venv
|
||||
|
||||
*.project
|
||||
*.cproject
|
||||
|
|
@ -73,4 +74,4 @@ coverage
|
|||
/src/plugins/intel_cpu/tools/commit_slider/*.json
|
||||
/src/plugins/intel_cpu/tools/commit_slider/slider_cache/*
|
||||
/src/plugins/intel_cpu/thirdparty/ComputeLibrary/build/*
|
||||
.github/GITHUB_OUTPUT
|
||||
.github/GITHUB_OUTPUT
|
||||
|
|
@ -165,4 +165,4 @@ endif()
|
|||
# provides a callback function to describe each component in repo
|
||||
include(cmake/packaging/packaging.cmake)
|
||||
|
||||
ov_cpack(${OV_CPACK_COMPONENTS_ALL})
|
||||
ov_cpack(${OV_CPACK_COMPONENTS_ALL})
|
||||
|
|
@ -31,6 +31,7 @@ function(build_docs)
|
|||
set(ARTICLES_HELPER_SCRIPT "${SCRIPTS_DIR}/articles_helper.py")
|
||||
set(COPY_IMAGES_SCRIPT "${SCRIPTS_DIR}/copy_images.py")
|
||||
set(DOXYGEN_MAPPING_SCRIPT "${SCRIPTS_DIR}/create_mapping.py")
|
||||
set(DOCS_MAPPING_SCRIPT "${SCRIPTS_DIR}/create_doc_mapping.py")
|
||||
set(BREATHE_APIDOC_SCRIPT "${SCRIPTS_DIR}/apidoc.py")
|
||||
|
||||
# Doxygen/Sphinx setup
|
||||
|
|
@ -107,6 +108,7 @@ function(build_docs)
|
|||
POST_BUILD
|
||||
COMMAND ${Python3_EXECUTABLE} ${COPY_IMAGES_SCRIPT} ${DOXYGEN_XML_OUTPUT} ${SPHINX_SOURCE_DIR}
|
||||
COMMAND ${Python3_EXECUTABLE} ${DOXYGEN_MAPPING_SCRIPT} ${DOXYGEN_XML_OUTPUT} ${DOCS_BUILD_DIR} ${OpenVINO_SOURCE_DIR}/../
|
||||
COMMAND ${Python3_EXECUTABLE} ${DOCS_MAPPING_SCRIPT} ${DOCS_BUILD_DIR} ${ARTICLES_EN_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${SPHINX_SETUP_DIR} ${SPHINX_SOURCE_DIR}
|
||||
${post_commands}
|
||||
VERBATIM)
|
||||
|
|
|
|||
186
docs/home.rst
186
docs/home.rst
|
|
@ -1,186 +0,0 @@
|
|||
============================
|
||||
OpenVINO 2024.0
|
||||
============================
|
||||
|
||||
.. meta::
|
||||
:google-site-verification: _YqumYQ98cmXUTwtzM_0WIIadtDc6r_TMYGbmGgNvrk
|
||||
|
||||
**OpenVINO is an open-source toolkit** for optimizing and deploying deep learning models from cloud
|
||||
to edge. It accelerates deep learning inference across various use cases, such as generative AI, video,
|
||||
audio, and language with models from popular frameworks like PyTorch, TensorFlow, ONNX, and more.
|
||||
Convert and optimize models, and deploy across a mix of Intel® hardware and environments, on-premises
|
||||
and on-device, in the browser or in the cloud.
|
||||
|
||||
Check out the `OpenVINO Cheat Sheet. <https://docs.openvino.ai/2024/_static/download/OpenVINO_Quick_Start_Guide.pdf>`__
|
||||
|
||||
|
||||
.. container::
|
||||
:name: ov-homepage-banner
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="_static/css/homepage_style.css">
|
||||
<div class="line-block">
|
||||
<section class="splide" aria-label="Splide Banner Carousel">
|
||||
<div class="splide__track">
|
||||
<ul class="splide__list">
|
||||
<li id="ov-homepage-slide1" id class="splide__slide">
|
||||
<p class="ov-homepage-slide-title">An open-source toolkit for optimizing and deploying deep learning models.</p>
|
||||
<p class="ov-homepage-slide-subtitle">Boost your AI deep-learning inference performance!</p>
|
||||
<a class="ov-homepage-banner-btn" href="https://docs.openvino.ai/2024/get-started.html">Learn more</a>
|
||||
</li>
|
||||
<li id="ov-homepage-slide2" class="splide__slide">
|
||||
<p class="ov-homepage-slide-title">Better OpenVINO integration with PyTorch!</p>
|
||||
<p class="ov-homepage-slide-subtitle">Use PyTorch models directly, without converting them first.</p>
|
||||
<a class="ov-homepage-banner-btn" href="https://docs.openvino.ai/2024/openvino-workflow/model-preparation/convert-model-pytorch.html">Learn more</a>
|
||||
</li>
|
||||
<li id="ov-homepage-slide3" class="splide__slide">
|
||||
<p class="ov-homepage-slide-title">OpenVINO via PyTorch 2.0 torch.compile()</p>
|
||||
<p class="ov-homepage-slide-subtitle">Use OpenVINO directly in PyTorch-native applications!</p>
|
||||
<a class="ov-homepage-banner-btn" href="https://docs.openvino.ai/2024/openvino-workflow/torch-compile.html">Learn more</a>
|
||||
</li>
|
||||
<li id="ov-homepage-slide4" class="splide__slide">
|
||||
<p class="ov-homepage-slide-title">Do you like Generative AI?</p>
|
||||
<p class="ov-homepage-slide-subtitle">You will love how it performs with OpenVINO!</p>
|
||||
<a class="ov-homepage-banner-btn" href="https://docs.openvino.ai/2024/learn-openvino/interactive-tutorials-python.html">Check out our new notebooks</a>
|
||||
</li>
|
||||
<li id="ov-homepage-slide5" id class="splide__slide">
|
||||
<p class="ov-homepage-slide-title">Boost your AI deep-learning inference performance.</p>
|
||||
<p class="ov-homepage-slide-subtitle">Use Intel's open-source OpenVINO toolkit for optimizing and deploying deep learning models.</p>
|
||||
<a class="ov-homepage-banner-btn" href="https://docs.openvino.ai/2024/openvino-workflow/running-inference/integrate-openvino-with-your-application.html">Learn more</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
|
|
||||
|
|
||||
|
||||
.. image:: _static/images/openvino-overview-diagram.jpg
|
||||
:align: center
|
||||
:alt: openvino diagram
|
||||
|
||||
|
|
||||
|
||||
Places to Begin
|
||||
++++++++++++++++++++++++++++
|
||||
|
||||
.. grid:: 2 2 3 3
|
||||
:class-container: ov-homepage-higlight-grid
|
||||
|
||||
.. grid-item-card:: Installation
|
||||
:img-top: ./_static/images/home_begin_tile_01.png
|
||||
:class-card: homepage_begin_tile
|
||||
|
||||
This guide introduces installation and learning materials for Intel® Distribution of OpenVINO™ toolkit.
|
||||
|
||||
.. button-link:: get-started/install-openvino.html
|
||||
:color: primary
|
||||
:outline:
|
||||
|
||||
Get Started
|
||||
|
||||
.. grid-item-card:: Performance Benchmarks
|
||||
:img-top: ./_static/images/home_begin_tile_02.png
|
||||
:class-card: homepage_begin_tile
|
||||
|
||||
See latest benchmark numbers for OpenVINO and OpenVINO Model Server.
|
||||
|
||||
.. button-link:: about-openvino/performance-benchmarks.html
|
||||
:color: primary
|
||||
:outline:
|
||||
|
||||
View data
|
||||
|
||||
.. grid-item-card:: Framework Compatibility
|
||||
:img-top: ./_static/images/home_begin_tile_03.png
|
||||
:class-card: homepage_begin_tile
|
||||
|
||||
Load models directly (for TensorFlow, ONNX, PaddlePaddle) or convert to OpenVINO format.
|
||||
|
||||
.. button-link:: openvino-workflow/model-preparation.html
|
||||
:color: primary
|
||||
:outline:
|
||||
|
||||
Load your model
|
||||
|
||||
.. grid-item-card:: Easy Deployment
|
||||
:img-top: ./_static/images/home_begin_tile_04.png
|
||||
:class-card: homepage_begin_tile
|
||||
|
||||
Get started in just a few lines of code.
|
||||
|
||||
.. button-link:: openvino-workflow/running-inference.html
|
||||
:color: primary
|
||||
:outline:
|
||||
|
||||
Run Inference
|
||||
|
||||
.. grid-item-card:: Serving at scale
|
||||
:img-top: ./_static/images/home_begin_tile_05.png
|
||||
:class-card: homepage_begin_tile
|
||||
|
||||
Cloud-ready deployments for microservice applications.
|
||||
|
||||
.. button-link:: openvino-workflow/running-inference.html
|
||||
:color: primary
|
||||
:outline:
|
||||
|
||||
Try it out
|
||||
|
||||
.. grid-item-card:: Model Compression
|
||||
:img-top: ./_static/images/home_begin_tile_06.png
|
||||
:class-card: homepage_begin_tile
|
||||
|
||||
Reach for performance with post-training and training-time compression with NNCF.
|
||||
|
||||
.. button-link:: openvino-workflow/model-optimization.html
|
||||
:color: primary
|
||||
:outline:
|
||||
|
||||
Optimize now
|
||||
|
||||
|
|
||||
|
||||
Key Features
|
||||
++++++++++++++++++++++++++++
|
||||
|
||||
|
||||
.. grid:: 2 2 2 2
|
||||
:class-container: homepage_begin_container
|
||||
|
||||
.. grid-item-card:: Model Compression
|
||||
:img-top: ./_static/images/home_key_feature_01.png
|
||||
:class-card: homepage_begin_key
|
||||
|
||||
You can either link directly with OpenVINO Runtime to run inference locally or use OpenVINO Model Server to serve model inference from a separate server or within a Kubernetes environment.
|
||||
|
||||
.. grid-item-card:: Fast & Scalable Deployment
|
||||
:img-top: ./_static/images/home_key_feature_02.png
|
||||
:class-card: homepage_begin_key
|
||||
|
||||
Write an application once, deploy it anywhere, achieving maximum performance from hardware. Automatic device discovery allows for superior deployment flexibility. OpenVINO Runtime supports Linux, Windows, and MacOS and provides Python, C++, and C API. Use your preferred language and OS.
|
||||
|
||||
.. grid-item-card:: Lighter Deployment
|
||||
:img-top: ./_static/images/home_key_feature_03.png
|
||||
:class-card: homepage_begin_key
|
||||
|
||||
Designed with minimal external dependencies reduces the application footprint, simplifying installation and dependency management. Popular package managers enable application dependencies to be easily installed and upgraded. Custom compilation for your specific model(s) further reduces the final binary size.
|
||||
|
||||
.. grid-item-card:: Enhanced App Start-Up Time
|
||||
:img-top: ./_static/images/home_key_feature_04.png
|
||||
:class-card: homepage_begin_key
|
||||
|
||||
In applications where fast start-up is required, OpenVINO significantly reduces first-inference latency by using the CPU for initial inference and then switching to another device once the model has been compiled and loaded to memory. Compiled models are cached, improving start-up time even more.
|
||||
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:hidden:
|
||||
|
||||
GET STARTED <get-started>
|
||||
LEARN OPENVINO <learn-openvino>
|
||||
OPENVINO WORKFLOW <openvino-workflow>
|
||||
DOCUMENTATION <documentation>
|
||||
ABOUT OPENVINO <about-openvino>
|
||||
|
|
@ -1 +0,0 @@
|
|||
<meta http-equiv="refresh" content="0; URL='home.html'" />
|
||||
|
|
@ -1,6 +1,10 @@
|
|||
import xml.etree.ElementTree as ET
|
||||
from sphinx_sitemap import setup as base_setup, get_locales, hreflang_formatter
|
||||
import queue
|
||||
from pathlib import Path
|
||||
from sphinx_sitemap import setup as base_setup, get_locales, hreflang_formatter, add_html_link, record_builder_type
|
||||
from sphinx.util.logging import getLogger
|
||||
|
||||
logger = getLogger(__name__)
|
||||
|
||||
def setup(app):
|
||||
app.add_config_value(
|
||||
|
|
@ -19,7 +23,9 @@ def setup(app):
|
|||
for listener in app.events.listeners['build-finished']:
|
||||
if listener.handler.__name__ == 'create_sitemap':
|
||||
app.disconnect(listener.id)
|
||||
|
||||
|
||||
app.connect("builder-inited", record_builder_type)
|
||||
app.connect("html-page-context", add_html_link)
|
||||
app.connect('build-finished', create_sitemap)
|
||||
return setup
|
||||
|
||||
|
|
@ -30,11 +36,15 @@ def create_sitemap(app, exception):
|
|||
urlset = app.builder.config.ov_sitemap_urlset
|
||||
meta = app.builder.config.ov_sitemap_meta
|
||||
|
||||
site_url = app.builder.config.site_url
|
||||
site_url = site_url.rstrip('/') + '/'
|
||||
if not site_url:
|
||||
print("sphinx-sitemap error: no site_url"
|
||||
"are set in conf.py. Sitemap not built.")
|
||||
site_url = app.builder.config.site_url or app.builder.config.html_baseurl
|
||||
if site_url:
|
||||
site_url.rstrip("/") + "/"
|
||||
else:
|
||||
logger.warning(
|
||||
"sphinx-sitemap: html_baseurl is required in conf.py." "Sitemap not built.",
|
||||
type="sitemap",
|
||||
subtype="configuration",
|
||||
)
|
||||
return
|
||||
if (not app.sitemap_links):
|
||||
print("sphinx-sitemap warning: No pages generated for %s" %
|
||||
|
|
@ -51,7 +61,7 @@ def create_sitemap(app, exception):
|
|||
for item in urlset:
|
||||
root.set(*item)
|
||||
|
||||
get_locales(app, exception)
|
||||
locales = get_locales(app, exception)
|
||||
|
||||
if app.builder.config.version:
|
||||
version = app.builder.config.version + '/'
|
||||
|
|
@ -78,7 +88,7 @@ def create_sitemap(app, exception):
|
|||
ET.SubElement(namespace_element, tag_name).text = tag_value
|
||||
|
||||
if len(app.locales) > 0:
|
||||
for lang in app.locales:
|
||||
for lang in locales:
|
||||
lang = lang + '/'
|
||||
linktag = ET.SubElement(
|
||||
url,
|
||||
|
|
@ -90,10 +100,10 @@ def create_sitemap(app, exception):
|
|||
lang=lang, version=version, link=link
|
||||
))
|
||||
|
||||
filename = app.outdir + "/" + app.config.sitemap_filename
|
||||
filename = Path(app.outdir) / app.config.sitemap_filename
|
||||
ET.ElementTree(root).write(filename,
|
||||
xml_declaration=True,
|
||||
encoding='utf-8',
|
||||
method="xml")
|
||||
print("%s was generated for URL %s in %s" % (app.config.sitemap_filename,
|
||||
site_url, filename))
|
||||
site_url, filename))
|
||||
|
|
@ -1,15 +1,13 @@
|
|||
import os
|
||||
import sys
|
||||
import json
|
||||
import sys
|
||||
from json import JSONDecodeError
|
||||
from sphinx.errors import ExtensionError
|
||||
import jinja2
|
||||
from docutils.parsers import rst
|
||||
from pathlib import Path
|
||||
from bs4 import BeautifulSoup
|
||||
from sphinx.util import logging
|
||||
from pydata_sphinx_theme import index_toctree
|
||||
from .directives.code import DoxygenSnippet, Scrollbox, Nodescrollbox, visit_scrollbox, depart_scrollbox, Showcase, Nodeshowcase, visit_showcase, depart_showcase
|
||||
from .directives.code import DoxygenSnippet, Scrollbox, Nodescrollbox, visit_scrollbox, depart_scrollbox
|
||||
|
||||
SPHINX_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
|
|
@ -18,9 +16,8 @@ def setup_edit_url(app, pagename, templatename, context, doctree):
|
|||
"""Add a function that jinja can access for returning the edit URL of a page."""
|
||||
|
||||
def has_github_page():
|
||||
doxygen_mapping_file = app.config.html_context.get('doxygen_mapping_file')
|
||||
name = pagename.rsplit('-')[0]
|
||||
if name in doxygen_mapping_file:
|
||||
doxygen_mapping_file = app.config.doxygen_mapping_file
|
||||
if os.path.basename(pagename) in doxygen_mapping_file:
|
||||
return True
|
||||
return False
|
||||
|
||||
|
|
@ -29,11 +26,6 @@ def setup_edit_url(app, pagename, templatename, context, doctree):
|
|||
doc_context = dict()
|
||||
doc_context.update(**context)
|
||||
|
||||
# Make sure that doc_path has a path separator only if it exists (to avoid //)
|
||||
doc_path = doc_context.get("doc_path", "")
|
||||
if doc_path and not doc_path.endswith("/"):
|
||||
doc_path = f"{doc_path}/"
|
||||
|
||||
# ensure custom URL is checked first, if given
|
||||
url_template = doc_context.get("edit_page_url_template")
|
||||
|
||||
|
|
@ -47,15 +39,15 @@ def setup_edit_url(app, pagename, templatename, context, doctree):
|
|||
return jinja2.Template(url_template).render(**doc_context)
|
||||
|
||||
url_template = '{{ github_url }}/{{ github_user }}/{{ github_repo }}' \
|
||||
'/edit/{{ github_version }}/{{ doc_path }}{{ file_name }}'
|
||||
'/edit/{{ github_version }}/{{ file_name }}'
|
||||
|
||||
doxygen_mapping_file = app.config.html_context.get('doxygen_mapping_file')
|
||||
rst_name = pagename.rsplit('-')[0]
|
||||
doxygen_mapping_file = app.config.doxygen_mapping_file
|
||||
rst_name = os.path.basename(pagename)
|
||||
file_name = doxygen_mapping_file[rst_name]
|
||||
parent_folder = Path(os.path.dirname(file_name)).parts[0]
|
||||
file_name = Path(*Path(file_name).parts[1:]).as_posix()
|
||||
|
||||
doc_context.update(doc_path=doc_path, file_name=file_name)
|
||||
doc_context.update(file_name=file_name)
|
||||
try:
|
||||
repositories = app.config.repositories
|
||||
except AttributeError:
|
||||
|
|
@ -87,118 +79,6 @@ def get_theme_path():
|
|||
return theme_path
|
||||
|
||||
|
||||
def add_toctree_functions(app, pagename, templatename, context, doctree):
|
||||
|
||||
# override pydata_sphinx_theme
|
||||
def generate_sidebar_nav(kind, startdepth=None, **kwargs):
|
||||
"""
|
||||
Return the navigation link structure in HTML. Arguments are passed
|
||||
to Sphinx "toctree" function (context["toctree"] below).
|
||||
|
||||
We use beautifulsoup to add the right CSS classes / structure for bootstrap.
|
||||
|
||||
See https://www.sphinx-doc.org/en/master/templating.html#toctree.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
kind : ["navbar", "sidebar", "raw"]
|
||||
The kind of UI element this toctree is generated for.
|
||||
startdepth : int
|
||||
The level of the toctree at which to start. By default, for
|
||||
the navbar uses the normal toctree (`startdepth=0`), and for
|
||||
the sidebar starts from the second level (`startdepth=1`).
|
||||
kwargs: passed to the Sphinx `toctree` template function.
|
||||
|
||||
Returns
|
||||
-------
|
||||
HTML string (if kind in ["navbar", "sidebar"])
|
||||
or BeautifulSoup object (if kind == "raw")
|
||||
"""
|
||||
|
||||
open_first = False
|
||||
if 'open_first' in kwargs:
|
||||
open_first = kwargs.pop('open_first')
|
||||
|
||||
if startdepth is None:
|
||||
startdepth = 1 if kind == "sidebar" else 0
|
||||
|
||||
if startdepth == 0:
|
||||
toc_sphinx = context["toctree"](**kwargs)
|
||||
else:
|
||||
# select the "active" subset of the navigation tree for the sidebar
|
||||
toc_sphinx = index_toctree(app, pagename, startdepth, **kwargs)
|
||||
|
||||
soup = BeautifulSoup(toc_sphinx, "html.parser")
|
||||
|
||||
if kind == "sidebar":
|
||||
# Add bootstrap classes for first `ul` items
|
||||
for ul in soup("ul", recursive=False):
|
||||
ul.attrs["class"] = ul.attrs.get("class", []) + ["nav", "bd-sidenav"]
|
||||
|
||||
toctree_checkbox_count = 0
|
||||
|
||||
for li in soup.find_all("li"):
|
||||
# pair "current" with "active" since that's what we use w/ bootstrap
|
||||
if "current" in li["class"]:
|
||||
li["class"].append("active")
|
||||
|
||||
# Remove navbar/sidebar links to sub-headers on the page
|
||||
if li.find("a"):
|
||||
href = li.find("a")["href"]
|
||||
if "#" in href and href != "#":
|
||||
li.decompose()
|
||||
continue
|
||||
|
||||
if kind == "navbar":
|
||||
li["class"].append("nav-item")
|
||||
li.find("a")["class"].append("nav-link")
|
||||
# only select li items (not eg captions)
|
||||
# out = "\n".join([ii.prettify() for ii in soup.find_all("li")])
|
||||
elif kind == "sidebar":
|
||||
if li is None:
|
||||
continue
|
||||
# We check all "li" elements, to add a "current-page" to the correct li.
|
||||
classes = li.get("class", [])
|
||||
|
||||
# Nothing more to do, unless this has "children"
|
||||
if not li.find("ul"):
|
||||
continue
|
||||
|
||||
# Add a class to indicate that this has children.
|
||||
li["class"] = classes + ["has-children"]
|
||||
|
||||
# We're gonna add a checkbox.
|
||||
toctree_checkbox_count += 1
|
||||
checkbox_name = f"toctree-checkbox-{toctree_checkbox_count}"
|
||||
|
||||
# Add the "label" for the checkbox which will get filled.
|
||||
if soup.new_tag is None:
|
||||
continue
|
||||
label = soup.new_tag("label", attrs={"for": checkbox_name})
|
||||
label.append(soup.new_tag("i", attrs={"class": "fas fa-chevron-down"}))
|
||||
li.insert(1, label)
|
||||
|
||||
# Add the checkbox that's used to store expanded/collapsed state.
|
||||
checkbox = soup.new_tag(
|
||||
"input",
|
||||
attrs={
|
||||
"type": "checkbox",
|
||||
"class": ["toctree-checkbox"],
|
||||
"id": checkbox_name,
|
||||
"name": checkbox_name,
|
||||
},
|
||||
)
|
||||
# if this has a "current" class, be expanded by default
|
||||
# (by checking the checkbox)
|
||||
if "current" in classes or (open_first and toctree_checkbox_count == 1):
|
||||
checkbox.attrs["checked"] = ""
|
||||
li.insert(1, checkbox)
|
||||
|
||||
return soup
|
||||
|
||||
context["generate_sidebar_nav"] = generate_sidebar_nav
|
||||
|
||||
|
||||
def read_doxygen_configs(app, env, docnames):
|
||||
if app.config.html_context.get('doxygen_mapping_file'):
|
||||
try:
|
||||
|
|
@ -215,20 +95,13 @@ def setup(app):
|
|||
app.config.templates_path.append(templates_path)
|
||||
app.config.html_static_path.append(static_path)
|
||||
app.connect("html-page-context", setup_edit_url, priority=sys.maxsize)
|
||||
app.connect("html-page-context", add_toctree_functions)
|
||||
app.connect('env-before-read-docs', read_doxygen_configs)
|
||||
app.add_html_theme('openvino_sphinx_theme', theme_path)
|
||||
rst.directives.register_directive('doxygensnippet', DoxygenSnippet)
|
||||
rst.directives.register_directive('scrollbox', Scrollbox)
|
||||
rst.directives.register_directive('showcase', Showcase)
|
||||
app.add_node(
|
||||
Nodescrollbox,
|
||||
html=(visit_scrollbox, depart_scrollbox),
|
||||
latex=(visit_scrollbox, depart_scrollbox)
|
||||
)
|
||||
app.add_node(
|
||||
Nodeshowcase,
|
||||
html=(visit_showcase, depart_showcase),
|
||||
latex=(visit_showcase, depart_showcase)
|
||||
)
|
||||
return {'parallel_read_safe': True, 'parallel_write_safe': True}
|
||||
|
|
|
|||
|
|
@ -249,4 +249,4 @@ class Showcase(Directive):
|
|||
self.add_name(node)
|
||||
if self.content:
|
||||
self.state.nested_parse(self.content, self.content_offset, node)
|
||||
return [node]
|
||||
return [node]
|
||||
|
|
@ -24,13 +24,13 @@
|
|||
--ost-color-sst-dropdown-background:var(--ost-color-navbar-background);
|
||||
--ost-color-sst-dropdown-background-active:var(--ost-color-primary-variant);
|
||||
/* Override Pydata Sphinx Theme Variables */
|
||||
--pst-font-family-base: var(--ost-font-family), var(--pst-font-family-base-system);
|
||||
--pst-font-family-heading: var(--ost-font-family), var(--pst-font-family-base-system);
|
||||
--pst-font-size-base: var(--ost-font-size);
|
||||
--pst-color-sidebar-link-active: var(--ost-color-sidebar-link-active);
|
||||
--pst-color-sidebar-link-hover: var(--ost-color-sidebar-link-hover);
|
||||
--pst-color-sidebar-link: var(--ost-color-sidebar-link);
|
||||
--pst-color-primary: var(--ost-color-primary);
|
||||
--pst-color-secondary: var(--ost-color-primary)!important;
|
||||
--pst-color-link: var(--ost-color-link);
|
||||
--pst-color-link-hover: var(--ost-color-link-hover);
|
||||
--tabs--label-text--active: var(--ost-tabs--label-text--active);
|
||||
|
|
@ -47,7 +47,7 @@ body {
|
|||
}
|
||||
|
||||
.bd-sidebar .nav .active > a {
|
||||
font-weight: 600!important;
|
||||
font-weight: 700!important;
|
||||
}
|
||||
|
||||
.toc-entry >.nav-link.active {
|
||||
|
|
@ -55,138 +55,6 @@ body {
|
|||
border-color: rgb(var(--ost-color-primary));
|
||||
}
|
||||
|
||||
/* Showcase Extension */
|
||||
|
||||
:root {
|
||||
/* Showcase - Colors */
|
||||
--ov-color: hsl(261, 87.2%, 54.1%);
|
||||
--black: hsl(0, 0%, 0%);
|
||||
--white: hsl(0, 0%, 100%);
|
||||
--ov-light-blue: rgba(229, 242, 255, 0.95);
|
||||
--ov-blue: rgba(0, 104, 181, 0.95);
|
||||
--ov-dark-blue: rgba(0, 74, 134, 0.95);
|
||||
}
|
||||
|
||||
.showcase-wrap {
|
||||
width: 100%;
|
||||
display: inline-block;
|
||||
margin: 10px 10px 30px 10px;
|
||||
|
||||
}
|
||||
|
||||
.showcase {
|
||||
width: 100%;
|
||||
min-height: 150px;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.showcase-content {
|
||||
min-height: inherit;
|
||||
width: -webkit-calc(100% - 160px);
|
||||
width: -moz-calc(100% - 160px);
|
||||
width: calc(100% - 160px);
|
||||
padding: 0.5rem 1.2rem 0.5rem;
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
|
||||
}
|
||||
.showcase-content::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
height: 0.15rem;
|
||||
width: 100%;
|
||||
bottom: 0px;
|
||||
left: 0px;
|
||||
background-color: var(--ov-light-blue);
|
||||
}
|
||||
|
||||
.showcase-img {
|
||||
object-fit: cover;
|
||||
width: 150px;
|
||||
height: 150px;
|
||||
position: absolute;
|
||||
border-radius: 0.25rem;
|
||||
box-shadow: 0.25rem 0.25rem 0.5rem rgba(0,0,0,0.25);
|
||||
border: 1px solid rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
|
||||
.showcase-img-placeholder {
|
||||
min-height: 150px;
|
||||
width: 150px;
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.showcase-title {
|
||||
font-size: 0.90rem;
|
||||
line-height: 1;
|
||||
margin: 0px 0px 10px 0px;
|
||||
color: var(--black);
|
||||
position: relative;
|
||||
width: fit-content;
|
||||
width: -moz-fit-content;
|
||||
}
|
||||
|
||||
.showcase-title::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
height: 0.15rem;
|
||||
width: 100%;
|
||||
bottom: -5px;
|
||||
left: 0px;
|
||||
background-color: var(--ov-light-blue);
|
||||
}
|
||||
|
||||
.showcase-content-container p {
|
||||
font-size: 1.2rem;
|
||||
line-height: 1.2;
|
||||
color: var(--black);
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.showcase-content-container a > h2 {
|
||||
display: block!important;
|
||||
width: fit-content;
|
||||
width: -moz-fit-content;
|
||||
}
|
||||
|
||||
.showcase-badge {
|
||||
margin-right: 3px;
|
||||
}
|
||||
|
||||
.showcase-button {
|
||||
width: 100px;
|
||||
float: right;
|
||||
border: none;
|
||||
font-size: 1rem;
|
||||
color: #00A3F6;
|
||||
background-color: #FFF;
|
||||
position: absolute;
|
||||
right: 0px;
|
||||
bottom: 0px;
|
||||
}
|
||||
|
||||
.showcase-button:focus {
|
||||
outline: none!important;
|
||||
}
|
||||
|
||||
.showcase-button:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.showcase-badge:hover, .showcase-img:hover {
|
||||
transform: scale(1.05);
|
||||
}
|
||||
|
||||
.showcase-img:hover {
|
||||
box-shadow: 0 0 10px 2px rgba(108,36,240,0.3) !important;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Scrollbox Extension */
|
||||
|
||||
.scrollbox {
|
||||
|
|
@ -279,7 +147,6 @@ blockquote p {
|
|||
/* Edit this page */
|
||||
|
||||
.editthispage {
|
||||
text-align: end;
|
||||
padding-top:0;
|
||||
}
|
||||
|
||||
|
|
@ -332,6 +199,7 @@ blockquote p {
|
|||
|
||||
.navbar {
|
||||
background:rgba(var(--ost-color-navbar-background), 1) !important;
|
||||
height: 60px;
|
||||
}
|
||||
|
||||
.navbar-light .navbar-nav li a.nav-link {
|
||||
|
|
@ -361,10 +229,6 @@ blockquote p {
|
|||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.navbar-nav {
|
||||
flex-direction: column !important;
|
||||
}
|
||||
|
||||
.container-xl {
|
||||
display: block;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,32 +0,0 @@
|
|||
{{ fullname | escape | underline}}
|
||||
|
||||
.. currentmodule:: {{ module }}
|
||||
|
||||
.. autoclass:: {{ objname }}
|
||||
:members:
|
||||
:show-inheritance:
|
||||
:inherited-members:
|
||||
|
||||
{% block methods %}
|
||||
.. automethod:: __init__
|
||||
|
||||
{% if methods %}
|
||||
.. rubric:: Methods
|
||||
|
||||
.. autosummary::
|
||||
{% for met in methods %}
|
||||
~{{ name }}.{{ met }}
|
||||
{%- endfor %}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block attributes %}
|
||||
{% if attributes %}
|
||||
.. rubric:: Attributes
|
||||
|
||||
.. autosummary::
|
||||
{% for att in attributes %}
|
||||
~{{ name }}.{{ att }}
|
||||
{%- endfor %}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
|
@ -1,68 +0,0 @@
|
|||
{{ fullname | escape | underline}}
|
||||
|
||||
.. automodule:: {{ fullname }}
|
||||
|
||||
{% block attributes %}
|
||||
{% if attributes %}
|
||||
.. rubric:: Module Attributes
|
||||
|
||||
.. autosummary::
|
||||
:toctree:
|
||||
{% for attr in attributes %}
|
||||
{{ attr }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block functions %}
|
||||
{% if functions %}
|
||||
.. rubric:: Functions
|
||||
|
||||
.. autosummary::
|
||||
:toctree:
|
||||
{% for func in functions %}
|
||||
{% if not func.startswith('_') %}
|
||||
{{ func }}
|
||||
{% endif %}
|
||||
{%- endfor %}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block classes %}
|
||||
{% if classes %}
|
||||
.. rubric:: Classes
|
||||
|
||||
.. autosummary::
|
||||
:toctree:
|
||||
:template: custom-class-template.rst
|
||||
{% for cl in classes %}
|
||||
{{ cl }}
|
||||
{%- endfor %}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block exceptions %}
|
||||
{% if exceptions %}
|
||||
.. rubric:: Exceptions
|
||||
|
||||
.. autosummary::
|
||||
:toctree:
|
||||
{% for item in exceptions %}
|
||||
{{ item }}
|
||||
{%- endfor %}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block modules %}
|
||||
{% if modules %}
|
||||
.. rubric:: Modules
|
||||
|
||||
.. autosummary::
|
||||
:toctree:
|
||||
:template: custom-module-template.rst
|
||||
:recursive:
|
||||
{% for mod in modules %}
|
||||
{{ mod }}
|
||||
{%- endfor %}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
<div class="tocsection download-docs">
|
||||
<div class="dropdown sst-dropdown">
|
||||
<button class="button bttn-prm button-size-m" data-display="static" type="button" id="download-options"
|
||||
<button class="button bttn-prm sst-btn button-size-m" data-display="static" type="button" id="download-options"
|
||||
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
Download Docs
|
||||
</button>
|
||||
|
|
|
|||
|
|
@ -1,8 +1,9 @@
|
|||
</br>
|
||||
{% if sourcename is defined and theme_use_edit_page_button==true and page_source_suffix and has_github_page %}
|
||||
{% set src = sourcename.split('.') %}
|
||||
<div class="editthispage">
|
||||
<a class='button button-ghost button-size-m' href="{{ get_edit_url() }}">
|
||||
<a class='button button-size-m' href="{{ get_edit_url() }}">
|
||||
<i class="fas fa-pencil-alt"></i> {{ _("Edit this page") }}
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
{%- macro icon_link_nav_item(url, icon, name) -%}
|
||||
{%- if url | length > 2 %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{{ url }}" rel="noopener" target="_blank" title="{{ _(name) }}">
|
||||
<span><i class="{{ icon }}"></i></span>
|
||||
<label class="sr-only">{{ _(name) }}</label>
|
||||
</a>
|
||||
</li>
|
||||
{%- endif -%}
|
||||
{%- endmacro -%}
|
||||
|
||||
<ul id="navbar-icon-links" class="navbar-nav" aria-label="{{ _(theme_icon_links_label) }}">
|
||||
{%- block icon_link_shortcuts -%}
|
||||
{{ icon_link_nav_item(theme_github_url, "sst-github", "GitHub") -}}
|
||||
{% endblock -%}
|
||||
{%- for icon_link in theme_icon_links -%}
|
||||
{{ icon_link_nav_item(icon_link["url"], icon_link["icon"], icon_link["name"]) -}}
|
||||
{%- endfor %}
|
||||
</ul>
|
||||
|
|
@ -1,94 +1,155 @@
|
|||
{%- extends "pydata_sphinx_theme/layout.html" %}
|
||||
{# prev/next buttons #}
|
||||
{% macro ovino_prev_next(prev, next, prev_title='', next_title='') %}
|
||||
{%- if prev %}
|
||||
<a class='button bttn-sec button-size-l' id="prev-link" href="{{ prev.link|e }}" title="{{ _('previous page')}}">Prev</a>
|
||||
{%- endif %}
|
||||
{%- if next %}
|
||||
<a class='button bttn-sec button-size-l' id="next-link" href="{{ next.link|e }}" title="{{ _('next page')}}">Next</a>
|
||||
{%- endif %}
|
||||
{% endmacro %}
|
||||
{# We redefine <html/> for "basic/layout.html" to add a default `data-theme` attribute when
|
||||
# a default mode has been set. This also improves compatibility when JavaScript is disabled.
|
||||
#}
|
||||
{% set html_tag %}
|
||||
<html{% if not html5_doctype %} xmlns="http://www.w3.org/1999/xhtml"{% endif %}{% if language is not none %} lang="{{ language }}"{% endif %} {% if default_mode %}data-theme="{{ default_mode }}"{% endif %}>
|
||||
{% endset %}
|
||||
{%- extends "basic/layout.html" %}
|
||||
{%- import "static/webpack-macros.html" as _webpack with context %}
|
||||
{# Metadata and asset linking #}
|
||||
{# Create the sidebar links HTML here to re-use in a few places #}
|
||||
{# If we have no sidebar links, pop the links component from the sidebar list #}
|
||||
{%- set sidebar_nav_html = generate_toctree_html("sidebar",
|
||||
startdepth=0|int,
|
||||
show_nav_level=theme_show_nav_level|int,
|
||||
maxdepth=theme_navigation_depth|int,
|
||||
collapse=theme_collapse_navigation|tobool,
|
||||
includehidden=True,
|
||||
titles_only=True)
|
||||
-%}
|
||||
{% if sidebar_nav_html | length == 0 %}
|
||||
{% set sidebars = sidebars | reject("in", "sidebar-nav-bs.html") | list %}
|
||||
{% endif %}
|
||||
{# A flag for whether we include a secondary sidebar based on the page metadata #}
|
||||
{% set remove_sidebar_secondary = (meta is defined and meta is not none
|
||||
and 'html_theme.sidebar_secondary.remove' in meta)
|
||||
or not theme_secondary_sidebar_items %}
|
||||
{%- block css %}
|
||||
{# The data-cfasync attribute disables CloudFlare's Rocket loader so that #}
|
||||
{# mode/theme are correctly set before the browser renders the page. #}
|
||||
{# https://github.com/pydata/pydata-sphinx-theme/pull/1045 #}
|
||||
<script type="module" src="https://static.cloud.coveo.com/atomic/v2/atomic.esm.js"></script>
|
||||
<script data-cfasync="false">
|
||||
// document.documentElement.dataset.mode = localStorage.getItem("mode") || "{{ default_mode }}";
|
||||
document.documentElement.dataset.mode = localStorage.getItem("mode") || "light";
|
||||
document.documentElement.dataset.theme = localStorage.getItem("theme") || "light";
|
||||
</script>
|
||||
{{ _webpack.head_pre_assets() }}
|
||||
{{ _webpack.head_pre_icons() }}
|
||||
{{- css() }}
|
||||
{{ _webpack.head_js_preload() }}
|
||||
{%- endblock css %}
|
||||
{%- block extrahead %}
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<meta name="docsearch:language" content="{{ language }}"/>
|
||||
{%- if last_updated %}
|
||||
<meta name="docbuild:last-update" content="{{ last_updated | e }}"/>
|
||||
{%- endif %}
|
||||
{%- endblock extrahead %}
|
||||
{% block body_tag %}
|
||||
{# set up with scrollspy to update the toc as we scroll #}
|
||||
{# ref: https://getbootstrap.com/docs/4.0/components/scrollspy/ #}
|
||||
<body data-bs-spy="scroll" data-bs-target=".bd-toc-nav" data-offset="180" data-bs-root-margin="0px 0px -60%" data-default-mode="{{ default_mode }}">
|
||||
|
||||
{% block css %}
|
||||
{{ super() }}
|
||||
<link href="{{ pathto('_static/css/media/favicon.ico', 1) }}" rel="shortcut icon">
|
||||
<link rel="stylesheet" href="{{ pathto('_static/css/openvino_sphinx_theme.css', 1) }}" type="text/css" />
|
||||
<link rel="stylesheet" href="{{ pathto('_static/css/button.css', 1) }}" type="text/css" />
|
||||
<link rel="stylesheet" href="{{ pathto('_static/css/input.css', 1) }}" type="text/css" />
|
||||
<link rel="stylesheet" href="{{ pathto('_static/css/textfield.css', 1) }}" type="text/css" />
|
||||
<link rel="stylesheet" href="{{ pathto('_static/css/tabs.css', 1) }}" type="text/css" />
|
||||
<script src="{{ pathto('_static/js/openvino_sphinx_theme.js', 1) }}"></script>
|
||||
<script src="{{ pathto('_static/js/sortable_tables.js', 1) }}"></script>
|
||||
{% endblock %}
|
||||
|
||||
{%- block content %}
|
||||
{% block docs_navbar %}
|
||||
<nav class="navbar navbar-light navbar-expand-lg bg-light fixed-top bd-navbar" id="navbar-main">
|
||||
{%- include "docs-navbar.html" %}
|
||||
<div id="collapse-nav-wrapper" class="container-xl">
|
||||
<button id="collapse-nav" class="button bttn-prm button-size-m" type="button" data-toggle="collapse" data-target="#nav-tree" aria-expanded="false" aria-controls="nav-tree">
|
||||
Documentation navigation <i class="fas fa-chevron-down"></i>
|
||||
</button>
|
||||
</div>
|
||||
</nav>
|
||||
{% endblock %}
|
||||
|
||||
<div class="container-xl">
|
||||
<div class="row">
|
||||
{% block docs_sidebar %}
|
||||
{% if sidebars %}
|
||||
<!-- Only show if we have sidebars configured, else just a small margin -->
|
||||
<div class="col-12 col-md-3 bd-sidebar" id="nav-tree">
|
||||
{%- for sidebartemplate in sidebars %}
|
||||
{%- include sidebartemplate %}
|
||||
{%- endfor %}
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="col-12 col-md-1 col-xl-2 bd-sidebar no-sidebar"></div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block docs_toc %}
|
||||
<div class="d-none d-xl-block col-xl-2 bd-toc">
|
||||
{% if meta is defined and not (meta is not none and 'notoc' in meta) %}
|
||||
{% for toc_item in theme_page_sidebar_items %}
|
||||
<div class="toc-item">
|
||||
{% include toc_item %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block docs_main %}
|
||||
{% if sidebars %}
|
||||
{% set content_col_class = "col-md-9 col-xl-7" %}
|
||||
{% else %}
|
||||
{% set content_col_class = "col-md-11 col-xl-8" %}
|
||||
{% endif %}
|
||||
<main class="col-12 {{ content_col_class }} py-md-5 pl-md-5 pr-md-4 bd-content" role="main">
|
||||
{%- block edit_page -%}
|
||||
{%- include "edit-this-page.html" with context -%}
|
||||
{%- endblock %}
|
||||
{% block docs_body %}
|
||||
<div>
|
||||
{% block body %} {% endblock %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% if theme_show_prev_next %}
|
||||
<div class='prev-next-bottom'>
|
||||
{{ ovino_prev_next(prev, next) }}
|
||||
</div>
|
||||
{% endif %}
|
||||
</main>
|
||||
{% endblock %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{%- block scripts_end %}
|
||||
{{ _webpack.body_post() }}
|
||||
{%- endblock %}
|
||||
{# A button hidden by default to help assistive devices quickly jump to main content #}
|
||||
{# ref: https://www.youtube.com/watch?v=VUR0I5mqq7I #}
|
||||
<a class="skip-link" href="#main-content">{{ _("Skip to main content") }}</a>
|
||||
|
||||
{%- endblock %}
|
||||
|
||||
{%- block content %}
|
||||
{# A tiny helper pixel to detect if we've scrolled #}
|
||||
<div id="pst-scroll-pixel-helper"></div>
|
||||
|
||||
{# the scroll to top button #}
|
||||
<button type="button" class="btn rounded-pill" id="pst-back-to-top">
|
||||
<i class="fa-solid fa-arrow-up"></i>
|
||||
{{ _("Back to top") }}
|
||||
</button>
|
||||
|
||||
{# checkbox to toggle primary sidebar #}
|
||||
<input type="checkbox"
|
||||
class="sidebar-toggle"
|
||||
name="__primary"
|
||||
id="__primary"/>
|
||||
<label class="overlay overlay-primary" for="__primary"></label>
|
||||
{# Checkboxes to toggle the secondary sidebar #}
|
||||
<input type="checkbox"
|
||||
class="sidebar-toggle"
|
||||
name="__secondary"
|
||||
id="__secondary"/>
|
||||
<label class="overlay overlay-secondary" for="__secondary"></label>
|
||||
{# A search field pop-up that will only show when the search button is clicked #}
|
||||
<div class="search-button__wrapper">
|
||||
<div class="search-button__overlay"></div>
|
||||
<div class="search-button__search-container">{% include "../components/search-field.html" %}</div>
|
||||
</div>
|
||||
{%- if theme_announcement -%}
|
||||
{% include "sections/announcement.html" %}
|
||||
{%- endif %}
|
||||
{% block docs_navbar %}
|
||||
<nav class="bd-header navbar navbar-expand-lg bd-navbar">
|
||||
{%- include "sections/header.html" %}
|
||||
</nav>
|
||||
{% endblock docs_navbar %}
|
||||
<div class="bd-container">
|
||||
<div class="bd-container__inner bd-page-width">
|
||||
{# Primary sidebar #}
|
||||
<div class="bd-sidebar-primary bd-sidebar{% if not sidebars %} hide-on-wide{% endif %}">
|
||||
{% include "sections/sidebar-primary.html" %}
|
||||
</div>
|
||||
{# Using an ID here so that the skip-link works #}
|
||||
<main id="main-content" class="bd-main">
|
||||
{# Main content area #}
|
||||
{% block docs_main %}
|
||||
<div class="bd-content">
|
||||
<div class="bd-article-container">
|
||||
{# Article header #}
|
||||
<div class="bd-header-article">{% include "sections/header-article.html" %}</div>
|
||||
{# Article content #}
|
||||
{% block docs_body %}
|
||||
{# This is empty and only shows up if text has been highlighted by the URL #}
|
||||
{% include "components/searchbox.html" %}
|
||||
<article class="bd-article" role="main">
|
||||
{% block body %}{% endblock %}
|
||||
</article>
|
||||
{% endblock docs_body %}
|
||||
{# Article Footer #}
|
||||
{% if theme_article_footer_items %}
|
||||
<footer class="bd-footer-article">
|
||||
{% include "sections/footer-article.html" %}
|
||||
</footer>
|
||||
{% endif %}
|
||||
{# prev-next buttons #}
|
||||
{% if theme_show_prev_next %}
|
||||
<footer class="prev-next-footer">
|
||||
{% include "components/prev-next.html" %}
|
||||
</footer>
|
||||
{% endif %}
|
||||
</div>
|
||||
{# Secondary sidebar #}
|
||||
{% block docs_toc %}
|
||||
{% if not remove_sidebar_secondary %}
|
||||
<div class="bd-sidebar-secondary bd-toc">{% include "sections/sidebar-secondary.html" %}</div>
|
||||
{% endif %}
|
||||
{% endblock docs_toc %}
|
||||
</div>
|
||||
<footer class="bd-footer-content">
|
||||
{% include "sections/footer-content.html" %}
|
||||
</footer>
|
||||
{% endblock docs_main %}
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
{# Scripts placed at the end of the page to cut down on time to first content #}
|
||||
{%- block scripts_end %}{{ _webpack.body_post() }}{%- endblock scripts_end %}
|
||||
{%- endblock content %}
|
||||
{# Footer #}
|
||||
{%- block footer %}
|
||||
{%- include "footer.html" %}
|
||||
{%- endblock footer %}
|
||||
{# Silence the sidebars and relbars since we define our own #}
|
||||
{% block header %}{% endblock %}
|
||||
{% block relbar1 %}{% endblock %}
|
||||
{% block relbar2 %}{% endblock %}
|
||||
{% block sidebarsourcelink %}{% endblock %}
|
||||
|
|
|
|||
|
|
@ -1,19 +0,0 @@
|
|||
{% if logo %}
|
||||
{% if not theme_logo_link %}
|
||||
<a class="navbar-brand" href="{{ pathto(master_doc) }}">
|
||||
<img src="{{ pathto('_static/' + logo, 1) }}" class="logo" alt="logo">
|
||||
</a>
|
||||
{% elif theme_logo_link[:4] == 'http' %}
|
||||
<a class="navbar-brand" href="{{ theme_logo_link }}">
|
||||
<img src="{{ pathto('_static/' + logo, 1) }}" class="logo" alt="logo">
|
||||
</a>
|
||||
{% else %}
|
||||
<a class="navbar-brand" href="{{ pathto(theme_logo_link) }}">
|
||||
<img src="{{ pathto('_static/' + logo, 1) }}" class="logo" alt="logo">
|
||||
</a>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<a class="navbar-brand" href="{{ pathto(master_doc) }}">
|
||||
<p class="title">{{ project }}</p>
|
||||
</a>
|
||||
{% endif %}
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
<nav class="navbar-nav">
|
||||
<p class="sidebar-header-items__title" role="heading" aria-level="1" aria-label="{{ _('Site Navigation') }}">
|
||||
{{ _("Site Navigation") }}
|
||||
</p>
|
||||
<ul class="bd-navbar-elements navbar-nav">
|
||||
<div id="navbar-center" class="mr-auto">
|
||||
<div class="navbar-center-item">
|
||||
<ul id="navbar-main-elements" class="navbar-nav">
|
||||
<li class="toctree-l1 nav-item">
|
||||
<a class="reference external nav-link" href="https://docs.openvino.ai/install">
|
||||
Install
|
||||
</a>
|
||||
</li>
|
||||
<li class="toctree-l1 nav-item">
|
||||
<a class="reference external nav-link" href="https://blog.openvino.ai/">
|
||||
Blog
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="toctree-l1 nav-item">
|
||||
<a class="reference external nav-link"
|
||||
href="https://community.intel.com/t5/Intel-Distribution-of-OpenVINO/bd-p/distribution-openvino-toolkit">
|
||||
Forum
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="toctree-l1 nav-item">
|
||||
<a class="reference external nav-link"
|
||||
href="https://www.intel.com/content/www/us/en/support/products/96066/software/development-software/openvino-toolkit.html">
|
||||
Support
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="toctree-l1 nav-item">
|
||||
<a class="reference external nav-link" href="https://github.com/openvinotoolkit">
|
||||
GitHub
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</ul>
|
||||
</nav>
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
{% set page_toc = generate_toc_html() %}
|
||||
|
||||
<div class="tocsection onthispage pt-5 pb-3">
|
||||
{{ _("On this page") }}
|
||||
</div>
|
||||
|
||||
<nav id="bd-toc-nav">
|
||||
{{ page_toc }}
|
||||
</nav>
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
<div>
|
||||
<atomic-search-interface id="sa-search">
|
||||
<atomic-search-box redirection-url="search.html">
|
||||
</atomic-search-box>
|
||||
</atomic-search-interface>
|
||||
</div>
|
||||
<atomic-search-interface id="sa-search">
|
||||
<atomic-search-box redirection-url="search.html">
|
||||
</atomic-search-box>
|
||||
</atomic-search-interface>
|
||||
</div>
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
<nav class="bd-links" id="bd-docs-nav" aria-label="{{ _('Main navigation') }}">
|
||||
<div class="bd-toc-item active">
|
||||
{% set open_first = false %}
|
||||
{% if pagename == 'tutorials' %}
|
||||
{% set open_first = true %}
|
||||
{% endif %}
|
||||
{{ generate_sidebar_nav("sidebar",
|
||||
maxdepth=theme_navigation_depth|int,
|
||||
collapse=theme_collapse_navigation|tobool,
|
||||
includehidden=True,
|
||||
titles_only=True,
|
||||
open_first=open_first) }}
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
|
|
@ -3,4 +3,10 @@ inherit = pydata_sphinx_theme
|
|||
|
||||
[options]
|
||||
navbar_end = navbar-icon-links.html, navbar-version-selector.html, navbar-language-selector.html
|
||||
page_sidebar_items = page-toc.html, download-docs.html
|
||||
secondary_sidebar_items = page-toc, sourcelink, download-docs, edit-this-page
|
||||
navbar_center = navbar-nav.html
|
||||
navbar_persistent =
|
||||
pygment_dark_style = a11y-high-contrast-light
|
||||
default_mode = light
|
||||
footer_start =
|
||||
footer_end =
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
# Copyright (C) 2018-2024 Intel Corporation
|
||||
# Copyright (C) 2018-2023 Intel Corporation
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
from setuptools import setup
|
||||
|
||||
setup(
|
||||
name='openvino-sphinx-theme',
|
||||
version='0.0.1',
|
||||
version='0.0.2',
|
||||
packages=['openvino_sphinx_theme'],
|
||||
maintainer='OpenVINO Documentation Team',
|
||||
include_package_data=True,
|
||||
|
|
|
|||
|
|
@ -7,20 +7,20 @@ breathe==4.35.0
|
|||
certifi==2023.7.22
|
||||
colorama==0.4.6
|
||||
Cython==0.29.33
|
||||
docutils==0.16
|
||||
docutils==0.20
|
||||
idna==3.4
|
||||
imagesize==1.2.0
|
||||
importlib-metadata==4.4.0
|
||||
imagesize==1.3.0
|
||||
importlib-metadata==4.8.0
|
||||
iniconfig==1.1.1
|
||||
ipython==8.10.0
|
||||
Jinja2==3.1.3
|
||||
lxml>=4.9.2
|
||||
MarkupSafe==2.1.1
|
||||
mistune==2.0.3
|
||||
myst-parser==0.18.1
|
||||
myst-parser==2.0.0
|
||||
packaging==23.0
|
||||
pluggy==0.13.1
|
||||
pydata-sphinx-theme==0.7.2
|
||||
pydata-sphinx-theme==0.14.4
|
||||
Pygments==2.15.1
|
||||
pyparsing==3.0.9
|
||||
pytest==6.2.5
|
||||
|
|
@ -33,19 +33,19 @@ requests==2.31.0
|
|||
six==1.15.0
|
||||
snowballstemmer==2.1.0
|
||||
soupsieve==2.2.1
|
||||
sphinx==4.5.0
|
||||
sphinx-copybutton==0.5.1
|
||||
sphinx-design==0.3.0
|
||||
sphinx-inline-tabs==2021.8.17b10
|
||||
sphinx-panels==0.6.0
|
||||
sphinx==7.2.6
|
||||
sphinx-copybutton==0.5.2
|
||||
sphinx-design==0.5.0
|
||||
sphinx-inline-tabs==2023.4.21
|
||||
sphinx-sitemap==2.2.0
|
||||
sphinxcontrib-applehelp==1.0.2
|
||||
sphinxcontrib-devhelp==1.0.2
|
||||
sphinxcontrib-htmlhelp==2.0.0
|
||||
sphinxcontrib-jsmath==1.0.1
|
||||
sphinxcontrib-qthelp==1.0.3
|
||||
sphinxcontrib-serializinghtml==1.1.5
|
||||
sphinxcontrib-serializinghtml==1.1.9
|
||||
toml==0.10.2
|
||||
urllib3==1.26.18
|
||||
zipp==3.4.1
|
||||
docs/openvino_custom_sphinx_sitemap
|
||||
openvino
|
||||
docs/openvino_custom_sphinx_sitemap
|
||||
|
|
@ -0,0 +1,74 @@
|
|||
import re
|
||||
import os
|
||||
import json
|
||||
from pathlib import Path
|
||||
import argparse
|
||||
import logging
|
||||
# from github import Github
|
||||
|
||||
def create_mapping(output_dir: Path, doc_dir_name: str):
|
||||
mapping = {}
|
||||
output_dir = output_dir.resolve()
|
||||
script_dir = os.path.dirname(os.path.realpath(__file__))
|
||||
directory = os.path.abspath(os.path.join(script_dir, '..', doc_dir_name))
|
||||
for root, _, files in os.walk(directory):
|
||||
for file in files:
|
||||
if file.endswith('.rst'):
|
||||
file_path = os.path.join(root, file)
|
||||
file_path = os.path.relpath(file_path, start=os.path.join(directory, '..', '..', '..'))
|
||||
file_path = file_path.replace('\\', '/').replace('OpenVINO', 'openvino').replace(' ', '-')
|
||||
file_name_without_extension = os.path.basename(os.path.splitext(file_path)[0])
|
||||
mapping[file_name_without_extension] = file_path
|
||||
with open(output_dir.joinpath('doc_mapping.json'), 'w') as f:
|
||||
json.dump(mapping, f)
|
||||
|
||||
|
||||
def connect_jsons(output_dir: Path):
|
||||
output_dir = output_dir.resolve()
|
||||
try:
|
||||
with open(output_dir.joinpath('mapping.json'), 'r') as f:
|
||||
data1 = json.load(f)
|
||||
with open(output_dir.joinpath('doc_mapping.json'), 'r') as f:
|
||||
data2 = json.load(f)
|
||||
merged_data = {**data1, **data2}
|
||||
with open(output_dir.joinpath('mapping.json'), 'w') as f:
|
||||
json.dump(merged_data, f, indent=4)
|
||||
except Exception as e:
|
||||
logging.error(f"Couldn't connect .json files. Error: {repr(e)}")
|
||||
|
||||
|
||||
# def get_file_list_from_github_repo() -> dict:
|
||||
# username = 'openvinotoolkit'
|
||||
# repository_name = 'model_server'
|
||||
# path = 'docs'
|
||||
# g = Github()
|
||||
# mapping = {}
|
||||
# pattern = r'{#([^#]+?)}'
|
||||
# repo = g.get_repo(f"{username}/{repository_name}")
|
||||
# contents = repo.get_contents(path)
|
||||
# for content in contents:
|
||||
# if content.type == 'file':
|
||||
# try:
|
||||
# decoded_content = content.decoded_content.decode('utf-8')[:200]
|
||||
# match = re.search(pattern, decoded_content[:200])
|
||||
# if match:
|
||||
# html_name = match.group(1)
|
||||
# mapping[html_name] = 'ovms/' + content.path
|
||||
# except UnicodeDecodeError:
|
||||
# pass
|
||||
# return mapping
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('output_dir', type=Path, help='Path to the output folder')
|
||||
parser.add_argument('doc_dir_name', type=Path, help='Path to the documentation folder')
|
||||
args = parser.parse_args()
|
||||
output_dir = args.output_dir
|
||||
doc_dir_name = args.doc_dir_name
|
||||
create_mapping(output_dir, doc_dir_name)
|
||||
connect_jsons(output_dir)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
# Copyright (C) 2018-2024 Intel Corporation
|
||||
# Copyright (C) 2018-2023 Intel Corporation
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
import argparse
|
||||
|
|
@ -10,9 +10,9 @@ from pathlib import Path
|
|||
REPOSITORIES = [
|
||||
'openvino',
|
||||
'omz',
|
||||
'pot'
|
||||
'pot',
|
||||
'ovms',
|
||||
'ote'
|
||||
'ote',
|
||||
]
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -2,19 +2,19 @@
|
|||
/* ========================================== */
|
||||
|
||||
.benchmark-banner {
|
||||
position: sticky;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
z-index: 1001;
|
||||
text-align: center;
|
||||
padding: 7px;
|
||||
border-width: 0px;
|
||||
background: #525252;
|
||||
}
|
||||
.benchmark-banner p {
|
||||
margin: 0;
|
||||
color: #E9E9E9;
|
||||
}
|
||||
.benchmark-banner p a {
|
||||
color: #B4F0FF;
|
||||
}
|
||||
position: sticky;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
z-index: 1001;
|
||||
text-align: center;
|
||||
padding: 7px;
|
||||
border-width: 0px;
|
||||
background: #525252;
|
||||
}
|
||||
.benchmark-banner p {
|
||||
margin: 0;
|
||||
color: #E9E9E9;
|
||||
}
|
||||
.benchmark-banner p a {
|
||||
color: #B4F0FF;
|
||||
}
|
||||
|
|
@ -20,18 +20,8 @@ main .searchForm {
|
|||
pre {
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
background-color: #efefef;
|
||||
}
|
||||
|
||||
.notebook-badge {
|
||||
margin-right: 3px;
|
||||
}
|
||||
|
||||
.notebook-badge-p {
|
||||
height: 25px!important;
|
||||
width: auto!important;
|
||||
margin-right: 3px;
|
||||
}
|
||||
|
||||
/* cookie wap requirement */
|
||||
a#wap_dns {display: none;}
|
||||
|
|
@ -44,6 +34,7 @@ a#wap_dns {display: none;}
|
|||
border: solid 1px #bdbdbd;
|
||||
border-bottom: solid 0px;
|
||||
margin-bottom: -1px;
|
||||
border-color: #bdbdbd!important;
|
||||
}
|
||||
|
||||
.sd-tab-set>input:checked+label:hover {
|
||||
|
|
@ -85,7 +76,6 @@ a#wap_dns {display: none;}
|
|||
padding-left: 4px;
|
||||
padding-bottom: 6px;
|
||||
margin: 0 0 0 0;
|
||||
|
||||
}
|
||||
|
||||
.sd-tab-content .sd-tab-content {
|
||||
|
|
@ -96,46 +86,115 @@ a#wap_dns {display: none;}
|
|||
background-color: #f8f8f8
|
||||
}
|
||||
|
||||
|
||||
/* Navigation panels override */
|
||||
/* =================================================== */
|
||||
/* Hide home item in the top bar */
|
||||
ul#navbar-main-elements li:first-of-type {
|
||||
display: none;
|
||||
|
||||
|
||||
/* Right sidebar settings */
|
||||
.toc-entry a.nav-link.active {
|
||||
background-color: transparent;
|
||||
box-shadow: none;
|
||||
color: black;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
/* items on hover */
|
||||
/* Underline width */
|
||||
a:hover,
|
||||
.toc-entry a.nav-link:hover,
|
||||
nav.bd-links li > a:hover {
|
||||
text-decoration-thickness: 1px;
|
||||
}
|
||||
|
||||
|
||||
#bd-docs-nav div ul a:hover {
|
||||
text-decoration: underline;
|
||||
color: white;
|
||||
text-decoration: underline
|
||||
}
|
||||
|
||||
ul#navbar-main-elements > li:hover {
|
||||
ul#navbar-main-elements > li:hover {
|
||||
text-decoration: underline;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
|
||||
/* First-level items in the side menu */
|
||||
#bd-docs-nav > div > ul > li {
|
||||
padding-bottom: 15px;
|
||||
nav.bd-links .current>a {
|
||||
box-shadow: none;
|
||||
font-weight: bold;
|
||||
color: black;
|
||||
}
|
||||
|
||||
#bd-docs-nav > div > ul > li > a {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
.bd-header .navbar-nav li a.nav-link {
|
||||
color: #fff;
|
||||
font-size: 1rem;
|
||||
white-space: nowrap;
|
||||
padding-right: 0;
|
||||
padding: 0 0.8rem;
|
||||
}
|
||||
|
||||
/* Github icon size */
|
||||
.nav-link[data-bs-original-title="GitHub"] {
|
||||
font-size: 2rem!important;
|
||||
}
|
||||
|
||||
.bd-header .navbar-nav li a.nav-link:hover {
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.bd-links__title {
|
||||
display: none;
|
||||
}
|
||||
|
||||
li.toctree-l1.has-children > a.reference.internal {
|
||||
font-weight: 700;
|
||||
color: black;
|
||||
}
|
||||
|
||||
.rotate {
|
||||
transform: rotate(270deg);
|
||||
}
|
||||
|
||||
/* Move sidebar menu arrows to the left */
|
||||
.bd-sidebar label {
|
||||
left: 0px;
|
||||
left: 5px;
|
||||
height: 20px;
|
||||
width: 20px;
|
||||
top: 5px;
|
||||
}
|
||||
|
||||
nav.bd-links li>a {
|
||||
padding-left: 35px;
|
||||
}
|
||||
|
||||
.bd-main .bd-content {
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
.bd-main .bd-content .bd-article-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: start;
|
||||
max-width: 65em;
|
||||
overflow-x: auto;
|
||||
padding: 1rem;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.nav.bd-links {
|
||||
box-shadow: none
|
||||
}
|
||||
|
||||
@media (min-width: 960px) {
|
||||
.bd-page-width {
|
||||
max-width: 113rem;
|
||||
}
|
||||
}
|
||||
|
||||
/* Moving dropdown arrows to the left */
|
||||
details.sd-dropdown .sd-summary-up,
|
||||
details.sd-dropdown .sd-summary-down {
|
||||
left: 10px;
|
||||
top: 10px!important;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -155,21 +214,23 @@ details.sd-dropdown .sd-summary-title {
|
|||
padding-left: 40px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Second level items */
|
||||
#bd-docs-nav > div > ul > li > ul {
|
||||
padding-left: 0.3rem;
|
||||
}
|
||||
|
||||
|
||||
/* Overwrite menu chevron directions for open and closed states */
|
||||
.toctree-checkbox~label i {
|
||||
.label.toctree-toggle {
|
||||
transform: rotate(270deg);
|
||||
}
|
||||
|
||||
.toctree-checkbox:checked~label i {
|
||||
.label.toctree-toggle:checked~label i {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
|
||||
/* Doc version dropdown formatting override */
|
||||
/* =================================================== */
|
||||
[aria-labelledby="version-selector"] {
|
||||
|
|
@ -181,7 +242,7 @@ details.sd-dropdown .sd-summary-title {
|
|||
min-width: 125px!important;
|
||||
}
|
||||
|
||||
[aria-labelledby="version-selector"] .dropdown-item {
|
||||
[aria-labelledby="version-selector"] .dropdown-item {
|
||||
padding: 0.25rem 0.5rem!important;
|
||||
}
|
||||
|
||||
|
|
@ -267,37 +328,62 @@ div.highlight {
|
|||
color: #fff;
|
||||
}
|
||||
|
||||
.bd-sidebar {
|
||||
top: calc(var(--pst-header-height));
|
||||
|
||||
/* Transition banner */
|
||||
/* =================================================== */
|
||||
.transition-banner {
|
||||
top: 60px;
|
||||
background: #76CEFF;
|
||||
position: fixed;
|
||||
text-align: center;
|
||||
color: white;
|
||||
z-index: 1001;
|
||||
display: block;
|
||||
padding:0 2rem;
|
||||
font-size: var(--pst-sidebar-font-size);
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
font-weight: bold;
|
||||
width: 100%;
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
}
|
||||
|
||||
.bd-links {
|
||||
margin-top: 10px;
|
||||
.transition-banner > p {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
padding-top: calc(var(--pst-header-height));
|
||||
.transition-banner .close-banner {
|
||||
position:absolute;
|
||||
top:0;
|
||||
right:0;
|
||||
padding: 0 1.25rem;
|
||||
color: #000;
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
float: right;
|
||||
font-size: 1.5rem;
|
||||
font-weight: 700;
|
||||
line-height: 1;
|
||||
text-shadow: 0 1px 0 #fff;
|
||||
opacity: .5;
|
||||
}
|
||||
|
||||
.bd-toc {
|
||||
border-left: 1px solid #eee;
|
||||
top: calc(var(--pst-header-height) );
|
||||
padding-left: 0px;
|
||||
}
|
||||
.tocsection {
|
||||
border-left: 0px solid #eee;
|
||||
|
||||
.hidden-banner {
|
||||
display: none!important;
|
||||
}
|
||||
|
||||
.section-nav {
|
||||
border-left: 0px solid #eee;
|
||||
|
||||
}
|
||||
|
||||
/* Responsiveness */
|
||||
/* =================================================== */
|
||||
@media (max-width: 720px) {
|
||||
.transition-banner {
|
||||
margin-top: 2rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1200px) {
|
||||
.container,
|
||||
.container,
|
||||
.container-lg,
|
||||
.container-md,
|
||||
.container-sm,
|
||||
|
|
@ -575,17 +661,13 @@ body {
|
|||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.modal-content-grid p {
|
||||
font-size: 0.6rem;
|
||||
}
|
||||
|
||||
.modal-content-grid-container .column {
|
||||
min-width: 100px;
|
||||
}
|
||||
|
||||
.modal-content-grid-container label {
|
||||
margin-bottom: 0;
|
||||
padding-right: 6px;
|
||||
padding-right: 4px;
|
||||
}
|
||||
|
||||
.modal-content-grid-container input {
|
||||
|
|
@ -626,13 +708,6 @@ body {
|
|||
margin-bottom: 0rem;
|
||||
}
|
||||
|
||||
.ul {
|
||||
display: flex;
|
||||
flex-direction: row !important;
|
||||
margin: 0px;
|
||||
padding: 0px 0px 0px 10px;
|
||||
}
|
||||
|
||||
.benchmark-graph-results-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
|
@ -1080,7 +1155,7 @@ table#model-accuracy-and-perf-int8-fp32-table td.data {
|
|||
|
||||
.newsletter-submit-btn:before {
|
||||
font-family: "Font Awesome 5 Free";
|
||||
content: "\f0e0\00a0";
|
||||
content: "\f0e0\00a0";
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,6 @@
|
|||
/* overrides */
|
||||
.switcher-set {display: none;}
|
||||
|
||||
|
||||
|
||||
|
||||
/* === INTRO TEXT ======================================================================== */
|
||||
|
||||
#GSG_introtext a {
|
||||
|
|
@ -16,6 +13,7 @@
|
|||
color: #fff;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#GSG_introtext a::after {
|
||||
display: block;
|
||||
font-size: 0.8em;
|
||||
|
|
@ -27,7 +25,6 @@
|
|||
#GSG_introtext a:nth-of-type(1)::after {content: "Estimate image depth (no install required)";}
|
||||
#GSG_introtext a:nth-of-type(2)::after {content: "View options";}
|
||||
#GSG_introtext a:nth-of-type(3)::after {content: "Tutorials, basics, and features";}
|
||||
|
||||
#GSG_introtext a:nth-of-type(1) {margin-left: 0;}
|
||||
#GSG_introtext a:nth-of-type(3) {margin-right: 0;}
|
||||
|
||||
|
|
@ -39,11 +36,13 @@
|
|||
margin: 0 auto;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#GSG_nextstepchoice a {
|
||||
display: block;
|
||||
width: 100%;
|
||||
padding: 10px 15px;
|
||||
}
|
||||
|
||||
#GSG_nextstepchoice a h4 {
|
||||
display: inline-block;
|
||||
height: 30px;
|
||||
|
|
@ -52,16 +51,14 @@
|
|||
line-height: 2em;
|
||||
font-weight: bold;
|
||||
margin: 0;
|
||||
|
||||
border-bottom: 1px solid #0068B5;
|
||||
|
||||
transition: all 0.5s;
|
||||
-webkit-transition: all 0.5s;
|
||||
-moz-transition: all 0.5s;
|
||||
-o-transition: all 0.5s;
|
||||
-ms-transition: all 0.5s;
|
||||
|
||||
}
|
||||
|
||||
#GSG_nextstepchoice a p {
|
||||
color: #0068B5;
|
||||
text-align: left;
|
||||
|
|
@ -77,13 +74,6 @@
|
|||
text-decoration:none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* === screen narrow =========================================================================== */
|
||||
@media only screen and (max-width: 800px) {
|
||||
#GSG_introtext a { /* === intro tiles float === */
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ h1 {
|
|||
|
||||
.ov-homepage-label {
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.ov-homepage-slide-title {
|
||||
|
|
@ -214,6 +214,13 @@ h1 {
|
|||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
.ov-homepage-higlight-grid .sd-card {
|
||||
transition: 0.5s;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.ov-homepage-higlight-grid .sd-card-title {
|
||||
height: 10px;
|
||||
margin-bottom: 2rem;
|
||||
|
|
@ -248,4 +255,4 @@ h1 {
|
|||
.ov-homepage-feature-grid .sd-col {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1 @@
|
|||
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("chart.js")):"function"==typeof define&&define.amd?define(["chart.js"],e):t.PluginBarchartBackground=e(t.Chart)}(this,function(t){"use strict";t=t&&t.hasOwnProperty("default")?t.default:t;var e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r={color:"#f3f3f3",axis:"category",mode:"odd"};var o={id:"chartJsPluginBarchartBackground",_hasData:function(t){return t&&t.datasets&&t.datasets.length>0},_findScale:function(t,e){var r=Object.keys(t.scales).map(function(e){return t.scales[e]});return"category"===e.axis?r.find(function(t){return"hierarchical"===t.type||"category"===t.type}):r.find(function(t){return t.id.startsWith(e.axis)})},beforeDraw:function(t,e,o){o=Object.assign({},r,o);var n=this._findScale(t,o);if(this._hasData(t.config.data)&&n){var i=n.getTicks();if(i&&0!==i.length){var a=n.isHorizontal(),f=t.chartArea,c=n.options.gridLines,u=t.ctx;u.save(),u.fillStyle=o.color;var l=i.map(function(t,e){return function(t,e,r){var o=t.getPixelForTick(e);return r&&(o-=0===e?(t.getPixelForTick(1)-o)/2:(o-t.getPixelForTick(e-1))/2),o}(n,e,c.offsetGridLines&&i.length>1)}),s="odd"===o.mode?0:1;if(l.length%2==1-s&&l.push(a?f.right:f.bottom),a)for(var d=f.bottom-f.top,y=s;y<l.length;y+=2){var h=l[y],p=l[y+1];u.fillRect(h,f.top,p-h,d)}else for(var g=f.right-f.left,m=s;m<l.length;m+=2){var b=l[m],v=l[m+1];u.fillRect(f.left,b,g,v-b)}u.restore()}}}};return"function"==typeof define&&define.amd||"object"===("undefined"==typeof module?"undefined":e(module))&&module.exports||t.pluginService.register(o),o});
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,8 @@
|
|||
/*!
|
||||
* @license
|
||||
* chartjs-plugin-deferred v1.0.2
|
||||
* https://chartjs-plugin-deferred.netlify.app
|
||||
* (c) 2016-2021 chartjs-plugin-deferred contributors
|
||||
* Released under the MIT license
|
||||
*/
|
||||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("chart.js")):"function"==typeof define&&define.amd?define(["chart.js"],t):t(e.Chart)}(this,function(e){"use strict";var r=(e=e&&e.hasOwnProperty("default")?e.default:e).helpers,a="$chartjs_deferred",i="$deferred";function d(e,t){t?window.setTimeout(e,t):r.requestAnimFrame.call(window,e)}function o(e,t){var n=parseInt(e,10);return isNaN(n)?0:"string"==typeof e&&-1!==e.indexOf("%")?n/100*t:n}function f(e){var t=e[i].options,n=e.chart.canvas;if(n&&null!==n.offsetParent){e=n.getBoundingClientRect(),n=o(t.yOffset||0,e.height),t=o(t.xOffset||0,e.width);return 0<=e.right-t&&0<=e.bottom-n&&e.left+t<=window.innerWidth&&e.top+n<=window.innerHeight}}function l(e){var o=e.target[a];o.ticking||(o.ticking=!0,d(function(){for(var e,t=o.charts.slice(),n=t.length,r=0;r<n;++r)f(e=t[r])&&(s(e),e[i].appeared=!0,e.update());o.ticking=!1}))}function n(e){for(var t,n=e.chart.canvas.parentElement;n;)!function(e){if(e.nodeType!==Node.ELEMENT_NODE)return e.nodeType===Node.DOCUMENT_NODE;var t=r.getStyle(e,"overflow-x"),e=r.getStyle(e,"overflow-y");return"auto"===t||"scroll"===t||"auto"===e||"scroll"===e}(n)||(0===(t=(t=n[a]||(n[a]={})).charts||(t.charts=[])).length&&r.addEvent(n,"scroll",l),t.push(e),e[i].elements.push(n)),n=n.parentElement||n.ownerDocument}function s(n){n[i].elements.forEach(function(e){var t=e[a].charts;t.splice(t.indexOf(n),1),t.length||(r.removeEvent(e,"scroll",l),delete e[a])}),n[i].elements=[]}e.defaults.global.plugins.deferred={xOffset:0,yOffset:0,delay:0},e.plugins.register({id:"deferred",beforeInit:function(e,t){e[i]={options:t,appeared:!1,delayed:!1,loaded:!1,elements:[]},n(e)},beforeDatasetsUpdate:function(e,t){var n=e[i];if(!n.loaded){if(!n.appeared&&!f(e))return!1;if(n.appeared=!0,n.loaded=!0,s(e),0<t.delay)return n.delayed=!0,d(function(){e.ctx&&(n.delayed=!1,e.update())},t.delay),!1}if(n.delayed)return!1},destroy:function(e){s(e)}})});
|
||||
|
|
@ -12,6 +12,56 @@ catch (err) {
|
|||
versions = [];
|
||||
}
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
var toctreeToggles = document.querySelectorAll('.toctree-toggle');
|
||||
toctreeToggles.forEach(function (toggle) {
|
||||
toggle.addEventListener('click', function () {
|
||||
rotateToggle(this);
|
||||
});
|
||||
|
||||
var parentElement = toggle.parentElement;
|
||||
if (!parentElement || !parentElement.parentElement || !parentElement.parentElement.classList.contains('current')) {
|
||||
toggle.classList.add('rotate');
|
||||
}
|
||||
});
|
||||
|
||||
function rotateToggle(element) {
|
||||
element.classList.toggle('rotate');
|
||||
}
|
||||
});
|
||||
|
||||
document.addEventListener('click', () => {
|
||||
const ddMs = document.querySelectorAll('.dropdown-menu');
|
||||
ddMs.forEach((dm) => {
|
||||
dm.parentElement.classList.remove('show');
|
||||
dm.classList.remove('show');
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
var dropdownButtons = document.querySelectorAll('.sst-btn');
|
||||
dropdownButtons.forEach((ddBtn) => {
|
||||
ddBtn.parentElement.classList.remove('show');
|
||||
ddBtn.addEventListener('click', (e) => {
|
||||
e.stopPropagation();
|
||||
ddBtn.parentElement.classList.toggle('show');
|
||||
showMenuToggle();
|
||||
});
|
||||
});
|
||||
|
||||
function showMenuToggle() {
|
||||
const ddMs = document.querySelectorAll('.dropdown-menu');
|
||||
ddMs.forEach((dm) => {
|
||||
dm.parentElement.classList.contains('show')
|
||||
? dm.classList.add('show')
|
||||
: dm.classList.remove('show');
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
/* Adobe Analytics */
|
||||
var wapLocalCode = 'us-en';
|
||||
var wapSection = 'openvinotoolkit';
|
||||
|
|
@ -25,6 +75,14 @@ var wapSection = 'openvinotoolkit';
|
|||
s.appendChild(po);
|
||||
})();
|
||||
|
||||
// legal notice for benchmarks
|
||||
function addLegalNotice() {
|
||||
if (window.location.href.indexOf('openvino_docs_performance_') !== -1) {
|
||||
var legalNotice = $('<div class="opt-notice-wrapper"><p class="opt-notice">Results may vary. For workloads visit: <a href="openvino_docs_performance_benchmarks_faq.html#what-image-sizes-are-used-for-the-classification-network-models">workloads</a> and for configurations visit: <a href="openvino_docs_performance_benchmarks.html#platforms-configurations-methodology">configurations</a>. See also <a class="el" href="openvino_docs_Legal_Information.html">Legal Information</a>.</p></div>');
|
||||
$('body').append(legalNotice);
|
||||
}
|
||||
}
|
||||
|
||||
$(document).ready(function () {
|
||||
addFooter();
|
||||
createVersions();
|
||||
|
|
@ -34,6 +92,7 @@ $(document).ready(function () {
|
|||
init_switchers();
|
||||
handleSwitcherParam();
|
||||
initViewerJS();
|
||||
addLegalNotice();
|
||||
updateSearchForm();
|
||||
initBenchmarkPickers(); // included with the new benchmarks page
|
||||
initCollapsibleHeaders(); // included with the new benchmarks page
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,26 +1,18 @@
|
|||
# Configuration file for the Sphinx documentation builder.
|
||||
#
|
||||
# This file only contains a selection of the most common options. For a full
|
||||
# list see the documentation:
|
||||
# For the full list of built-in configuration values, see the documentation:
|
||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html
|
||||
|
||||
# -- Path setup --------------------------------------------------------------
|
||||
# -- Project information -----------------------------------------------------
|
||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
|
||||
|
||||
# If extensions (or modules to document with autodoc) are in another directory,
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||
#
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import shutil
|
||||
from sphinx.util import logging
|
||||
from json import JSONDecodeError
|
||||
from sphinx.ext.autodoc import ClassDocumenter
|
||||
|
||||
|
||||
# -- Project information -----------------------------------------------------
|
||||
|
||||
project = 'OpenVINO™'
|
||||
copyright = '2024, Intel®'
|
||||
author = 'Intel®'
|
||||
|
|
@ -29,21 +21,18 @@ language = 'en'
|
|||
version_name = 'nightly'
|
||||
|
||||
# -- General configuration ---------------------------------------------------
|
||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
|
||||
|
||||
# Add any Sphinx extension module names here, as strings. They can be
|
||||
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
||||
# ones.
|
||||
extensions = [
|
||||
'sphinx_inline_tabs',
|
||||
'sphinx_copybutton',
|
||||
'sphinx_panels',
|
||||
'sphinx_design',
|
||||
'sphinx.ext.autodoc',
|
||||
'sphinx.ext.autosummary',
|
||||
'openvino_custom_sphinx_sitemap',
|
||||
'myst_parser',
|
||||
'breathe'
|
||||
]
|
||||
]
|
||||
|
||||
breathe_projects = {
|
||||
"openvino": "../xml/"
|
||||
|
|
@ -51,16 +40,19 @@ breathe_projects = {
|
|||
|
||||
myst_enable_extensions = ["colon_fence"]
|
||||
myst_heading_anchors = 4
|
||||
suppress_warnings = ['misc.highlighting_failure']
|
||||
suppress_warnings = [
|
||||
'misc.highlighting_failure',
|
||||
'myst.xref_missing'
|
||||
]
|
||||
|
||||
source_suffix = {
|
||||
'.rst': 'restructuredtext',
|
||||
'.md': 'markdown',
|
||||
}
|
||||
|
||||
html_baseurl = ''
|
||||
html_baseurl = 'https://docs.openvino.ai/canonical/'
|
||||
|
||||
# -- Sitemap configuration ---------------------------
|
||||
# -- Sitemap configuration ---------------------------------------------------
|
||||
|
||||
sitemap_url_scheme = "{link}"
|
||||
site_url = f'https://docs.openvino.ai/{version_name}/'
|
||||
|
|
@ -78,8 +70,8 @@ ov_sitemap_meta = [
|
|||
})
|
||||
]
|
||||
|
||||
# ----------------------------------------------------
|
||||
|
||||
# ----------------------------------------------------
|
||||
|
||||
html_favicon = '_static/favicon.ico'
|
||||
autodoc_default_flags = ['members']
|
||||
|
|
@ -97,34 +89,37 @@ templates_path = ['_templates']
|
|||
# This pattern also affects html_static_path and html_extra_path.
|
||||
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
|
||||
|
||||
|
||||
panels_add_bootstrap_css = False
|
||||
|
||||
# -- Options for HTML output -------------------------------------------------
|
||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
|
||||
|
||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||
# a list of builtin themes.
|
||||
#
|
||||
html_theme = "openvino_sphinx_theme"
|
||||
html_theme = 'openvino_sphinx_theme'
|
||||
|
||||
html_theme_path = ['_themes']
|
||||
|
||||
|
||||
html_theme_options = {
|
||||
"navigation_depth": 8,
|
||||
"show_nav_level": 2,
|
||||
"use_edit_page_button": True,
|
||||
"github_url": "https://github.com/openvinotoolkit/openvino",
|
||||
"footer_items": ["footer_info"],
|
||||
# "footer_items": ["footer_info"],
|
||||
"show_prev_next": False,
|
||||
}
|
||||
|
||||
snippet_root = os.getenv("SNIPPET_ROOT", "")
|
||||
|
||||
html_sidebars = {
|
||||
"**": ["search-field.html", "sidebar-nav-bs.html", "sidebar-ethical-ads.html"]
|
||||
}
|
||||
|
||||
html_context = {
|
||||
'current_language': 'English',
|
||||
'languages': (('English', '/latest'), ('Chinese', '/cn/latest')),
|
||||
'doxygen_mapping_file': '@DOXYGEN_MAPPING_FILE@',
|
||||
'doxygen_snippet_root': snippet_root
|
||||
'doxygen_snippet_root': snippet_root,
|
||||
'default_mode': 'light'
|
||||
}
|
||||
|
||||
repositories = {
|
||||
|
|
@ -161,7 +156,7 @@ repositories = {
|
|||
}
|
||||
|
||||
try:
|
||||
doxygen_mapping_file = '@DOXYGEN_MAPPING_FILE@'
|
||||
doxygen_mapping_file = os.path.dirname(os.getcwd()) + '/mapping.json'
|
||||
with open(doxygen_mapping_file, 'r', encoding='utf-8') as f:
|
||||
doxygen_mapping_file = json.load(f)
|
||||
except JSONDecodeError:
|
||||
|
|
@ -174,10 +169,43 @@ except FileNotFoundError:
|
|||
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||
html_static_path = ['_static']
|
||||
|
||||
html_css_files = [
|
||||
'css/custom.css',
|
||||
'css/openvino_sphinx_theme.css',
|
||||
'css/button.css',
|
||||
'css/input.css',
|
||||
'css/textfield.css',
|
||||
'css/tabs.css',
|
||||
'css/coveo_custom.css',
|
||||
'https://static.cloud.coveo.com/atomic/v2/themes/coveo.css',
|
||||
'https://cdn.jsdelivr.net/npm/@splidejs/splide@4.1.4/dist/css/splide.min.css',
|
||||
]
|
||||
|
||||
html_js_files = [
|
||||
'https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js',
|
||||
'https://cdn.jsdelivr.net/npm/chart.js@2.9.3/dist/Chart.min.js',
|
||||
'https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels',
|
||||
'https://cdnjs.cloudflare.com/ajax/libs/chartjs-plugin-annotation/0.5.7/chartjs-plugin-annotation.min.js',
|
||||
'https://cdn.jsdelivr.net/npm/chartjs-plugin-barchart-background@1.3.0/build/Plugin.Barchart.Background.min.js',
|
||||
'https://cdn.jsdelivr.net/npm/chartjs-plugin-deferred@1',
|
||||
'https://cdnjs.cloudflare.com/ajax/libs/PapaParse/5.3.1/papaparse.min.js',
|
||||
'js/openvino_sphinx_theme.js',
|
||||
'js/splide.min.js',
|
||||
'js/sortable_tables.js',
|
||||
'js/graphs.js',
|
||||
'js/graphs_ov_tf.js',
|
||||
'js/gsearch.js',
|
||||
'js/hide_banner.js',
|
||||
'js/newsletter.js',
|
||||
'js/open_sidebar.js',
|
||||
'js/papaparse.min.js',
|
||||
'js/viewer.min.js',
|
||||
'js/custom.js',
|
||||
]
|
||||
|
||||
# monkeypatch sphinx api doc to prevent showing inheritance from object and enum.Enum
|
||||
add_line = ClassDocumenter.add_line
|
||||
|
||||
|
||||
def add_line_no_base_object(self, line, *args, **kwargs):
|
||||
if line.strip() in ['Bases: :class:`object`', 'Bases: :class:`enum.Enum`']:
|
||||
return
|
||||
|
|
@ -200,11 +228,6 @@ def autodoc_skip_member(app, what, name, obj, skip, options):
|
|||
return name in exclude_pyapi_methods
|
||||
|
||||
|
||||
shutil.copy("../../../docs/home.rst",".")
|
||||
|
||||
def replace_index_with_redirect(app,exception):
|
||||
shutil.copy("../../../docs/index.html","../_build/index.html")
|
||||
|
||||
def replace_design_tabs_script(app, exception):
|
||||
shutil.copy("../../../docs/sphinx_setup/_static/design-tabs.js","../_build/_static/design-tabs.js")
|
||||
|
||||
|
|
@ -215,10 +238,4 @@ def setup(app):
|
|||
doxygen_mapping_file, rebuild=True)
|
||||
app.add_config_value('repositories', repositories, rebuild=True)
|
||||
app.connect('autodoc-skip-member', autodoc_skip_member)
|
||||
app.connect('build-finished',replace_index_with_redirect)
|
||||
app.connect('build-finished', replace_design_tabs_script)
|
||||
app.add_js_file('js/custom.js')
|
||||
app.add_js_file('js/graphs.js')
|
||||
app.add_js_file('js/newsletter.js')
|
||||
app.add_js_file('js/graphs_ov_tf.js')
|
||||
app.add_js_file('js/open_sidebar.js')
|
||||
# app.connect('build-finished', replace_design_tabs_script)
|
||||
|
|
|
|||
|
|
@ -1,11 +1,186 @@
|
|||
OpenVINO™ Documentation
|
||||
=======================
|
||||
============================
|
||||
OpenVINO 2024.2
|
||||
============================
|
||||
|
||||
.. meta::
|
||||
:google-site-verification: _YqumYQ98cmXUTwtzM_0WIIadtDc6r_TMYGbmGgNvrk
|
||||
|
||||
**OpenVINO is an open-source toolkit** for optimizing and deploying deep learning models from cloud
|
||||
to edge. It accelerates deep learning inference across various use cases, such as generative AI, video,
|
||||
audio, and language with models from popular frameworks like PyTorch, TensorFlow, ONNX, and more.
|
||||
Convert and optimize models, and deploy across a mix of Intel® hardware and environments, on-premises
|
||||
and on-device, in the browser or in the cloud.
|
||||
|
||||
Check out the `OpenVINO Cheat Sheet. <https://docs.openvino.ai/2024/_static/download/OpenVINO_Quick_Start_Guide.pdf>`__
|
||||
|
||||
|
||||
.. container::
|
||||
:name: ov-homepage-banner
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="_static/css/homepage_style.css">
|
||||
<div class="line-block">
|
||||
<section class="splide" aria-label="Splide Banner Carousel">
|
||||
<div class="splide__track">
|
||||
<ul class="splide__list">
|
||||
<li id="ov-homepage-slide1" id class="splide__slide">
|
||||
<p class="ov-homepage-slide-title">An open-source toolkit for optimizing and deploying deep learning models.</p>
|
||||
<p class="ov-homepage-slide-subtitle">Boost your AI deep-learning inference performance!</p>
|
||||
<a class="ov-homepage-banner-btn" href="https://docs.openvino.ai/2024/get-started.html">Learn more</a>
|
||||
</li>
|
||||
<li id="ov-homepage-slide2" class="splide__slide">
|
||||
<p class="ov-homepage-slide-title">Better OpenVINO integration with PyTorch!</p>
|
||||
<p class="ov-homepage-slide-subtitle">Use PyTorch models directly, without converting them first.</p>
|
||||
<a class="ov-homepage-banner-btn" href="https://docs.openvino.ai/2024/openvino-workflow/model-preparation/convert-model-pytorch.html">Learn more</a>
|
||||
</li>
|
||||
<li id="ov-homepage-slide3" class="splide__slide">
|
||||
<p class="ov-homepage-slide-title">OpenVINO via PyTorch 2.0 torch.compile()</p>
|
||||
<p class="ov-homepage-slide-subtitle">Use OpenVINO directly in PyTorch-native applications!</p>
|
||||
<a class="ov-homepage-banner-btn" href="https://docs.openvino.ai/2024/openvino-workflow/torch-compile.html">Learn more</a>
|
||||
</li>
|
||||
<li id="ov-homepage-slide4" class="splide__slide">
|
||||
<p class="ov-homepage-slide-title">Do you like Generative AI?</p>
|
||||
<p class="ov-homepage-slide-subtitle">You will love how it performs with OpenVINO!</p>
|
||||
<a class="ov-homepage-banner-btn" href="https://docs.openvino.ai/2024/learn-openvino/interactive-tutorials-python.html">Check out our new notebooks</a>
|
||||
</li>
|
||||
<li id="ov-homepage-slide5" id class="splide__slide">
|
||||
<p class="ov-homepage-slide-title">Boost your AI deep learning interface perfmormance.</p>
|
||||
<p class="ov-homepage-slide-subtitle">Use Intel's open-source OpenVino toolkit for optimizing and deploying deep learning models.</p>
|
||||
<a class="ov-homepage-banner-btn" href="https://docs.openvino.ai/2024/openvino-workflow/model-preparation/convert-model-pytorch.html">Learn more</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
|
|
||||
|
|
||||
|
||||
.. image:: _static/images/openvino-overview-diagram.jpg
|
||||
:align: center
|
||||
:alt: openvino diagram
|
||||
|
||||
|
|
||||
|
||||
Places to Begin
|
||||
++++++++++++++++++++++++++++
|
||||
|
||||
.. grid:: 2 2 3 3
|
||||
:class-container: ov-homepage-higlight-grid
|
||||
|
||||
.. grid-item-card:: Installation
|
||||
:img-top: ./_static/images/home_begin_tile_01.png
|
||||
:class-card: homepage_begin_tile
|
||||
|
||||
This guide introduces installation and learning materials for Intel® Distribution of OpenVINO™ toolkit.
|
||||
|
||||
.. button-link:: get-started/install-openvino.html
|
||||
:color: primary
|
||||
:outline:
|
||||
|
||||
Get Started
|
||||
|
||||
.. grid-item-card:: Performance Benchmarks
|
||||
:img-top: ./_static/images/home_begin_tile_02.png
|
||||
:class-card: homepage_begin_tile
|
||||
|
||||
See latest benchmark numbers for OpenVINO and OpenVINO Model Server.
|
||||
|
||||
.. button-link:: about-openvino/performance-benchmarks.html
|
||||
:color: primary
|
||||
:outline:
|
||||
|
||||
View data
|
||||
|
||||
.. grid-item-card:: Framework Compatibility
|
||||
:img-top: ./_static/images/home_begin_tile_03.png
|
||||
:class-card: homepage_begin_tile
|
||||
|
||||
Load models directly (for TensorFlow, ONNX, PaddlePaddle) or convert to OpenVINO format.
|
||||
|
||||
.. button-link:: openvino-workflow/model-preparation.html
|
||||
:color: primary
|
||||
:outline:
|
||||
|
||||
Load your model
|
||||
|
||||
.. grid-item-card:: Easy Deployment
|
||||
:img-top: ./_static/images/home_begin_tile_04.png
|
||||
:class-card: homepage_begin_tile
|
||||
|
||||
Get started in just a few lines of code.
|
||||
|
||||
.. button-link:: openvino-workflow/running-inference.html
|
||||
:color: primary
|
||||
:outline:
|
||||
|
||||
Run Inference
|
||||
|
||||
.. grid-item-card:: Serving at scale
|
||||
:img-top: ./_static/images/home_begin_tile_05.png
|
||||
:class-card: homepage_begin_tile
|
||||
|
||||
Cloud-ready deployments for microservice applications.
|
||||
|
||||
.. button-link:: openvino-workflow/running-inference.html
|
||||
:color: primary
|
||||
:outline:
|
||||
|
||||
Try it out
|
||||
|
||||
.. grid-item-card:: Model Compression
|
||||
:img-top: ./_static/images/home_begin_tile_06.png
|
||||
:class-card: homepage_begin_tile
|
||||
|
||||
Reach for performance with post-training and training-time compression with NNCF.
|
||||
|
||||
.. button-link:: openvino-workflow/model-optimization.html
|
||||
:color: primary
|
||||
:outline:
|
||||
|
||||
Optimize now
|
||||
|
||||
|
|
||||
|
||||
Key Features
|
||||
++++++++++++++++++++++++++++
|
||||
|
||||
|
||||
.. grid:: 2 2 2 2
|
||||
:class-container: homepage_begin_container
|
||||
|
||||
.. grid-item-card:: Model Compression
|
||||
:img-top: ./_static/images/home_key_feature_01.png
|
||||
:class-card: homepage_begin_key
|
||||
|
||||
You can either link directly with OpenVINO Runtime to run inference locally or use OpenVINO Model Server to serve model inference from a separate server or within Kubernetes environment.
|
||||
|
||||
.. grid-item-card:: Fast & Scalable Deployment
|
||||
:img-top: ./_static/images/home_key_feature_02.png
|
||||
:class-card: homepage_begin_key
|
||||
|
||||
Write an application once, deploy it anywhere, achieving maximum performance from hardware. Automatic device discovery allows for superior deployment flexibility. OpenVINO Runtime supports Linux, Windows and MacOS and provides Python, C++ and C API. Use your preferred language and OS.
|
||||
|
||||
.. grid-item-card:: Lighter Deployment
|
||||
:img-top: ./_static/images/home_key_feature_03.png
|
||||
:class-card: homepage_begin_key
|
||||
|
||||
Designed with minimal external dependencies reduces the application footprint, simplifying installation and dependency management. Popular package managers enable application dependencies to be easily installed and upgraded. Custom compilation for your specific model(s) further reduces final binary size.
|
||||
|
||||
.. grid-item-card:: Enhanced App Start-Up Time
|
||||
:img-top: ./_static/images/home_key_feature_04.png
|
||||
:class-card: homepage_begin_key
|
||||
|
||||
In applications where fast start-up is required, OpenVINO significantly reduces first-inference latency by using the CPU for initial inference and then switching to another device once the model has been compiled and loaded to memory. Compiled models are cached, improving start-up time even more.
|
||||
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:hidden:
|
||||
|
||||
home
|
||||
Install <https://docs.openvino.ai/install>
|
||||
Blog <https://blog.openvino.ai/>
|
||||
Forum <https://community.intel.com/t5/Intel-Distribution-of-OpenVINO/bd-p/distribution-openvino-toolkit>
|
||||
Support <https://www.intel.com/content/www/us/en/support/products/96066/software/development-software/openvino-toolkit.html>
|
||||
GitHub <https://github.com/openvinotoolkit>
|
||||
GET STARTED <get-started>
|
||||
LEARN OPENVINO <learn-openvino>
|
||||
OPENVINO WORKFLOW <openvino-workflow>
|
||||
DOCUMENTATION <documentation>
|
||||
ABOUT OPENVINO <about-openvino>
|
||||
Loading…
Reference in New Issue