/*! * Simple-Jekyll-Search v1.6.0 (https://github.com/christian-fei/Simple-Jekyll-Search) * Copyright 2015-2017, Christian Fei * Licensed under the MIT License. */ ! function () { "use strict"; function e(e) { return Boolean(e) && "[object Object]" === Object.prototype.toString.call(e) } function t(e) { return a.push(e), a } var n = { load: function (e, t) { var n = window.XMLHttpRequest ? new XMLHttpRequest : new ActiveXObject("Microsoft.XMLHTTP"); n.open("GET", e, !0), n.onreadystatechange = function (e, t) { return function () { if (4 === e.readyState && 200 === e.status) try { t(null, JSON.parse(e.responseText)) } catch (n) { t(n, null) } } }(n, t), n.send() } }, r = function (e, t) { var n = t.length, r = e.length; if (r > n) return !1; if (r === n) return e === t; e: for (var i = 0, o = 0; i < r; i++) { for (var u = e.charCodeAt(i); o < n;) if (t.charCodeAt(o++) === u) continue e; return !1 } return !0 }, i = new function () { this.matches = function (e, t) { return r(t, e) } }, o = new function () { this.matches = function (e, t) { return "string" == typeof e && (e = e.trim()).toLowerCase().indexOf(t.toLowerCase()) >= 0 } }, u = { put: function (n) { return e(n) ? t(n) : function (e) { return Boolean(e) && "[object Array]" === Object.prototype.toString.call(e) }(n) ? function (n) { for (var r = [], i = 0, o = n.length; i < o; i++) e(n[i]) && r.push(t(n[i])); return r }(n) : undefined }, clear: function () { return a.length = 0, a }, search: function (e) { return e ? function (e, t, n, r) { for (var i = [], o = 0; o < e.length && i.length < r.limit; o++) { var u = function (e, t, n, r) { for (var i in e) if (! function (e, t) { for (var n = !1, r = 0, i = (t = t || []).length; r < i; r++) { var o = t[r]; !n && new RegExp(e).test(o) && (n = !0) } return n }(e[i], r.exclude) && n.matches(e[i], t)) return e }(e[o], t, n, r); u && i.push(u) } return i }(a, e, l.searchStrategy, l) : [] }, setOptions: function (e) { (l = e || {}).fuzzy = e.fuzzy || !1, l.limit = e.limit || 10, l.searchStrategy = e.fuzzy ? i : o } }, a = [], l = {}; l.fuzzy = !1, l.limit = 10, l.searchStrategy = l.fuzzy ? i : o; var c = { compile: function (e) { return f.template.replace(f.pattern, function (t, n) { var r = f.middleware(n, e[n], f.template); return void 0 !== r ? r : e[n] || t }) }, setOptions: function (e) { f.pattern = e.pattern || f.pattern, f.template = e.template || f.template, "function" == typeof e.middleware && (f.middleware = e.middleware) } }, f = {}; f.pattern = /\{(.*?)\}/g, f.template = "", f.middleware = function () {}; var s = { merge: function (e, t) { var n = {}; for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (n[r] = e[r], "undefined" != typeof t[r] && (n[r] = t[r])); return n }, isJSON: function (e) { try { return !!(e instanceof Object && JSON.parse(JSON.stringify(e))) } catch (t) { return !1 } } }; ! function (e) { function t(e) { u.put(e), a.searchInput.addEventListener("keyup", function (e) { (function (e) { return -1 === [13, 16, 20, 37, 38, 39, 40, 91].indexOf(e) })(e.which) && (a.resultsContainer.innerHTML = "", i(e.target.value)) }) } function r(e) { a.resultsContainer.innerHTML += e } function i(e) { (function (e) { return e && e.length > 0 })(e) && function (e) { var t = e.length; if (0 === t) return r(a.noResultsText); for (var n = 0; n < t; n++) r(c.compile(e[n])) }(u.search(e)) } function o(e) { throw new Error("SimpleJekyllSearch --- " + e) } var a = { searchInput: null, resultsContainer: null, json: [], searchResultTemplate: '
  • {title}
  • ', templateMiddleware: function () {}, noResultsText: "No results found", limit: 10, fuzzy: !1, exclude: [] }, l = ["searchInput", "resultsContainer", "json"], f = function p(e) { if (! function (e) { return !!e && "undefined" != typeof e.required && e.required instanceof Array }(e)) throw new Error("-- OptionsValidator: required options missing"); if (!(this instanceof p)) return new p(e); var t = e.required; this.getRequiredOptions = function () { return t }, this.validate = function (e) { var n = []; return t.forEach(function (t) { "undefined" == typeof e[t] && n.push(t) }), n } }({ required: l }); e.SimpleJekyllSearch = function (e) { return f.validate(e).length > 0 && o("You must specify the following required options: " + l), a = s.merge(a, e), c.setOptions({ template: a.searchResultTemplate, middleware: a.templateMiddleware }), u.setOptions({ fuzzy: a.fuzzy, limit: a.limit }), s.isJSON(a.json) ? t(a.json) : function (e) { n.load(e, function (n, r) { n && o("failed to get JSON (" + e + ")"), t(r) }) }(a.json), { search: i } }, e.SimpleJekyllSearch.init = e.SimpleJekyllSearch, "function" == typeof e.SimpleJekyllSearchInit && e.SimpleJekyllSearchInit.call(this, e.SimpleJekyllSearch) }(window) }();