Sha256: f458ac04dd3c796a8ae439c82153daeac9716d5157c50c9b7fb67eecc8292614
Contents?: true
Size: 1.77 KB
Versions: 8
Compression:
Stored size: 1.77 KB
Contents
//= require ../lib/_lunr //= require ../lib/_jquery.highlight (function () { 'use strict'; var content, searchResults; var highlightOpts = { element: 'span', className: 'search-highlight' }; var index = new lunr.Index(); index.ref('id'); index.field('title', { boost: 10 }); index.field('body'); index.pipeline.add(lunr.trimmer, lunr.stopWordFilter); $(populate); $(bind); function populate() { $('h1, h2').each(function() { var title = $(this); var body = title.nextUntil('h1, h2'); index.add({ id: title.prop('id'), title: title.text(), body: body.text() }); }); } function bind() { content = $('.content'); searchResults = $('.search-results'); $('#input-search').on('keyup', search); } function search(event) { unhighlight(); searchResults.addClass('visible'); // ESC clears the field if (event.keyCode === 27) this.value = ''; if (this.value) { var results = index.search(this.value).filter(function(r) { return r.score > 0.0001; }); if (results.length) { searchResults.empty(); $.each(results, function (index, result) { var elem = document.getElementById(result.ref); searchResults.append("<li><a href='#" + result.ref + "'>" + $(elem).text() + "</a></li>"); }); highlight.call(this); } else { searchResults.html('<li></li>'); $('.search-results li').text('No Results Found for "' + this.value + '"'); } } else { unhighlight(); searchResults.removeClass('visible'); } } function highlight() { if (this.value) content.highlight(this.value, highlightOpts); } function unhighlight() { content.unhighlight(highlightOpts); } })();
Version data entries
8 entries across 8 versions & 3 rubygems