fix
This commit is contained in:
59
content/book/0/gitbook/gitbook-plugin-lunr/search-lunr.js
Normal file
59
content/book/0/gitbook/gitbook-plugin-lunr/search-lunr.js
Normal file
@ -0,0 +1,59 @@
|
||||
require([
|
||||
'gitbook',
|
||||
'jquery'
|
||||
], function(gitbook, $) {
|
||||
// Define global search engine
|
||||
function LunrSearchEngine() {
|
||||
this.index = null;
|
||||
this.store = {};
|
||||
this.name = 'LunrSearchEngine';
|
||||
}
|
||||
|
||||
// Initialize lunr by fetching the search index
|
||||
LunrSearchEngine.prototype.init = function() {
|
||||
var that = this;
|
||||
var d = $.Deferred();
|
||||
|
||||
$.getJSON(gitbook.state.basePath+'/search_index.json')
|
||||
.then(function(data) {
|
||||
// eslint-disable-next-line no-undef
|
||||
that.index = lunr.Index.load(data.index);
|
||||
that.store = data.store;
|
||||
d.resolve();
|
||||
});
|
||||
|
||||
return d.promise();
|
||||
};
|
||||
|
||||
// Search for a term and return results
|
||||
LunrSearchEngine.prototype.search = function(q, offset, length) {
|
||||
var that = this;
|
||||
var results = [];
|
||||
|
||||
if (this.index) {
|
||||
results = $.map(this.index.search(q), function(result) {
|
||||
var doc = that.store[result.ref];
|
||||
|
||||
return {
|
||||
title: doc.title,
|
||||
url: doc.url,
|
||||
body: doc.summary || doc.body
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
return $.Deferred().resolve({
|
||||
query: q,
|
||||
results: results.slice(0, length),
|
||||
count: results.length
|
||||
}).promise();
|
||||
};
|
||||
|
||||
// Set gitbook research
|
||||
gitbook.events.bind('start', function(e, config) {
|
||||
var engine = gitbook.search.getEngine();
|
||||
if (!engine) {
|
||||
gitbook.search.setEngine(LunrSearchEngine, config);
|
||||
}
|
||||
});
|
||||
});
|
Reference in New Issue
Block a user