[DOCS] Integrate coveo search engine (#19703)
This commit is contained in:
parent
7b59190521
commit
8f73cb19b1
45
docs/_static/css/coveo_custom.css
vendored
Normal file
45
docs/_static/css/coveo_custom.css
vendored
Normal file
@ -0,0 +1,45 @@
|
||||
:root {
|
||||
--atomic-primary: rgb(var(--ost-color-navbar-background));
|
||||
--atomic-primary-light: rgb(var(--ost-color-sst-dropdown-background-active));
|
||||
--atomic-border-radius-md: 0.1rem;
|
||||
--atomic-border-radius-lg: 0.2rem;
|
||||
--atomic-border-radius-xl: 0.3rem;
|
||||
}
|
||||
|
||||
::part(result-list-grid-clickable-container) {
|
||||
border: 1px solid lightgray;
|
||||
border-radius: var(--atomic-border-radius-md);
|
||||
}
|
||||
|
||||
.view-selector-container {
|
||||
grid-area: atomic-section-facets;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
column-gap: 0.5rem;
|
||||
}
|
||||
|
||||
.view-selector-container .view-selector,
|
||||
.view-selector-container .view-selector:hover,
|
||||
.view-selector-container .view-selector:active,
|
||||
.view-selector-container .view-selector:focus {
|
||||
border: none;
|
||||
background-color: none;
|
||||
background: none;
|
||||
outline: none;
|
||||
padding: 4px 12px;
|
||||
font-size: 14px;
|
||||
display: flex;
|
||||
grid-gap: 8px;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.view-selector-container .view-selector i {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.view-selector-container .view-selector.selected {
|
||||
border-bottom: 2px solid rgb(var(--ost-color-navbar-background));
|
||||
font-weight: 700;
|
||||
color: rgb(var(--ost-color-navbar-background));
|
||||
}
|
55
docs/_static/js/custom.js
vendored
55
docs/_static/js/custom.js
vendored
@ -281,3 +281,58 @@ function initSplide() {
|
||||
});
|
||||
splide.mount();
|
||||
}
|
||||
|
||||
// ---------- COVEO SEARCH -----------
|
||||
function selectResultViewType(type, gridButton, listButton) {
|
||||
type === "grid" ? gridButton.click() : listButton.click();
|
||||
}
|
||||
|
||||
function addViewTypeListeners() {
|
||||
const resultViewTypeFromLs = window.localStorage.getItem('atomicResultViewType');
|
||||
let list = document.getElementById("atomic-result-list");
|
||||
var viewSelectorGrid = document.getElementById("view-selector-grid");
|
||||
viewSelectorGrid.addEventListener('click', function () {
|
||||
list.display = "grid";
|
||||
window.localStorage.setItem('atomicResultViewType', "grid");
|
||||
viewSelectorGrid.classList.add('selected');
|
||||
viewSelectorList.classList.remove('selected');
|
||||
selectResultViewType("grid", viewSelectorGrid, viewSelectorList);
|
||||
});
|
||||
var viewSelectorList = document.getElementById("view-selector-list");
|
||||
viewSelectorList.addEventListener('click', function () {
|
||||
list.display = "list";
|
||||
window.localStorage.setItem('atomicResultViewType', "list");
|
||||
viewSelectorList.classList.add('selected');
|
||||
viewSelectorGrid.classList.remove('selected');
|
||||
selectResultViewType("list", viewSelectorGrid, viewSelectorList);
|
||||
});
|
||||
selectResultViewType(resultViewTypeFromLs || "grid", viewSelectorGrid, viewSelectorList);
|
||||
}
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
(async () => {
|
||||
await customElements.whenDefined("atomic-search-interface");
|
||||
const searchInterfaceSa = document.querySelector("#sa-search");
|
||||
const searchInterface = document.querySelector("#search");
|
||||
if (searchInterfaceSa) {
|
||||
let ver = getCurrentVersion();
|
||||
if (ver) {
|
||||
searchInterfaceSa.innerHTML = searchInterfaceSa.innerHTML.replace('search.html', 'search.html#f-ovversion=' + ver);
|
||||
}
|
||||
await searchInterfaceSa.initialize({
|
||||
accessToken: "xx1f2aebd3-4307-4632-aeea-17c13378b237",
|
||||
organizationId: "intelcorporationnonproduction2ybdyblf7",
|
||||
});
|
||||
searchInterfaceSa.executeFirstSearch();
|
||||
}
|
||||
if (searchInterface) {
|
||||
await searchInterface.initialize({
|
||||
accessToken: "xx1f2aebd3-4307-4632-aeea-17c13378b237",
|
||||
organizationId: "intelcorporationnonproduction2ybdyblf7",
|
||||
});
|
||||
searchInterface.executeFirstSearch();
|
||||
}
|
||||
addViewTypeListeners();
|
||||
})();
|
||||
})
|
||||
// -----------------------------------
|
||||
|
5
docs/_templates/layout.html
vendored
5
docs/_templates/layout.html
vendored
@ -5,8 +5,12 @@
|
||||
<link href="https://cdn.jsdelivr.net/npm/@splidejs/splide@4.1.4/dist/css/splide.min.css" rel="stylesheet">
|
||||
<script src="https://cdn.jsdelivr.net/npm/@splidejs/splide@4.1.4/dist/js/splide.min.js"></script>
|
||||
|
||||
<script type="module" src="https://static.cloud.coveo.com/atomic/v2/atomic.esm.js"></script>
|
||||
<link rel="stylesheet" href="https://static.cloud.coveo.com/atomic/v2/themes/coveo.css">
|
||||
|
||||
<link rel="stylesheet" href="{{ pathto('_static/css/viewer.min.css', 1) }}" type="text/css" />
|
||||
<link rel="stylesheet" href="{{ pathto('_static/css/custom.css', 1) }}" type="text/css" />
|
||||
<link rel="stylesheet" href="{{ pathto('_static/css/coveo_custom.css', 1) }}" type="text/css" />
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/chart.js@2.9.3/dist/Chart.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels"></script>
|
||||
@ -28,4 +32,3 @@
|
||||
</div>
|
||||
<script src="{{ pathto('_static/js/hide_banner.js', 1) }}"></script>
|
||||
{% endblock %}
|
||||
|
||||
|
10
docs/_templates/search-field.html
vendored
10
docs/_templates/search-field.html
vendored
@ -1,4 +1,6 @@
|
||||
<form class="searchForm bd-search d-flex align-items-center" action="{{ pathto('search') }}" method="get">
|
||||
<i class="icon fas fa-search"></i>
|
||||
<input type="search" class="form-control" name="query" id="search-input" placeholder="{{ _(theme_search_bar_text) }}" aria-label="{{ theme_search_bar_text }}" autocomplete="off" >
|
||||
</form>
|
||||
<div>
|
||||
<atomic-search-interface id="sa-search">
|
||||
<atomic-search-box redirection-url="search.html">
|
||||
</atomic-search-box>
|
||||
</atomic-search-interface>
|
||||
</div>
|
166
docs/_templates/search.html
vendored
166
docs/_templates/search.html
vendored
@ -1,31 +1,143 @@
|
||||
{%- extends "layout.html" %}
|
||||
{% set title = _('Search') %}
|
||||
{%- block scripts %}
|
||||
|
||||
{%- block content %}
|
||||
{# Added to support a banner with an alert #}
|
||||
<div class="container-fluid" id="banner"></div>
|
||||
|
||||
{% block docs_navbar %}
|
||||
{{ super() }}
|
||||
<link rel="stylesheet" href="{{ pathto('_static/css/gsearch.css', 1) }}" type="text/css" />
|
||||
<script src="https://apis.google.com/js/api.js"></script>
|
||||
<script src="{{ pathto('_static/js/gsearch.js', 1) }}"></script>
|
||||
<div id="info-banner" class="transition-banner">
|
||||
<p>OpenVINO 2022.1 has introduced OpenVINO API 2.0. For more information on transition steps from the previous API, see the <a href="https://docs.openvino.ai/latest/openvino_2_0_transition_guide.html">transition guide</a></p>
|
||||
<button type="button" class="close-banner" onclick="closeTransitionBanner()">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<script src="{{ pathto('_static/js/hide_banner.js', 1) }}"></script>
|
||||
{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
<atomic-search-interface id="search"
|
||||
fields-to-include='["ovversion", "ovdoctype", "filetype", "date", "source", "author", "sourcetype", "language", "description"]'>
|
||||
<atomic-search-layout>
|
||||
|
||||
<atomic-layout-section section="search">
|
||||
<atomic-search-box>
|
||||
<atomic-search-box-query-suggestions></atomic-search-box-query-suggestions>
|
||||
</atomic-search-box>
|
||||
</atomic-layout-section>
|
||||
|
||||
<!-- ADDITIONAL FILTERS SECTION-->
|
||||
<atomic-layout-section section="facets">
|
||||
<div class="view-selector-container">
|
||||
<button id="view-selector-grid" class="view-selector">
|
||||
<i class="fas fa-th"></i> Grid
|
||||
</button>
|
||||
<button id="view-selector-list" class="view-selector">
|
||||
<i class="fas fa-list"></i> List
|
||||
</button>
|
||||
</div>
|
||||
<atomic-facet-manager>
|
||||
<atomic-facet field="ovversion" label="Version" sort-criteria="alphanumericDescending"></atomic-facet>
|
||||
<!-- <atomic-facet field="ovdoctype" label="Document type"></atomic-facet> -->
|
||||
<!-- <atomic-facet field="language" label="Language"></atomic-facet> -->
|
||||
</atomic-facet-manager>
|
||||
</atomic-layout-section>
|
||||
|
||||
<atomic-layout-section section="main">
|
||||
|
||||
<atomic-layout-section section="status">
|
||||
<!-- RESULTS SUMMARY SECTION -->
|
||||
<atomic-breadbox></atomic-breadbox>
|
||||
<atomic-query-summary></atomic-query-summary>
|
||||
<atomic-refine-toggle></atomic-refine-toggle>
|
||||
|
||||
<!-- SORT SECTION -->
|
||||
<atomic-sort-dropdown>
|
||||
<atomic-sort-expression label="relevance" expression="relevancy"></atomic-sort-expression>
|
||||
<atomic-sort-expression label="most-recent" expression="date descending"></atomic-sort-expression>
|
||||
</atomic-sort-dropdown>
|
||||
|
||||
<atomic-did-you-mean></atomic-did-you-mean>
|
||||
<atomic-notifications></atomic-notifications>
|
||||
|
||||
</atomic-layout-section>
|
||||
|
||||
<atomic-layout-section section="results">
|
||||
|
||||
<atomic-result-list id="atomic-result-list" display="grid">
|
||||
|
||||
<atomic-result-template>
|
||||
<template>
|
||||
<!-- RESULT TOP BADGES SECTION -->
|
||||
<atomic-result-section-badges>
|
||||
<atomic-result-badge>
|
||||
<atomic-result-multi-value-text field="ovversion"></atomic-result-multi-value-text>
|
||||
</atomic-result-badge>
|
||||
|
||||
<atomic-result-badge
|
||||
icon="https://raw.githubusercontent.com/Rush/Font-Awesome-SVG-PNG/master/black/svg/language.svg">
|
||||
<atomic-result-multi-value-text field="language"></atomic-result-multi-value-text>
|
||||
</atomic-result-badge>
|
||||
|
||||
<atomic-field-condition must-match-is-recommendation="true">
|
||||
<atomic-result-badge label="Recommended"></atomic-result-badge>
|
||||
</atomic-field-condition>
|
||||
|
||||
<atomic-field-condition must-match-is-top-result="true">
|
||||
<atomic-result-badge label="Top Result"></atomic-result-badge>
|
||||
</atomic-field-condition>
|
||||
</atomic-result-section-badges>
|
||||
|
||||
<!-- RESULT ICON SECTION -->
|
||||
<atomic-result-section-visual>
|
||||
<atomic-icon class="icon" icon="assets://gform.svg"></atomic-result-icon>
|
||||
<!-- EXAMPLE OF CHANGING ICON -->
|
||||
<!-- <atomic-field-condition must-match-ovversion="2021.4">
|
||||
<atomic-icon class="icon" icon="assets://gsheet.svg"></atomic-icon>
|
||||
</atomic-field-condition>
|
||||
<atomic-field-condition must-match-ovversion="2022.2">
|
||||
<atomic-icon class="icon" icon="assets://html.svg"></atomic-icon>
|
||||
</atomic-field-condition>
|
||||
<atomic-field-condition must-not-match-ovversion="2022.2, 2021.4">
|
||||
<atomic-icon class="icon" icon="assets://gform.svg"></atomic-icon>
|
||||
</atomic-field-condition> -->
|
||||
</atomic-result-section-visual>
|
||||
|
||||
<atomic-result-section-title>
|
||||
<atomic-result-link target="_blank"></atomic-result-link>
|
||||
</atomic-result-section-title>
|
||||
|
||||
<atomic-result-section-excerpt>
|
||||
<atomic-result-text field="excerpt"></atomic-result-text>
|
||||
</atomic-result-section-excerpt>
|
||||
|
||||
<atomic-result-section-bottom-metadata>
|
||||
<atomic-field-condition class="field" if-defined="description">
|
||||
<atomic-result-text field="description"></atomic-result-text>
|
||||
</atomic-field-condition>
|
||||
</atomic-result-section-bottom-metadata>
|
||||
</template>
|
||||
</atomic-result-template>
|
||||
|
||||
</atomic-result-list>
|
||||
|
||||
<atomic-query-error></atomic-query-error>
|
||||
<atomic-no-results></atomic-no-results>
|
||||
|
||||
</atomic-layout-section>
|
||||
|
||||
<atomic-layout-section section="pagination">
|
||||
<atomic-load-more-results></atomic-load-more-results>
|
||||
</atomic-layout-section>
|
||||
|
||||
</atomic-layout-section>
|
||||
</atomic-search-layout>
|
||||
</atomic-search-interface>
|
||||
{% endblock %}
|
||||
|
||||
{%- block scripts_end %}
|
||||
{{ _webpack.body_post() }}
|
||||
{%- endblock %}
|
||||
|
||||
{%- endblock %}
|
||||
{% block body %}
|
||||
<h1 id="search-documentation">{{ _('Search') }}</h1>
|
||||
<p id="searchinfo">
|
||||
Search Results...
|
||||
</p>
|
||||
<div id="gs-tabs-area"></div>
|
||||
{% block scriptwarning %}
|
||||
<div id="fallback" class="admonition warning">
|
||||
<script>$('#fallback').hide();</script>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% block searchbox %}
|
||||
<form class="searchForm" action="" method="get">
|
||||
<input id="searchfield" type="text" name="query" aria-labelledby="search-documentation" value="" />
|
||||
<input type="submit" value="{{ _('search') }}" />
|
||||
<span id="search-progress" style="padding-left: 10px"></span>
|
||||
</form>
|
||||
{% endblock %}
|
||||
{% block searchresults %}
|
||||
<div id="gs-tabs-area"></div>
|
||||
<div id="searchresults"></div>
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
|
@ -3,3 +3,5 @@ Name: openvino-custom-sphinx-sitemap
|
||||
Version: 0.0.1
|
||||
Summary: Extends sphinx-sitemap plugin with additional sitemap metadata
|
||||
Requires-Python: >=3.9
|
||||
Requires-Dist: sphinx>=4.5.0
|
||||
Requires-Dist: sphinx-sitemap>=2.2.0
|
||||
|
@ -1,16 +1,6 @@
|
||||
<form style="padding: 0 0.5rem;" class="d-flex align-items-center" action="{{ pathto('search') }}" method="get">
|
||||
<div style="width:100%;" class="textfield textfield-q textfield-size-m left-slot">
|
||||
<div class="slot left-slot-container">
|
||||
<span class="icon fas fa-search"></span>
|
||||
</div>
|
||||
<input
|
||||
class="input input-quiet input-size-m"
|
||||
type="search"
|
||||
name="q"
|
||||
id="search-input"
|
||||
placeholder="{{ _(theme_search_bar_text) }}"
|
||||
aria-label="{{ theme_search_bar_text }}"
|
||||
autocomplete="off"
|
||||
>
|
||||
</div>
|
||||
</form>
|
||||
<div>
|
||||
<atomic-search-interface id="sa-search">
|
||||
<atomic-search-box redirection-url="search.html">
|
||||
</atomic-search-box>
|
||||
</atomic-search-interface>
|
||||
</div>
|
Loading…
Reference in New Issue
Block a user