Selaa lähdekoodia

Implemented Algolia search (#4884)

Co-authored-by: Hugo Locurcio <[email protected]>
Leroy Bakker 4 vuotta sitten
vanhempi
commit
6ae96e7b50
5 muutettua tiedostoa jossa 37 lisäystä ja 6 poistoa
  1. 6 0
      _static/css/algolia.css
  2. 22 0
      _static/js/algolia.js
  3. 5 0
      _templates/layout.html
  4. 4 3
      conf.py
  5. 0 3
      requirements.txt

+ 6 - 0
_static/css/algolia.css

@@ -0,0 +1,6 @@
+.wy-nav-side { overflow: visible; }
+.wy-side-scroll { overflow: inherit; }
+
+.algolia-autocomplete {
+    display: block !important;
+}

+ 22 - 0
_static/js/algolia.js

@@ -0,0 +1,22 @@
+
+(function() {
+
+    var doc_version = document.querySelector('meta[name="doc_version"]').getAttribute('content');
+
+    // Initialize the Algolia search widget
+    docsearch({
+        apiKey: 'c39cb614363a2a156811478bc2d0573b',
+        indexName: 'godotengine',
+        inputSelector: '#rtd-search-form input[type=text]',
+        algoliaOptions: {
+            facetFilters: ["version:" + (doc_version || 'stable')]
+        },
+    });
+
+    window.addEventListener('keydown', function(event) {
+        if (event.key === '/') {
+            document.querySelector('#rtd-search-form input[type=text]').focus();
+            event.preventDefault();
+        }
+    })
+})();

+ 5 - 0
_templates/layout.html

@@ -1,4 +1,9 @@
 {% extends "!layout.html" -%}
+
+{% block extrahead -%}
+<meta name="doc_version" content="{{ version }}">
+{% endblock -%}
+
 {% block linktags -%}
   <meta name="theme-color" content="#3d8fcc">
   {% if godot_inject_language_links -%}

+ 4 - 3
conf.py

@@ -61,9 +61,6 @@ ogp_site_name = "Godot Engine documentation"
 if not os.getenv("SPHINX_NO_GDSCRIPT"):
     extensions.append("gdscript")
 
-if not os.getenv("SPHINX_NO_SEARCH"):
-    extensions.append("sphinx_search.extension")
-
 if not os.getenv("SPHINX_NO_DESCRIPTIONS"):
     extensions.append("godot_descriptions")
 
@@ -189,11 +186,15 @@ html_extra_path = ["robots.txt"]
 # These paths are either relative to html_static_path
 # or fully qualified paths (e.g. https://...)
 html_css_files = [
+    'css/algolia.css',
+    'https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css',
     "css/custom.css",
 ]
 
 html_js_files = [
     "js/custom.js",
+    ('https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js', {'defer': 'defer'}),
+    ('js/algolia.js', {'defer': 'defer'})
 ]
 
 # Output file base name for HTML help builder

+ 0 - 3
requirements.txt

@@ -15,6 +15,3 @@ sphinx-notfound-page==0.7.1
 
 # Adds Open Graph tags in the HTML `<head>` tag
 sphinxext-opengraph==0.4.2
-
-# Full-page search UI for RTD: https://readthedocs-sphinx-search.readthedocs.io
-readthedocs-sphinx-search==0.1.0