From c9285db6484fb690fa11f2ea43e3ff90a11531aa Mon Sep 17 00:00:00 2001 From: Dhi Aurrahman Date: Tue, 8 Sep 2020 21:08:48 +0700 Subject: [PATCH] docs: Import searchtools.js This imports searchtools.js from https://raw.githubusercontent.com/sphinx-doc/sphinx/3.x/sphinx/themes/basic/static/searchtools.js. Signed-off-by: Dhi Aurrahman --- docs/root/_static/searchtools.js | 565 +++++++++++++++++++++++++++++++ 1 file changed, 565 insertions(+) create mode 100644 docs/root/_static/searchtools.js diff --git a/docs/root/_static/searchtools.js b/docs/root/_static/searchtools.js new file mode 100644 index 0000000000000..bd46e53c35018 --- /dev/null +++ b/docs/root/_static/searchtools.js @@ -0,0 +1,565 @@ +/* + * searchtools.js + * ~~~~~~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for the full-text search. + * + * :copyright: Copyright 2007-2020 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +if (!Scorer) { + /** + * Simple result scoring code. + */ + var Scorer = { + // Implement the following function to further tweak the score for each result + // The function takes a result array [filename, title, anchor, descr, score] + // and returns the new score. + /* + score: function(result) { + return result[4]; + }, + */ + + // query matches the full name of an object + objNameMatch: 11, + // or matches in the last dotted part of the object name + objPartialMatch: 6, + // Additive scores depending on the priority of the object + objPrio: { + 0: 15, // used to be importantResults + 1: 5, // used to be objectResults + 2: -5, + }, // used to be unimportantResults + // Used when the priority is not in the mapping. + objPrioDefault: 0, + + // query found in title + title: 15, + partialTitle: 7, + // query found in terms + term: 5, + partialTerm: 2, + }; +} + +if (!splitQuery) { + function splitQuery(query) { + return query.split(/\s+/); + } +} + +/** + * Search Module + */ +var Search = { + _index: null, + _queued_query: null, + _pulse_status: -1, + + htmlToText: function (htmlString) { + var htmlElement = document.createElement("span"); + htmlElement.innerHTML = htmlString; + $(htmlElement).find(".headerlink").remove(); + docContent = $(htmlElement).find("[role=main]")[0]; + if (docContent === undefined) { + console.warn( + "Content block not found. Sphinx search tries to obtain it " + + "via '[role=main]'. Could you check your theme or template." + ); + return ""; + } + return docContent.textContent || docContent.innerText; + }, + + init: function () { + var params = $.getQueryParameters(); + if (params.q) { + var query = params.q[0]; + $('input[name="q"]')[0].value = query; + this.performSearch(query); + } + }, + + loadIndex: function (url) { + $.ajax({ + type: "GET", + url: url, + data: null, + dataType: "script", + cache: true, + complete: function (jqxhr, textstatus) { + if (textstatus != "success") { + document.getElementById("searchindexloader").src = url; + } + }, + }); + }, + + setIndex: function (index) { + var q; + this._index = index; + if ((q = this._queued_query) !== null) { + this._queued_query = null; + Search.query(q); + } + }, + + hasIndex: function () { + return this._index !== null; + }, + + deferQuery: function (query) { + this._queued_query = query; + }, + + stopPulse: function () { + this._pulse_status = 0; + }, + + startPulse: function () { + if (this._pulse_status >= 0) return; + function pulse() { + var i; + Search._pulse_status = (Search._pulse_status + 1) % 4; + var dotString = ""; + for (i = 0; i < Search._pulse_status; i++) dotString += "."; + Search.dots.text(dotString); + if (Search._pulse_status > -1) window.setTimeout(pulse, 500); + } + pulse(); + }, + + /** + * perform a search for something (or wait until index is loaded) + */ + performSearch: function (query) { + // create the required interface elements + this.out = $("#search-results"); + this.title = $("

" + _("Searching") + "

").appendTo(this.out); + this.dots = $("").appendTo(this.title); + this.status = $('

 

').appendTo(this.out); + this.output = $('