Fix search, upgrade Algolia docsearch v3 (#30241)

This commit is contained in:
Franck Nijhof 2023-12-11 08:22:05 +01:00 committed by GitHub
parent de2811ee18
commit b4bf288119
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 40 additions and 73 deletions

View File

@ -84,7 +84,7 @@ collections:
#Search #Search
algolia: algolia:
api_key: "ae96d94b201c5444c8a443093edf3efb" api_key: "ba6f7e6d97b3d3d2f778978c742a47c6"
# Twitter # Twitter
twitter_user: balloob twitter_user: balloob

View File

@ -12,33 +12,27 @@ $primary-color: #1abcf2;
} }
} }
.search-container { .docsearch {
position: absolute; .DocSearch-Button {
top: 0; padding: 0px;
left: 0; margin-top: 16px;
right: 0; margin-left: 0px;
bottom: 0; margin-right: 0px;
background-color: white; background: none;
padding-top: 19px; &:hover {
padding-right: 15%; box-shadow: none;
.search {
max-width: 500px;
width: 100%;
border-bottom: 2px solid $primary-color;
float: right;
.algolia-autocomplete {
width: calc(100% - 64px);
margin: 0 10px;
}
input {
border: 0;
width: 100%;
outline: none;
} }
} }
.DocSearch-Button-Placeholder {
display: none;
}
.DocSearch-Button-Keys {
display: none;
}
.DocSearch-Search-Icon {
margin-right: 8px;
color: $primary-color;
}
} }
.integration-alert-container { .integration-alert-container {
@ -75,12 +69,6 @@ a.integration-alert {
} }
@media only screen and (max-width: $menu-collapse) { @media only screen and (max-width: $menu-collapse) {
.search-container {
z-index: 20;
padding-right: 5px;
padding-left: 5px;
}
.feedback { .feedback {
margin-bottom: 32px; margin-bottom: 32px;
} }
@ -895,6 +883,12 @@ code {
.search404-container { .search404-container {
margin-bottom: 32px; margin-bottom: 32px;
display: grid;
#search404 {
display: flex;
justify-self: center;
}
} }
} }
} }
@ -908,9 +902,11 @@ code {
.search404-container { .search404-container {
margin-bottom: 32px; margin-bottom: 32px;
display: grid;
#search404 { #search404 {
width: 420px; display: flex;
justify-self: center;
} }
} }
} }

View File

@ -8,24 +8,15 @@ body_id: not_found
<h2>Oh no! This page does not exist 😞</h2> <h2>Oh no! This page does not exist 😞</h2>
<div class='search404-container'> <div class='search404-container'>
<div class='search404'> <div id="search404"></div>
<i class="icon-search"></i>
<input id='search404' placeholder='Search the documentation …'>
<a href='#' class='search404-close'><i class="icon-remove-sign"></i></a>
</div>
</div> </div>
<script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@docsearch/js@3/dist/umd/index.min.js"></script>
<script type="text/javascript"> <script type="text/javascript">
docsearch({ docsearch({
apiKey: '{{ site.algolia.api_key }}', container: '#search404',
appId: 'FBHBYS3J0U',
indexName: 'home-assistant', indexName: 'home-assistant',
inputSelector: '#search404', apiKey: "{{ site.algolia.api_key }}",
debug: false // Set debug to true if you want to inspect the dropdown
});
document.querySelector('.search404-close').addEventListener('click', function(ev) {
ev.preventDefault();
document.querySelector('#search404').value = "";
}); });
</script> </script>

View File

@ -1,29 +1,16 @@
<script type="module" src="https://cdn.jsdelivr.net/npm/@justinribeiro/lite-youtube@1.3.1/lite-youtube.js"></script> <script type="module" src="https://cdn.jsdelivr.net/npm/@justinribeiro/lite-youtube@1.3.1/lite-youtube.js"></script>
<script src="{{ '/javascripts/prism.js' | cache_buster }}" type="text/javascript" defer></script> <script src="{{ '/javascripts/prism.js' | cache_buster }}" type="text/javascript" defer></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@docsearch/js@3/dist/umd/index.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.css" />
<script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script>
<script type="text/javascript"> <script type="text/javascript">
docsearch({ docsearch({
apiKey: "{{ site.algolia.api_key }}", container: '#docsearch',
appId: 'FBHBYS3J0U',
indexName: 'home-assistant', indexName: 'home-assistant',
inputSelector: '#search', apiKey: "{{ site.algolia.api_key }}",
debug: false // Set debug to true if you want to inspect the dropdown
}); });
document.querySelector('.site-title').addEventListener('contextmenu', function(ev) { document.querySelector('.site-title').addEventListener('contextmenu', function(ev) {
ev.preventDefault(); ev.preventDefault();
document.location.assign("https://design.home-assistant.io/#brand/logo") document.location.assign("https://design.home-assistant.io/#brand/logo")
}); });
document.querySelector('.search .close').addEventListener('click', function(ev) {
ev.preventDefault();
document.querySelector('.search-container').style.display = 'none';
});
document.querySelector('.show-search').addEventListener('click', function(ev) {
ev.preventDefault();
document.querySelector('.search-container').style.display = 'block';
document.getElementById('toggle').checked = false;
document.querySelector('.search-container input').focus();
});
</script> </script>

View File

@ -29,6 +29,7 @@
<meta name="twitter:image" content="{{ page.og_image | default: "/images/default-social.png" | prepend: site.url }}"> <meta name="twitter:image" content="{{ page.og_image | default: "/images/default-social.png" | prepend: site.url }}">
{% if site.social.mastodon.account %}<link rel="me" href="{{ site.social.mastodon.account }}">{% endif %} {% if site.social.mastodon.account %}<link rel="me" href="{{ site.social.mastodon.account }}">{% endif %}
<link href="https://cdn.jsdelivr.net/npm/@docsearch/css@3/dist/style.min.css" rel="stylesheet" />
<link href="{{ '/stylesheets/prism.css' | cache_buster }}" rel="stylesheet"> <link href="{{ '/stylesheets/prism.css' | cache_buster }}" rel="stylesheet">
<link href="{{ '/stylesheets/screen.css' | cache_buster }}" media="screen, projection, print" rel="stylesheet"> <link href="{{ '/stylesheets/screen.css' | cache_buster }}" media="screen, projection, print" rel="stylesheet">
<link href="{{ site.subscribe_rss }}" rel="alternate" title="{{ site.title }}" type="application/atom+xml"> <link href="{{ site.subscribe_rss }}" rel="alternate" title="{{ site.title }}" type="application/atom+xml">

View File

@ -49,18 +49,10 @@
<li><a href="/blog/">Blog</a></li> <li><a href="/blog/">Blog</a></li>
<li><a href="/help/">Need help?</a></li> <li><a href="/help/">Need help?</a></li>
<li> <li>
<a href="#" class="show-search" aria-label="Show search" ><i class="icon-search"></i></a> <div class="docsearch" id="docsearch"></div>
</li> </li>
</ul> </ul>
</nav> </nav>
<div class="search-container" style="display: none">
<div class="search">
<i class="icon-search"></i>
<input id="search" placeholder="Search the documentation…" />
<a href="#" class="close"><i class="icon-remove-sign"></i></a>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>