summaryrefslogtreecommitdiffstats
path: root/theme/javascript/core/search.js
blob: f38e86f1d915b8637bee021a9b8a649f10c9ccc5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
define([
    "jQuery",
    "lodash",
    "lunr",
], function($, _, lunr) {
    var index = null;

    // Load complete index
    var loadIndex = function() {
        return $.getJSON("search_index.json")
        .then(function(data) {
            index = lunr.Index.load(data);
        });
    };

    // Search for a term
    var search = function(q) {
        if (!index) return;
        var results = _.chain(index.search(q))
        .map(function(result) {
            var parts = result.ref.split("#")
            return {
                path: parts[0],
                hash: parts[1]
            }
        })
        .value();

        return results;
    };


    var init = function() {
        loadIndex();
    };

    return {
        init: init,
        search: search
    };
});