Fix search in dirhtml output

This commit is contained in:
Vince Salvino
2020-02-21 17:21:03 -05:00
parent 130a0a7f38
commit 2cec6b084b
2 changed files with 12 additions and 7 deletions

View File

@@ -18,6 +18,7 @@ Bugs fixed
* #7184: autodoc: ``*args`` and ``**kwarg`` in type comments are not handled * #7184: autodoc: ``*args`` and ``**kwarg`` in type comments are not handled
properly properly
* (#6244, #6387): Search breaks/hangs when built with ``dirhtml``.
Testing Testing
-------- --------

View File

@@ -63,6 +63,9 @@ var Search = {
htmlElement.innerHTML = htmlString; htmlElement.innerHTML = htmlString;
$(htmlElement).find('.headerlink').remove(); $(htmlElement).find('.headerlink').remove();
docContent = $(htmlElement).find('[role=main]')[0]; docContent = $(htmlElement).find('[role=main]')[0];
if(docContent === undefined) {
return "";
}
return docContent.textContent || docContent.innerText; return docContent.textContent || docContent.innerText;
}, },
@@ -245,6 +248,7 @@ var Search = {
if (results.length) { if (results.length) {
var item = results.pop(); var item = results.pop();
var listItem = $('<li style="display:none"></li>'); var listItem = $('<li style="display:none"></li>');
var requestUrl = "";
if (DOCUMENTATION_OPTIONS.BUILDER === 'dirhtml') { if (DOCUMENTATION_OPTIONS.BUILDER === 'dirhtml') {
// dirhtml builder // dirhtml builder
var dirname = item[0] + '/'; var dirname = item[0] + '/';
@@ -253,15 +257,15 @@ var Search = {
} else if (dirname == 'index/') { } else if (dirname == 'index/') {
dirname = ''; dirname = '';
} }
listItem.append($('<a/>').attr('href', requestUrl = DOCUMENTATION_OPTIONS.URL_ROOT + dirname;
DOCUMENTATION_OPTIONS.URL_ROOT + dirname +
highlightstring + item[2]).html(item[1]));
} else { } else {
// normal html builders // normal html builders
listItem.append($('<a/>').attr('href', requestUrl = DOCUMENTATION_OPTIONS.URL_ROOT + item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX;
item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX +
highlightstring + item[2]).html(item[1]));
} }
listItem.append($('<a/>').attr('href',
requestUrl +
highlightstring + item[2]).html(item[1]));
if (item[3]) { if (item[3]) {
listItem.append($('<span> (' + item[3] + ')</span>')); listItem.append($('<span> (' + item[3] + ')</span>'));
Search.output.append(listItem); Search.output.append(listItem);
@@ -269,7 +273,7 @@ var Search = {
displayNextItem(); displayNextItem();
}); });
} else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) { } else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) {
$.ajax({url: DOCUMENTATION_OPTIONS.URL_ROOT + item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX, $.ajax({url: requestUrl,
dataType: "text", dataType: "text",
complete: function(jqxhr, textstatus) { complete: function(jqxhr, textstatus) {
var data = jqxhr.responseText; var data = jqxhr.responseText;