mirror of
https://github.com/c0de-archive/pelican-mg.git
synced 2025-07-30 13:30:17 +00:00
Enabling lazy loading on home page
This commit is contained in:
10
static/js/enable-search.js
Normal file
10
static/js/enable-search.js
Normal file
@@ -0,0 +1,10 @@
|
||||
$(document).ready(() => {
|
||||
$('.tipue_search').tipuesearch({
|
||||
show: 10,
|
||||
mode: 'json',
|
||||
showURL: false,
|
||||
descriptiveWords: 75,
|
||||
highlightEveryTerm: true,
|
||||
contentLocation: './tipue_search.json',
|
||||
});
|
||||
});
|
76
static/js/filter-tags.js
Normal file
76
static/js/filter-tags.js
Normal file
@@ -0,0 +1,76 @@
|
||||
/*
|
||||
* Filters state can be one of:
|
||||
* - undefined => disabled
|
||||
* - true => select ONLY articles with this tag
|
||||
* - false => do NOT select articles with this tag
|
||||
* */
|
||||
(function iife() {
|
||||
'strict';
|
||||
|
||||
window.tagFilters = {};
|
||||
|
||||
function includes(anArray, value) {
|
||||
return anArray.indexOf(value) >= 0;
|
||||
}
|
||||
|
||||
function updateArticlesVisibility() {
|
||||
const includeFilters = Object.keys(window.tagFilters).filter((tagFilter) => window.tagFilters[tagFilter] === true);
|
||||
const excludeFilters = Object.keys(window.tagFilters).filter((tagFilter) => window.tagFilters[tagFilter] === false);
|
||||
Array.prototype.slice.call(document.getElementsByTagName('article')).forEach((article) => {
|
||||
// article-excerpt: we ignore it
|
||||
if (!article.dataset.tags) {
|
||||
return;
|
||||
}
|
||||
const articleTags = JSON.parse(article.dataset.tags);
|
||||
const allIncludeTags = includeFilters.every((tag) => includes(articleTags, tag));
|
||||
const anyExcludeTag = excludeFilters.some((tag) => includes(articleTags, tag));
|
||||
|
||||
// Now implementing the core logic
|
||||
let shouldDisplay = !anyExcludeTag;
|
||||
if (shouldDisplay && includeFilters.length > 0) {
|
||||
shouldDisplay = allIncludeTags;
|
||||
}
|
||||
|
||||
if (shouldDisplay) {
|
||||
article.classList.remove('mg-faded');
|
||||
} else {
|
||||
article.classList.add('mg-faded');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
window.toggleTagFilter = function toggleTagFilter(tag) {
|
||||
let filterState = window.tagFilters[tag];
|
||||
if (filterState === true) {
|
||||
this.classList.remove('mg-tag-filter-include');
|
||||
filterState = false;
|
||||
this.classList.add('mg-tag-filter-exclude');
|
||||
this.title = 'Tag filter (exclude matching articles)';
|
||||
} else if (filterState === false) {
|
||||
this.classList.remove('mg-tag-filter-exclude');
|
||||
filterState = undefined;
|
||||
this.title = 'Tag filter (disabled)';
|
||||
} else {
|
||||
filterState = true;
|
||||
this.classList.add('mg-tag-filter-include');
|
||||
this.title = 'Tag filter (include matching articles)';
|
||||
}
|
||||
window.tagFilters[tag] = filterState;
|
||||
updateArticlesVisibility();
|
||||
};
|
||||
|
||||
window.toggleLangTagFilter = function toggleLangTagFilter(langs) {
|
||||
let lang = this.textContent;
|
||||
window.tagFilters[`lang:${ lang }`] = undefined;
|
||||
lang = langs[langs.indexOf(lang) + 1];
|
||||
if (typeof lang === 'undefined') {
|
||||
lang = 'lang';
|
||||
this.title = 'Language filter (disabled)';
|
||||
} else {
|
||||
window.tagFilters[`lang:${ lang }`] = true;
|
||||
this.title = `Language filter (include only "${ lang }" articles)`;
|
||||
}
|
||||
this.textContent = lang;
|
||||
updateArticlesVisibility();
|
||||
};
|
||||
}());
|
4
static/js/html5shiv-3.7.2.min.js
vendored
4
static/js/html5shiv-3.7.2.min.js
vendored
@@ -1,4 +0,0 @@
|
||||
/**
|
||||
* @preserve HTML5 Shiv 3.7.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
|
||||
*/
|
||||
!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.2",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b)}(this,document);
|
6
static/js/jquery-1.10.2.min.js
vendored
6
static/js/jquery-1.10.2.min.js
vendored
File diff suppressed because one or more lines are too long
@@ -1,242 +0,0 @@
|
||||
// Generated by CoffeeScript 1.7.1
|
||||
|
||||
/**
|
||||
@license Sticky-kit v1.1.1 | WTFPL | Leaf Corcoran 2014 | http://leafo.net
|
||||
*/
|
||||
|
||||
(function() {
|
||||
var $, win;
|
||||
|
||||
$ = this.jQuery || window.jQuery;
|
||||
|
||||
win = $(window);
|
||||
|
||||
$.fn.stick_in_parent = function(opts) {
|
||||
var elm, enable_bottoming, inner_scrolling, manual_spacer, offset_top, parent_selector, recalc_every, sticky_class, _fn, _i, _len;
|
||||
if (opts == null) {
|
||||
opts = {};
|
||||
}
|
||||
sticky_class = opts.sticky_class, inner_scrolling = opts.inner_scrolling, recalc_every = opts.recalc_every, parent_selector = opts.parent, offset_top = opts.offset_top, manual_spacer = opts.spacer, enable_bottoming = opts.bottoming;
|
||||
if (offset_top == null) {
|
||||
offset_top = 0;
|
||||
}
|
||||
if (parent_selector == null) {
|
||||
parent_selector = void 0;
|
||||
}
|
||||
if (inner_scrolling == null) {
|
||||
inner_scrolling = true;
|
||||
}
|
||||
if (sticky_class == null) {
|
||||
sticky_class = "is_stuck";
|
||||
}
|
||||
if (enable_bottoming == null) {
|
||||
enable_bottoming = true;
|
||||
}
|
||||
_fn = function(elm, padding_bottom, parent_top, parent_height, top, height, el_float, detached) {
|
||||
var bottomed, detach, fixed, last_pos, offset, parent, recalc, recalc_and_tick, recalc_counter, spacer, tick;
|
||||
if (elm.data("sticky_kit")) {
|
||||
return;
|
||||
}
|
||||
elm.data("sticky_kit", true);
|
||||
parent = elm.parent();
|
||||
if (parent_selector != null) {
|
||||
parent = parent.closest(parent_selector);
|
||||
}
|
||||
if (!parent.length) {
|
||||
throw "failed to find stick parent";
|
||||
}
|
||||
fixed = false;
|
||||
bottomed = false;
|
||||
spacer = manual_spacer != null ? manual_spacer && elm.closest(manual_spacer) : $("<div />");
|
||||
if (spacer) {
|
||||
spacer.css('position', elm.css('position'));
|
||||
}
|
||||
recalc = function() {
|
||||
var border_top, padding_top, restore;
|
||||
if (detached) {
|
||||
return;
|
||||
}
|
||||
border_top = parseInt(parent.css("border-top-width"), 10);
|
||||
padding_top = parseInt(parent.css("padding-top"), 10);
|
||||
padding_bottom = parseInt(parent.css("padding-bottom"), 10);
|
||||
parent_top = parent.offset().top + border_top + padding_top;
|
||||
parent_height = parent.height();
|
||||
if (fixed) {
|
||||
fixed = false;
|
||||
bottomed = false;
|
||||
if (manual_spacer == null) {
|
||||
elm.insertAfter(spacer);
|
||||
spacer.detach();
|
||||
}
|
||||
elm.css({
|
||||
position: "",
|
||||
top: "",
|
||||
width: "",
|
||||
bottom: ""
|
||||
}).removeClass(sticky_class);
|
||||
restore = true;
|
||||
}
|
||||
top = elm.offset().top - parseInt(elm.css("margin-top"), 10) - offset_top;
|
||||
height = elm.outerHeight(true);
|
||||
el_float = elm.css("float");
|
||||
if (spacer) {
|
||||
spacer.css({
|
||||
width: elm.outerWidth(true),
|
||||
height: height,
|
||||
display: elm.css("display"),
|
||||
"vertical-align": elm.css("vertical-align"),
|
||||
"float": el_float
|
||||
});
|
||||
}
|
||||
if (restore) {
|
||||
return tick();
|
||||
}
|
||||
};
|
||||
recalc();
|
||||
if (height === parent_height) {
|
||||
return;
|
||||
}
|
||||
last_pos = void 0;
|
||||
offset = offset_top;
|
||||
recalc_counter = recalc_every;
|
||||
tick = function() {
|
||||
var css, delta, scroll, will_bottom, win_height;
|
||||
if (detached) {
|
||||
return;
|
||||
}
|
||||
if (recalc_counter != null) {
|
||||
recalc_counter -= 1;
|
||||
if (recalc_counter <= 0) {
|
||||
recalc_counter = recalc_every;
|
||||
recalc();
|
||||
}
|
||||
}
|
||||
scroll = win.scrollTop();
|
||||
if (last_pos != null) {
|
||||
delta = scroll - last_pos;
|
||||
}
|
||||
last_pos = scroll;
|
||||
if (fixed) {
|
||||
if (enable_bottoming) {
|
||||
will_bottom = scroll + height + offset > parent_height + parent_top;
|
||||
if (bottomed && !will_bottom) {
|
||||
bottomed = false;
|
||||
elm.css({
|
||||
position: "fixed",
|
||||
bottom: "",
|
||||
top: offset
|
||||
}).trigger("sticky_kit:unbottom");
|
||||
}
|
||||
}
|
||||
if (scroll < top) {
|
||||
fixed = false;
|
||||
offset = offset_top;
|
||||
if (manual_spacer == null) {
|
||||
if (el_float === "left" || el_float === "right") {
|
||||
elm.insertAfter(spacer);
|
||||
}
|
||||
spacer.detach();
|
||||
}
|
||||
css = {
|
||||
position: "",
|
||||
width: "",
|
||||
top: ""
|
||||
};
|
||||
elm.css(css).removeClass(sticky_class).trigger("sticky_kit:unstick");
|
||||
}
|
||||
if (inner_scrolling) {
|
||||
win_height = win.height();
|
||||
if (height + offset_top > win_height) {
|
||||
if (!bottomed) {
|
||||
offset -= delta;
|
||||
offset = Math.max(win_height - height, offset);
|
||||
offset = Math.min(offset_top, offset);
|
||||
if (fixed) {
|
||||
elm.css({
|
||||
top: offset + "px"
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (scroll > top) {
|
||||
fixed = true;
|
||||
css = {
|
||||
position: "fixed",
|
||||
top: offset
|
||||
};
|
||||
css.width = elm.css("box-sizing") === "border-box" ? elm.outerWidth() + "px" : elm.width() + "px";
|
||||
elm.css(css).addClass(sticky_class);
|
||||
if (manual_spacer == null) {
|
||||
elm.after(spacer);
|
||||
if (el_float === "left" || el_float === "right") {
|
||||
spacer.append(elm);
|
||||
}
|
||||
}
|
||||
elm.trigger("sticky_kit:stick");
|
||||
}
|
||||
}
|
||||
if (fixed && enable_bottoming) {
|
||||
if (will_bottom == null) {
|
||||
will_bottom = scroll + height + offset > parent_height + parent_top;
|
||||
}
|
||||
if (!bottomed && will_bottom) {
|
||||
bottomed = true;
|
||||
if (parent.css("position") === "static") {
|
||||
parent.css({
|
||||
position: "relative"
|
||||
});
|
||||
}
|
||||
return elm.css({
|
||||
position: "absolute",
|
||||
bottom: padding_bottom,
|
||||
top: "auto"
|
||||
}).trigger("sticky_kit:bottom");
|
||||
}
|
||||
}
|
||||
};
|
||||
recalc_and_tick = function() {
|
||||
recalc();
|
||||
return tick();
|
||||
};
|
||||
detach = function() {
|
||||
detached = true;
|
||||
win.off("touchmove", tick);
|
||||
win.off("scroll", tick);
|
||||
win.off("resize", recalc_and_tick);
|
||||
$(document.body).off("sticky_kit:recalc", recalc_and_tick);
|
||||
elm.off("sticky_kit:detach", detach);
|
||||
elm.removeData("sticky_kit");
|
||||
elm.css({
|
||||
position: "",
|
||||
bottom: "",
|
||||
top: "",
|
||||
width: ""
|
||||
});
|
||||
parent.position("position", "");
|
||||
if (fixed) {
|
||||
if (manual_spacer == null) {
|
||||
if (el_float === "left" || el_float === "right") {
|
||||
elm.insertAfter(spacer);
|
||||
}
|
||||
spacer.remove();
|
||||
}
|
||||
return elm.removeClass(sticky_class);
|
||||
}
|
||||
};
|
||||
win.on("touchmove", tick);
|
||||
win.on("scroll", tick);
|
||||
win.on("resize", recalc_and_tick);
|
||||
$(document.body).on("sticky_kit:recalc", recalc_and_tick);
|
||||
elm.on("sticky_kit:detach", detach);
|
||||
return setTimeout(tick, 0);
|
||||
};
|
||||
for (_i = 0, _len = this.length; _i < _len; _i++) {
|
||||
elm = this[_i];
|
||||
_fn($(elm));
|
||||
}
|
||||
return this;
|
||||
};
|
||||
|
||||
}).call(this);
|
4
static/js/social.js
Normal file
4
static/js/social.js
Normal file
@@ -0,0 +1,4 @@
|
||||
$(document).ready(() => {
|
||||
$('.mg-container-social').height($('article').height());
|
||||
$('#mg-panel-social').stick_in_parent({ 'offset_top': 35 });
|
||||
});
|
@@ -1,444 +0,0 @@
|
||||
|
||||
/*
|
||||
Tipue Search 4.0
|
||||
Copyright (c) 2014 Tipue
|
||||
Tipue Search is released under the MIT License
|
||||
http://www.tipue.com/search
|
||||
*/
|
||||
|
||||
|
||||
(function($) {
|
||||
|
||||
$.fn.tipuesearch = function(options) {
|
||||
|
||||
var set = $.extend( {
|
||||
|
||||
'show' : 7,
|
||||
'newWindow' : false,
|
||||
'showURL' : true,
|
||||
'minimumLength' : 3,
|
||||
'descriptiveWords' : 25,
|
||||
'highlightTerms' : true,
|
||||
'highlightEveryTerm' : false,
|
||||
'mode' : 'static',
|
||||
'liveDescription' : '*',
|
||||
'liveContent' : '*',
|
||||
'contentLocation' : 'tipuesearch/tipuesearch_content.json'
|
||||
|
||||
}, options);
|
||||
|
||||
return this.each(function() {
|
||||
|
||||
var tipuesearch_in = {
|
||||
pages: []
|
||||
};
|
||||
$.ajaxSetup({
|
||||
async: false
|
||||
});
|
||||
|
||||
if (set.mode == 'live')
|
||||
{
|
||||
for (var i = 0; i < tipuesearch_pages.length; i++)
|
||||
{
|
||||
$.get(tipuesearch_pages[i], '',
|
||||
function (html)
|
||||
{
|
||||
var cont = $(set.liveContent, html).text();
|
||||
cont = cont.replace(/\s+/g, ' ');
|
||||
var desc = $(set.liveDescription, html).text();
|
||||
desc = desc.replace(/\s+/g, ' ');
|
||||
|
||||
var t_1 = html.toLowerCase().indexOf('<title>');
|
||||
var t_2 = html.toLowerCase().indexOf('</title>', t_1 + 7);
|
||||
if (t_1 != -1 && t_2 != -1)
|
||||
{
|
||||
var tit = html.slice(t_1 + 7, t_2);
|
||||
}
|
||||
else
|
||||
{
|
||||
var tit = 'No title';
|
||||
}
|
||||
|
||||
tipuesearch_in.pages.push({
|
||||
"title": tit,
|
||||
"text": desc,
|
||||
"tags": cont,
|
||||
"loc": tipuesearch_pages[i]
|
||||
});
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if (set.mode == 'json')
|
||||
{
|
||||
$.getJSON(set.contentLocation,
|
||||
function(json)
|
||||
{
|
||||
tipuesearch_in = $.extend({}, json);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
if (set.mode == 'static')
|
||||
{
|
||||
tipuesearch_in = $.extend({}, tipuesearch);
|
||||
}
|
||||
|
||||
var tipue_search_w = '';
|
||||
if (set.newWindow)
|
||||
{
|
||||
tipue_search_w = ' target="_blank"';
|
||||
}
|
||||
|
||||
function getURLP(name)
|
||||
{
|
||||
return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search)||[,""])[1].replace(/\+/g, '%20')) || null;
|
||||
}
|
||||
if (getURLP('q'))
|
||||
{
|
||||
$('main .tipue_search').val(getURLP('q'));
|
||||
getTipueSearch(0, true);
|
||||
}
|
||||
|
||||
$(this).keyup(function(event)
|
||||
{
|
||||
if(event.keyCode == '13')
|
||||
{
|
||||
getTipueSearch(0, true);
|
||||
}
|
||||
});
|
||||
|
||||
function getTipueSearch(start, replace)
|
||||
{
|
||||
$('#tipue_search_content').hide();
|
||||
var out = '';
|
||||
var results = '';
|
||||
var show_replace = false;
|
||||
var show_stop = false;
|
||||
var standard = true;
|
||||
var c = 0;
|
||||
found = new Array();
|
||||
|
||||
var d = $('main .tipue_search').val().toLowerCase();
|
||||
d = $.trim(d);
|
||||
|
||||
if ((d.match("^\"") && d.match("\"$")) || (d.match("^'") && d.match("'$")))
|
||||
{
|
||||
standard = false;
|
||||
}
|
||||
|
||||
if (standard)
|
||||
{
|
||||
var d_w = d.split(' ');
|
||||
d = '';
|
||||
for (var i = 0; i < d_w.length; i++)
|
||||
{
|
||||
var a_w = true;
|
||||
for (var f = 0; f < tipuesearch_stop_words.length; f++)
|
||||
{
|
||||
if (d_w[i] == tipuesearch_stop_words[f])
|
||||
{
|
||||
a_w = false;
|
||||
show_stop = true;
|
||||
}
|
||||
}
|
||||
if (a_w)
|
||||
{
|
||||
d = d + ' ' + d_w[i];
|
||||
}
|
||||
}
|
||||
d = $.trim(d);
|
||||
d_w = d.split(' ');
|
||||
}
|
||||
else
|
||||
{
|
||||
d = d.substring(1, d.length - 1);
|
||||
}
|
||||
|
||||
if (d.length >= set.minimumLength)
|
||||
{
|
||||
if (standard)
|
||||
{
|
||||
if (replace)
|
||||
{
|
||||
var d_r = d;
|
||||
for (var i = 0; i < d_w.length; i++)
|
||||
{
|
||||
for (var f = 0; f < tipuesearch_replace.words.length; f++)
|
||||
{
|
||||
if (d_w[i] == tipuesearch_replace.words[f].word)
|
||||
{
|
||||
d = d.replace(d_w[i], tipuesearch_replace.words[f].replace_with);
|
||||
show_replace = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
d_w = d.split(' ');
|
||||
}
|
||||
|
||||
var d_t = d;
|
||||
for (var i = 0; i < d_w.length; i++)
|
||||
{
|
||||
for (var f = 0; f < tipuesearch_stem.words.length; f++)
|
||||
{
|
||||
if (d_w[i] == tipuesearch_stem.words[f].word)
|
||||
{
|
||||
d_t = d_t + ' ' + tipuesearch_stem.words[f].stem;
|
||||
}
|
||||
}
|
||||
}
|
||||
d_w = d_t.split(' ');
|
||||
|
||||
for (var i = 0; i < tipuesearch_in.pages.length; i++)
|
||||
{
|
||||
var score = 1000000000;
|
||||
var s_t = tipuesearch_in.pages[i].text;
|
||||
for (var f = 0; f < d_w.length; f++)
|
||||
{
|
||||
var pat = new RegExp(d_w[f], 'i');
|
||||
if (tipuesearch_in.pages[i].title.search(pat) != -1)
|
||||
{
|
||||
score -= (200000 - i);
|
||||
}
|
||||
if (tipuesearch_in.pages[i].text.search(pat) != -1)
|
||||
{
|
||||
score -= (150000 - i);
|
||||
}
|
||||
|
||||
if (set.highlightTerms)
|
||||
{
|
||||
if (set.highlightEveryTerm)
|
||||
{
|
||||
var patr = new RegExp('(' + d_w[f] + ')', 'gi');
|
||||
}
|
||||
else
|
||||
{
|
||||
var patr = new RegExp('(' + d_w[f] + ')', 'i');
|
||||
}
|
||||
s_t = s_t.replace(patr, "<span class=\"h01\">$1</span>");
|
||||
}
|
||||
if (tipuesearch_in.pages[i].tags.search(pat) != -1)
|
||||
{
|
||||
score -= (100000 - i);
|
||||
}
|
||||
|
||||
if (d_w[f].match("^-"))
|
||||
{
|
||||
pat = new RegExp(d_w[f].substring(1), 'i');
|
||||
if (tipuesearch_in.pages[i].title.search(pat) != -1 || tipuesearch_in.pages[i].text.search(pat) != -1 || tipuesearch_in.pages[i].tags.search(pat) != -1)
|
||||
{
|
||||
score = 1000000000;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (score < 1000000000)
|
||||
{
|
||||
found[c++] = score + '^' + tipuesearch_in.pages[i].title + '^' + s_t + '^' + tipuesearch_in.pages[i].loc;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (var i = 0; i < tipuesearch_in.pages.length; i++)
|
||||
{
|
||||
var score = 1000000000;
|
||||
var s_t = tipuesearch_in.pages[i].text;
|
||||
var pat = new RegExp(d, 'i');
|
||||
if (tipuesearch_in.pages[i].title.search(pat) != -1)
|
||||
{
|
||||
score -= (200000 - i);
|
||||
}
|
||||
if (tipuesearch_in.pages[i].text.search(pat) != -1)
|
||||
{
|
||||
score -= (150000 - i);
|
||||
}
|
||||
|
||||
if (set.highlightTerms)
|
||||
{
|
||||
if (set.highlightEveryTerm)
|
||||
{
|
||||
var patr = new RegExp('(' + d + ')', 'gi');
|
||||
}
|
||||
else
|
||||
{
|
||||
var patr = new RegExp('(' + d + ')', 'i');
|
||||
}
|
||||
s_t = s_t.replace(patr, "<span class=\"h01\">$1</span>");
|
||||
}
|
||||
if (tipuesearch_in.pages[i].tags.search(pat) != -1)
|
||||
{
|
||||
score -= (100000 - i);
|
||||
}
|
||||
|
||||
if (score < 1000000000)
|
||||
{
|
||||
found[c++] = score + '^' + tipuesearch_in.pages[i].title + '^' + s_t + '^' + tipuesearch_in.pages[i].loc;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (c != 0)
|
||||
{
|
||||
if (show_replace == 1)
|
||||
{
|
||||
out += '<div id="tipue_search_warning_head">Showing results for ' + d + '</div>';
|
||||
out += '<div id="tipue_search_warning">Search instead for <a href="javascript:void(0)" id="tipue_search_replaced">' + d_r + '</a></div>';
|
||||
}
|
||||
if (c == 1)
|
||||
{
|
||||
out += '<div id="tipue_search_results_count">1 result</div>';
|
||||
}
|
||||
else
|
||||
{
|
||||
c_c = c.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
||||
out += '<div id="tipue_search_results_count">' + c_c + ' results</div>';
|
||||
}
|
||||
|
||||
found.sort();
|
||||
var l_o = 0;
|
||||
for (var i = 0; i < found.length; i++)
|
||||
{
|
||||
var fo = found[i].split('^');
|
||||
if (l_o >= start && l_o < set.show + start)
|
||||
{
|
||||
out += '<div class="tipue_search_content_title"><a href="' + fo[3] + '"' + tipue_search_w + '>' + fo[1] + '</a></div>';
|
||||
|
||||
if (set.showURL)
|
||||
{
|
||||
out += '<div class="tipue_search_content_url"><a href="' + fo[3] + '"' + tipue_search_w + '>' + fo[3] + '</a></div>';
|
||||
}
|
||||
|
||||
var t = fo[2];
|
||||
var t_d = '';
|
||||
var t_w = t.split(' ');
|
||||
if (t_w.length < set.descriptiveWords)
|
||||
{
|
||||
t_d = t;
|
||||
}
|
||||
else
|
||||
{
|
||||
for (var f = 0; f < set.descriptiveWords; f++)
|
||||
{
|
||||
t_d += t_w[f] + ' ';
|
||||
}
|
||||
}
|
||||
t_d = $.trim(t_d);
|
||||
if (t_d.charAt(t_d.length - 1) != '.')
|
||||
{
|
||||
t_d += ' ...';
|
||||
}
|
||||
out += '<div class="tipue_search_content_text">' + t_d + '</div>';
|
||||
}
|
||||
l_o++;
|
||||
}
|
||||
|
||||
if (c > set.show)
|
||||
{
|
||||
var pages = Math.ceil(c / set.show);
|
||||
var page = (start / set.show);
|
||||
out += '<div id="tipue_search_foot"><ul id="tipue_search_foot_boxes">';
|
||||
|
||||
if (start > 0)
|
||||
{
|
||||
out += '<li><a href="javascript:void(0)" class="tipue_search_foot_box" id="' + (start - set.show) + '_' + replace + '">Prev</a></li>';
|
||||
}
|
||||
|
||||
if (page <= 2)
|
||||
{
|
||||
var p_b = pages;
|
||||
if (pages > 3)
|
||||
{
|
||||
p_b = 3;
|
||||
}
|
||||
for (var f = 0; f < p_b; f++)
|
||||
{
|
||||
if (f == page)
|
||||
{
|
||||
out += '<li class="current">' + (f + 1) + '</li>';
|
||||
}
|
||||
else
|
||||
{
|
||||
out += '<li><a href="javascript:void(0)" class="tipue_search_foot_box" id="' + (f * set.show) + '_' + replace + '">' + (f + 1) + '</a></li>';
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var p_b = page + 2;
|
||||
if (p_b > pages)
|
||||
{
|
||||
p_b = pages;
|
||||
}
|
||||
for (var f = page - 1; f < p_b; f++)
|
||||
{
|
||||
if (f == page)
|
||||
{
|
||||
out += '<li class="current">' + (f + 1) + '</li>';
|
||||
}
|
||||
else
|
||||
{
|
||||
out += '<li><a href="javascript:void(0)" class="tipue_search_foot_box" id="' + (f * set.show) + '_' + replace + '">' + (f + 1) + '</a></li>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (page + 1 != pages)
|
||||
{
|
||||
out += '<li><a href="javascript:void(0)" class="tipue_search_foot_box" id="' + (start + set.show) + '_' + replace + '">Next</a></li>';
|
||||
}
|
||||
|
||||
out += '</ul></div>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
out += '<div id="tipue_search_warning_head">Nothing found</div>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (show_stop)
|
||||
{
|
||||
out += '<div id="tipue_search_warning_head">Nothing found</div><div id="tipue_search_warning">Common words are largely ignored</div>';
|
||||
}
|
||||
else
|
||||
{
|
||||
out += '<div id="tipue_search_warning_head">Search too short</div>';
|
||||
if (set.minimumLength == 1)
|
||||
{
|
||||
out += '<div id="tipue_search_warning">Should be one character or more</div>';
|
||||
}
|
||||
else
|
||||
{
|
||||
out += '<div id="tipue_search_warning">Should be ' + set.minimumLength + ' characters or more</div>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$('#tipue_search_content').html(out);
|
||||
$('#tipue_search_content').slideDown(200);
|
||||
|
||||
$('#tipue_search_replaced').click(function()
|
||||
{
|
||||
getTipueSearch(0, false);
|
||||
});
|
||||
|
||||
$('.tipue_search_foot_box').click(function()
|
||||
{
|
||||
var id_v = $(this).attr('id');
|
||||
var id_a = id_v.split('_');
|
||||
|
||||
getTipueSearch(parseInt(id_a[0]), id_a[1]);
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
|
||||
|
||||
|
||||
|
@@ -1,22 +0,0 @@
|
||||
|
||||
/*
|
||||
Tipue Search 4.0
|
||||
Copyright (c) 2014 Tipue
|
||||
Tipue Search is released under the MIT License
|
||||
http://www.tipue.com/search
|
||||
*/
|
||||
|
||||
|
||||
var tipuesearch_stop_words = ["and", "be", "by", "do", "for", "he", "how", "if", "is", "it", "my", "not", "of", "or", "the", "to", "up", "what", "when"];
|
||||
|
||||
var tipuesearch_replace = {"words": [
|
||||
{"word": "tipua", "replace_with": "tipue"},
|
||||
{"word": "javscript", "replace_with": "javascript"}
|
||||
]};
|
||||
|
||||
var tipuesearch_stem = {"words": [
|
||||
{"word": "e-mail", "stem": "email"},
|
||||
{"word": "javascript", "stem": "js"},
|
||||
{"word": "nightmare.js", "stem": "nightmarejs"}
|
||||
]};
|
||||
|
2
static/js/uikit-2.27.4-search.min.js
vendored
2
static/js/uikit-2.27.4-search.min.js
vendored
@@ -1,2 +0,0 @@
|
||||
/*! UIkit 2.27.4 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
|
||||
!function(e){var s;window.UIkit2&&(s=e(UIkit2)),"function"==typeof define&&define.amd&&define("uikit-search",["uikit"],function(){return s||e(UIkit2)})}(function(e){"use strict";e.component("search",{defaults:{msgResultsHeader:"Search Results",msgMoreResults:"More Results",msgNoResults:"No results found",template:'<ul class="uk-nav uk-nav-search uk-autocomplete-results"> {{#msgResultsHeader}}<li class="uk-nav-header uk-skip">{{msgResultsHeader}}</li>{{/msgResultsHeader}} {{#items && items.length}} {{~items}} <li data-url="{{!$item.url}}"> <a href="{{!$item.url}}"> {{{$item.title}}} {{#$item.text}}<div>{{{$item.text}}}</div>{{/$item.text}} </a> </li> {{/items}} {{#msgMoreResults}} <li class="uk-nav-divider uk-skip"></li> <li class="uk-search-moreresults" data-moreresults="true"><a href="#" onclick="jQuery(this).closest(\'form\').submit();">{{msgMoreResults}}</a></li> {{/msgMoreResults}} {{/end}} {{^items.length}} {{#msgNoResults}}<li class="uk-skip"><a>{{msgNoResults}}</a></li>{{/msgNoResults}} {{/end}} </ul>',renderer:function(e){var s=this.options;this.dropdown.append(this.template({items:e.results||[],msgResultsHeader:s.msgResultsHeader,msgMoreResults:s.msgMoreResults,msgNoResults:s.msgNoResults})),this.show()}},boot:function(){e.$html.on("focus.search.uikit","[data-uk-search]",function(){var s=e.$(this);s.data("search")||e.search(s,e.Utils.options(s.attr("data-uk-search")))})},init:function(){var s=this;this.autocomplete=e.autocomplete(this.element,this.options),this.autocomplete.dropdown.addClass("uk-dropdown-search"),this.autocomplete.input.on("keyup",function(){s.element[s.autocomplete.input.val()?"addClass":"removeClass"]("uk-active")}).closest("form").on("reset",function(){s.value="",s.element.removeClass("uk-active")}),this.on("selectitem.uk.autocomplete",function(e,t){t.url?location.href=t.url:t.moreresults&&s.autocomplete.input.closest("form").submit()}),this.element.data("search",this)}})});
|
3
static/js/uikit-2.27.4.min.js
vendored
3
static/js/uikit-2.27.4.min.js
vendored
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user