Skip to content

Commit

Permalink
Update DocSearch.js to latest version
Browse files Browse the repository at this point in the history
The latest (2.6.2) docsearch.js version now displays results as standard `<a href>` links, allowing users to `ctrl`-click on them to trigger default browser behavior of opening in a new tab.

To maintain backward compatibility, this behavior has only been enabled to users that didn't define their own `handleSelected` method.

This PR updates your `docsearch()` code to take advantage of the new `<a href>` template, by removing your custom `handleSelected` and moving its behavior to the `transformData` call. Namely, what you wanted to avoid was jumping to the first `<h1>` of the pages, which would prevent users from seeing the header. This PR checks if the suggestion targets the `#content` anchor (meaning it goes to this first `<h1>`) and remove it.

Behavior should be the same, but at least now you can enjoy the `ctrl`-click :)
  • Loading branch information
pixelastic authored and XhmikosR committed Nov 22, 2018
1 parent 8a7ed60 commit 3e25bf4
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions site/docs/4.1/assets/js/src/search.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,6 @@
algoliaOptions: {
facetFilters: ['version:' + siteDocsVersion]
},
handleSelected: function (input, event, suggestion) {
var url = suggestion.url
url = suggestion.isLvl1 ? url.split('#')[0] : url
// If it's a title we remove the anchor so it does not jump.
window.location.href = url
},
transformData: function (hits) {
return hits.map(function (hit) {
var siteurl = getOrigin()
Expand All @@ -47,6 +41,12 @@
// otherwise remove our url from it.
hit.url = siteurl.match(urlRE) ? hit.url : hit.url.replace(urlRE, '')

// Prevent jumping to first header
if (hit.anchor === 'content') {
hit.url = hit.url.replace(/#content$/, '')
hit.anchor = null
}

return hit
})
},
Expand Down

0 comments on commit 3e25bf4

Please sign in to comment.