Skip to content
This repository was archived by the owner on Feb 1, 2018. It is now read-only.

Commit b4cb155

Browse files
committed
Fix Highlighter issue
1 parent 44316cd commit b4cb155

4 files changed

Lines changed: 2 additions & 392 deletions

File tree

dist/js/main.js

Lines changed: 0 additions & 195 deletions
Original file line numberDiff line numberDiff line change
@@ -1198,201 +1198,6 @@
11981198
};
11991199
}(jQuery));
12001200

1201-
(function($) {
1202-
$.fn.removeHighlight = function() {
1203-
return $(this).find('span.highlight').each(function(){
1204-
$(this).replaceWith($(this).text());
1205-
}).end().each(function() {
1206-
this.normalize();
1207-
});
1208-
};
1209-
}(jQuery));(function($) {
1210-
$.fn.searchAppbase = function(searchIndexUrl, htmlMode) {
1211-
1212-
//Create the search input element and insert it into html
1213-
var $search = $('<input>').attr({
1214-
'class':"search_field form-control dropdown-toggle",
1215-
'type':'text',
1216-
'placeholder':'search'
1217-
});
1218-
$(this).html($search);
1219-
$search.addClass('appbase-search');
1220-
1221-
function searchTag(data) {
1222-
var singleId = data.singleId;
1223-
var sectionId = singleId.substring(singleId.indexOf('"')+1, singleId.lastIndexOf('"'));
1224-
var filesplit = data.link.split('/');
1225-
var fileName = htmlMode ? filesplit[filesplit.length - 1].replace('.html','') : filesplit[filesplit.length - 2];
1226-
var link_part = data.link.split('/');
1227-
data.version = link_part.length > 1 ? '<span class="result_record_version">'+link_part[1]+'</span>' : null;
1228-
data.folder = link_part.length > 2 ? '<span class="result_record_folder">'+fileName+'</span>' : null;
1229-
var result_info = link_part.length > 1 ? $("<div>").addClass('result_record_info').append(data.folder).append(data.version) : null;
1230-
var result_a = $('<a>').addClass('result_record_a pointer').attr({'link':data.link, 'sectionId':sectionId, 'spaLink': data.spaLink}).text(data.title).append(result_info);
1231-
var result_div = $('<div>').addClass('result_record').append(result_a);
1232-
result_a.on('click',function(){
1233-
gotoLink(this);
1234-
});
1235-
return result_div;
1236-
}
1237-
var fail = function(e) {
1238-
console.error("Your search index wasn't loaded, please check the following error", e);
1239-
};
1240-
var success = function(searchData) {
1241-
searchData.forEach(function(searchSingle) {
1242-
var content = searchSingle.content;
1243-
searchSingle.singleId = content.substring(content.indexOf('<'), content.indexOf('>'));
1244-
searchSingle.content = content.replace(/<\/?[^>]+(>|$)/g, " ");
1245-
});
1246-
1247-
var posts = new Bloodhound({
1248-
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('title', 'content'),
1249-
queryTokenizer: Bloodhound.tokenizers.whitespace,
1250-
local: searchData
1251-
});
1252-
1253-
$search.typeahead({
1254-
minLength: 1
1255-
}, {
1256-
name: 'titles',
1257-
displayKey: 'title',
1258-
source: posts,
1259-
templates: {
1260-
pending: true,
1261-
suggestion: function(data) {
1262-
if (data) {
1263-
var single_record = searchTag(data);
1264-
return single_record;
1265-
} else
1266-
return;
1267-
}
1268-
}
1269-
});
1270-
1271-
// $search.bind('typeahead:select', function(ev, suggestion) {
1272-
// window.location.href = suggestion.link;
1273-
// });
1274-
$search.bind('typeahead:open', function(ev, suggestion) {
1275-
$search.parents('.search-form').addClass('open');
1276-
});
1277-
$search.bind('typeahead:close', function(ev, suggestion) {
1278-
$search.parents('.search-form').removeClass('open');
1279-
});
1280-
$search.on('keyup', function() {
1281-
var searchText = $(this).val();
1282-
$('.content').removeHighlight().highlight(searchText);
1283-
});
1284-
setQueryText();
1285-
};
1286-
//goto page with query string
1287-
var gotoLink = function(eve) {
1288-
var linkMode = htmlMode ? $(eve).attr('link') : $(eve).attr('spaLink');
1289-
var fullLink = linkMode+'?q='+$search.val()+'#'+$(eve).attr('sectionId');
1290-
window.location.href = fullLink;
1291-
};
1292-
//set initial higlhight according to previous page query
1293-
var setQueryText = function(){
1294-
var winhref = window.location.href;
1295-
if(winhref.indexOf('?q=') != -1){
1296-
var queryText = winhref.substring(winhref.indexOf('?q=')+3,winhref.lastIndexOf('#')).replace(/%20/g,' ');
1297-
$search.val(queryText);
1298-
$search.trigger('keyup');
1299-
}
1300-
};
1301-
//Fetch search index json data
1302-
var intializeCall = function() {
1303-
$.get(searchIndexUrl)
1304-
.then(success)
1305-
.fail(fail);
1306-
};
1307-
1308-
//Load typeahead.js
1309-
var Loader = function() {};
1310-
Loader.prototype = {
1311-
require: function(scripts, callback) {
1312-
this.loadCount = 0;
1313-
this.totalRequired = scripts.length;
1314-
this.callback = callback;
1315-
1316-
for (var i = 0; i < scripts.length; i++) {
1317-
var split_name = scripts[i].split('.');
1318-
if (split_name[split_name.length - 1] == 'js')
1319-
this.writeScript(scripts[i]);
1320-
if (split_name[split_name.length - 1] == 'css')
1321-
this.writeStylesheet(scripts[i]);
1322-
}
1323-
},
1324-
loaded: function(evt) {
1325-
this.loadCount++;
1326-
1327-
if (this.loadCount == this.totalRequired && typeof this.callback == 'function') this.callback.call();
1328-
},
1329-
writeScript: function(src) {
1330-
var self = this;
1331-
var s = document.createElement('script');
1332-
s.type = "text/javascript";
1333-
s.async = true;
1334-
s.src = src;
1335-
s.addEventListener('load', function(e) {
1336-
self.loaded(e);
1337-
}, false);
1338-
var head = document.getElementsByTagName('head')[0];
1339-
head.appendChild(s);
1340-
},
1341-
writeStylesheet: function(src) {
1342-
var self = this;
1343-
var s = document.createElement('link');
1344-
s.type = "text/css";
1345-
s.rel = "stylesheet";
1346-
s.href = src;
1347-
s.addEventListener('load', function(e) {
1348-
self.loaded(e);
1349-
}, false);
1350-
var head = document.getElementsByTagName('head')[0];
1351-
head.appendChild(s);
1352-
}
1353-
};
1354-
1355-
var jquery_js = new Loader();
1356-
jquery_js.require([
1357-
"http://twitter.github.io/typeahead.js/releases/latest/typeahead.bundle.js"
1358-
],
1359-
function() {
1360-
intializeCall();
1361-
});
1362-
1363-
};
1364-
}(jQuery));
1365-
1366-
(function($) {
1367-
$.fn.highlight = function(pat) {
1368-
function innerHighlight(node, pat) {
1369-
var skip = 0;
1370-
if (node.nodeType == 3) {
1371-
var pos = node.data.toUpperCase().indexOf(pat);
1372-
if (pos >= 0) {
1373-
var spannode = document.createElement('span');
1374-
spannode.className = 'highlight';
1375-
var middlebit = node.splitText(pos);
1376-
var endbit = middlebit.splitText(pat.length);
1377-
var middleclone = middlebit.cloneNode(true);
1378-
spannode.appendChild(middleclone);
1379-
middlebit.parentNode.replaceChild(spannode, middlebit);
1380-
skip = 1;
1381-
}
1382-
} else if (node.nodeType == 1 && node.childNodes && !/(script|style)/i.test(node.tagName)) {
1383-
var childLength = node.childNodes.length < 100 ? node.childNodes.length : 100;
1384-
for (var i = 0; i < childLength; ++i) {
1385-
i += innerHighlight(node.childNodes[i], pat);
1386-
}
1387-
}
1388-
return skip;
1389-
}
1390-
return this.length && pat && pat.length ? this.each(function() {
1391-
innerHighlight(this, pat.toUpperCase());
1392-
}) : this;
1393-
};
1394-
}(jQuery));
1395-
13961201
(function($) {
13971202
$.fn.removeHighlight = function() {
13981203
return $(this).find('span.highlight').each(function(){

0 commit comments

Comments
 (0)