--- title: "Redirector" --- <script> // Redirector for hcc-docs links // Search for URL parameter 'q' and redirect to top match var lunrIndex; function getQueryVariable(variable) { var query = window.location.search.substring(1); var vars = query.split('&'); for (var i = 0; i < vars.length; i++) { var pair = vars[i].split('='); if (pair[0] === variable) { return decodeURIComponent(pair[1].replace(/\+/g, '%20')); } } } // Initialize lunrjs using our generated index file function initLunr() { // First retrieve the index file return $.getJSON(baseurl + "/index.json") .done(function(index) { pagesIndex = index; // Set up lunrjs by declaring the fields we use // Also provide their boost level for the ranking lunrIndex = new lunr.Index lunrIndex.ref("uri"); lunrIndex.field('title', { boost: 15 }); lunrIndex.field('tags', { boost: 10 }); lunrIndex.field("content", { boost: 5 }); // Feed lunr with each file and let lunr actually index them pagesIndex.forEach(function(page) { lunrIndex.add(page); }); lunrIndex.pipeline.remove(lunrIndex.stemmer) }) .fail(function(jqxhr, textStatus, error) { var err = textStatus + ", " + error; console.error("Error getting Hugo index file:", err); }); } function search(query) { // Find the item in our index corresponding to the lunr one to have more info return lunrIndex.search(query).map(function(result) { return pagesIndex.filter(function(page) { return page.uri === result.ref; })[0]; }); } initLunr().then(function() { var searchTerm = getQueryVariable('q'); // Replace non-word chars with space. lunr doesn't like quotes. searchTerm = searchTerm.replace(/[\W_]+/g," "); var results = search(searchTerm); if (!results.length) { window.location = baseurl; } else { window.location = results[0].uri; } }); </script>