summaryrefslogtreecommitdiff
path: root/sphinx/themes/basic/static/searchtools.js
diff options
context:
space:
mode:
authorAdam Turner <9087854+aa-turner@users.noreply.github.com>2022-09-24 14:01:51 +0100
committerAdam Turner <9087854+AA-Turner@users.noreply.github.com>2022-09-24 15:10:57 +0100
commite2b3b3f060909f40b24ab0add54a83cea0b898d5 (patch)
tree8f39208ed97e53cfabe49cb667079e8e4ace3b0e /sphinx/themes/basic/static/searchtools.js
parentc7c0e4048d72d4125a63ba9b83effe59d253774c (diff)
downloadsphinx-git-e2b3b3f060909f40b24ab0add54a83cea0b898d5.tar.gz
Move to localStorage for search highlighting
Diffstat (limited to 'sphinx/themes/basic/static/searchtools.js')
-rw-r--r--sphinx/themes/basic/static/searchtools.js29
1 files changed, 12 insertions, 17 deletions
diff --git a/sphinx/themes/basic/static/searchtools.js b/sphinx/themes/basic/static/searchtools.js
index f16afbcbb..e89e34d4e 100644
--- a/sphinx/themes/basic/static/searchtools.js
+++ b/sphinx/themes/basic/static/searchtools.js
@@ -57,7 +57,7 @@ const _removeChildren = (element) => {
const _escapeRegExp = (string) =>
string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string
-const _displayItem = (item, highlightTerms, searchTerms) => {
+const _displayItem = (item, searchTerms) => {
const docBuilder = DOCUMENTATION_OPTIONS.BUILDER;
const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT;
const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX;
@@ -82,10 +82,8 @@ const _displayItem = (item, highlightTerms, searchTerms) => {
requestUrl = docUrlRoot + docName + docFileSuffix;
linkUrl = docName + docLinkSuffix;
}
- const params = new URLSearchParams();
- params.set("highlight", [...highlightTerms].join(" "));
let linkEl = listItem.appendChild(document.createElement("a"));
- linkEl.href = linkUrl + "?" + params.toString() + anchor;
+ linkEl.href = linkUrl + anchor;
linkEl.dataset.score = score;
linkEl.innerHTML = title;
if (descr)
@@ -97,7 +95,7 @@ const _displayItem = (item, highlightTerms, searchTerms) => {
.then((data) => {
if (data)
listItem.appendChild(
- Search.makeSearchSummary(data, searchTerms, highlightTerms)
+ Search.makeSearchSummary(data, searchTerms)
);
});
Search.output.appendChild(listItem);
@@ -117,15 +115,14 @@ const _finishSearch = (resultCount) => {
const _displayNextItem = (
results,
resultCount,
- highlightTerms,
searchTerms
) => {
// results left, load the summary and display it
// this is intended to be dynamic (don't sub resultsCount)
if (results.length) {
- _displayItem(results.pop(), highlightTerms, searchTerms);
+ _displayItem(results.pop(), searchTerms);
setTimeout(
- () => _displayNextItem(results, resultCount, highlightTerms, searchTerms),
+ () => _displayNextItem(results, resultCount, searchTerms),
5
);
}
@@ -271,6 +268,10 @@ const Search = {
}
});
+ if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js
+ localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" "))
+ }
+
// console.debug("SEARCH: searching for:");
// console.info("required: ", [...searchTerms]);
// console.info("excluded: ", [...excludedTerms]);
@@ -359,7 +360,7 @@ const Search = {
// console.info("search results:", Search.lastresults);
// print the results
- _displayNextItem(results, results.length, highlightTerms, searchTerms);
+ _displayNextItem(results, results.length, searchTerms);
},
/**
@@ -538,11 +539,9 @@ const Search = {
/**
* helper function to return a node containing the
* search summary for a given text. keywords is a list
- * of stemmed words, highlightWords is the list of normal, unstemmed
- * words. the first one is used to find the occurrence, the
- * latter for highlighting it.
+ * of stemmed words.
*/
- makeSearchSummary: (htmlText, keywords, highlightWords) => {
+ makeSearchSummary: (htmlText, keywords) => {
const text = Search.htmlToText(htmlText);
if (text === "") return null;
@@ -560,10 +559,6 @@ const Search = {
summary.classList.add("context");
summary.textContent = top + text.substr(startWithContext, 240).trim() + tail;
- highlightWords.forEach((highlightWord) =>
- _highlightText(summary, highlightWord, "highlighted")
- );
-
return summary;
},
};