1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- require([
- 'gitbook',
- 'jquery'
- ], function(gitbook, $) {
- // Global search objects
- var engine = null;
- var initialized = false;
- // Set a new search engine
- function setEngine(Engine, config) {
- initialized = false;
- engine = new Engine(config);
- init(config);
- }
- // Initialize search engine with config
- function init(config) {
- if (!engine) throw new Error('No engine set for research. Set an engine using gitbook.research.setEngine(Engine).');
- return engine.init(config)
- .then(function() {
- initialized = true;
- gitbook.events.trigger('search.ready');
- });
- }
- // Launch search for query q
- function query(q, offset, length) {
- if (!initialized) throw new Error('Search has not been initialized');
- return engine.search(q, offset, length);
- }
- // Get stats about search
- function getEngine() {
- return engine? engine.name : null;
- }
- function isInitialized() {
- return initialized;
- }
- // Initialize gitbook.search
- gitbook.search = {
- setEngine: setEngine,
- getEngine: getEngine,
- query: query,
- isInitialized: isInitialized
- };
- });
|