in assets/js/lunr/lunr.js [413:456]
lunr.tokenizer = function (obj, metadata) {
if (obj == null || obj == undefined) {
return []
}
if (Array.isArray(obj)) {
return obj.map(function (t) {
return new lunr.Token(
lunr.utils.asString(t).toLowerCase(),
lunr.utils.clone(metadata)
)
})
}
var str = obj.toString().trim().toLowerCase(),
len = str.length,
tokens = []
for (var sliceEnd = 0, sliceStart = 0; sliceEnd <= len; sliceEnd++) {
var char = str.charAt(sliceEnd),
sliceLength = sliceEnd - sliceStart
if ((char.match(lunr.tokenizer.separator) || sliceEnd == len)) {
if (sliceLength > 0) {
var tokenMetadata = lunr.utils.clone(metadata) || {}
tokenMetadata["position"] = [sliceStart, sliceLength]
tokenMetadata["index"] = tokens.length
tokens.push(
new lunr.Token (
str.slice(sliceStart, sliceEnd),
tokenMetadata
)
)
}
sliceStart = sliceEnd + 1
}
}
return tokens
}