update searching a bit

This commit is contained in:
Lorin Werthen 2018-07-05 11:36:11 +02:00
parent d9c56a54fc
commit 06072fd883
No known key found for this signature in database
GPG key ID: F11FFC921E0E08E0
11 changed files with 1045 additions and 595 deletions

View file

@ -9,6 +9,7 @@ gem 'uglifier', '>= 4.0.0'
gem 'coffee-script' gem 'coffee-script'
gem 'icalendar' # ical files gem 'icalendar' # ical files
gem 'kramdown' gem 'kramdown'
gem 'rainpress'
gem 'sass' gem 'sass'
gem 'typogruby' gem 'typogruby'

View file

@ -78,6 +78,7 @@ GEM
method_source (~> 0.9.0) method_source (~> 0.9.0)
public_suffix (3.0.2) public_suffix (3.0.2)
rack (2.0.5) rack (2.0.5)
rainpress (1.0.1)
rb-fsevent (0.10.3) rb-fsevent (0.10.3)
rb-inotify (0.9.10) rb-inotify (0.9.10)
ffi (>= 0.5.0, < 2) ffi (>= 0.5.0, < 2)
@ -122,6 +123,7 @@ DEPENDENCIES
kramdown kramdown
nanoc nanoc
pandoc-ruby pandoc-ruby
rainpress
sass sass
terminal-notifier terminal-notifier
terminal-notifier-guard terminal-notifier-guard

6
Rules
View file

@ -182,6 +182,12 @@ compile '/assets/stylesheets/**/*.scss' do
write ext: 'css' write ext: 'css'
end end
compile '/assets/stylesheets/**/*.css' do
filter :rainpress
filter :autoprefixer if production?
write ext: 'css'
end
# #
# #
# ROUTES # ROUTES

View file

@ -27,7 +27,7 @@ narrow_page: true
<h2>The board</h2> <h2>The board</h2>
<p id="board"> <p id="board">
The board is the oil in the machine and is the driving force behind the organization of events and projects. The board is the oil in the machine and is the driving force behind the organization of events and projects.
The Zeus WPI board for the <%= pretty_year @config[:academic_year] %> academic year is: The Zeus WPI board in <%= pretty_year @config[:academic_year] %> is:
</p> </p>
<blockquote> <blockquote>

View file

@ -1,7 +1,7 @@
/* /*
Tipue Search 6.0 Tipue Search 7.0
Copyright (c) 2017 Tipue Copyright (c) 2018 Tipue
Tipue Search is released under the MIT License Tipue Search is released under the MIT License
http://www.tipue.com/search http://www.tipue.com/search
*/ */
@ -19,16 +19,15 @@ http://www.tipue.com/search
'contextStart' : 90, 'contextStart' : 90,
'debug' : false, 'debug' : false,
'descriptiveWords' : 25, 'descriptiveWords' : 25,
'footerPages' : 3,
'highlightTerms' : true, 'highlightTerms' : true,
'liveContent' : '*', 'imageZoom' : true,
'liveDescription' : '*',
'minimumLength' : 3, 'minimumLength' : 3,
'mode' : 'static',
'newWindow' : false, 'newWindow' : false,
'show' : 9, 'show' : 10,
'showContext' : true, 'showContext' : true,
'showRelated' : false, 'showRelated' : true,
'showTime' : false, 'showTime' : true,
'showTitleCount' : true, 'showTitleCount' : true,
'showURL' : true, 'showURL' : true,
'wholeWords' : true, 'wholeWords' : true,
@ -37,63 +36,15 @@ http://www.tipue.com/search
}, options); }, options);
return this.each(function() { return this.each(function() {
var tipuesearch = null;
var tipuesearch_in = {
pages: []
};
$.ajaxSetup({ $.ajaxSetup({
async: false async: false
}); });
$.getJSON(set.contentLocation).done(function(json) {tipuesearch = $.extend({}, json);});
var tipuesearch_t_c = 0; var tipuesearch_t_c = 0;
$(set.tipue_search_content).hide().html('<div class="tipue_search_spinner"><div class="tipue_search_rect1"></div><div class="tipue_search_rect2"></div><div class="rect3"></div></div>').show();
if (set.mode == 'live')
{
for (var i = 0; i < tipuesearch_pages.length; i++)
{
$.get(tipuesearch_pages[i]).done(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 = tipuesearch_string_1;
}
tipuesearch_in.pages.push(
{
"title": tit,
"text": desc,
"tags": cont,
"url": tipuesearch_pages[i]
});
});
}
}
if (set.mode == 'json')
{
$.getJSON(set.contentLocation).done(function(json)
{
tipuesearch_in = $.extend({}, json);
});
}
if (set.mode == 'static')
{
tipuesearch_in = $.extend({}, tipuesearch);
}
var tipue_search_w = ''; var tipue_search_w = '';
if (set.newWindow) if (set.newWindow)
{ {
@ -102,9 +53,9 @@ http://www.tipue.com/search
function getURLP(name) function getURLP(name)
{ {
var _locSearch = location.search; var locSearch = location.search;
var _splitted = (new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(_locSearch)||[,""]); var splitted = (new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(locSearch)||[,""]);
var searchString = _splitted[1].replace(/\+/g, '%20'); var searchString = splitted[1].replace(/\+/g, '%20');
try try
{ {
searchString = decodeURIComponent(searchString); searchString = decodeURIComponent(searchString);
@ -133,17 +84,20 @@ http://www.tipue.com/search
function getTipueSearch(start, replace) function getTipueSearch(start, replace)
{ {
window.scrollTo(0, 0);
var out = ''; var out = '';
var results = '';
var show_replace = false; var show_replace = false;
var show_stop = false; var show_stop = false;
var standard = true; var standard = true;
var c = 0; var c = 0;
found = []; var found = [];
var d_o = $('#tipue_search_input').val(); var d_o = $('#tipue_search_input').val();
d_o = d_o.replace(/\+/g, ' ').replace(/\s\s+/g, ' ');
d_o = $.trim(d_o);
var d = d_o.toLowerCase(); var d = d_o.toLowerCase();
d = $.trim(d);
if ((d.match("^\"") && d.match("\"$")) || (d.match("^'") && d.match("'$"))) if ((d.match("^\"") && d.match("\"$")) || (d.match("^'") && d.match("'$")))
{ {
@ -213,10 +167,10 @@ http://www.tipue.com/search
} }
d_w = d_t.split(' '); d_w = d_t.split(' ');
for (var i = 0; i < tipuesearch_in.pages.length; i++) for (var i = 0; i < tipuesearch.pages.length; i++)
{ {
var score = 0; var score = 0;
var s_t = tipuesearch_in.pages[i].text; var s_t = tipuesearch.pages[i].text;
for (var f = 0; f < d_w.length; f++) for (var f = 0; f < d_w.length; f++)
{ {
if (set.wholeWords) if (set.wholeWords)
@ -227,24 +181,25 @@ http://www.tipue.com/search
{ {
var pat = new RegExp(d_w[f], 'gi'); var pat = new RegExp(d_w[f], 'gi');
} }
if (tipuesearch_in.pages[i].title.search(pat) != -1) if (tipuesearch.pages[i].title.search(pat) != -1)
{ {
var m_c = tipuesearch_in.pages[i].title.match(pat).length; var m_c = tipuesearch.pages[i].title.match(pat).length;
score += (20 * m_c); score += (20 * m_c);
} }
if (tipuesearch_in.pages[i].text.search(pat) != -1) if (tipuesearch.pages[i].text.search(pat) != -1)
{ {
var m_c = tipuesearch_in.pages[i].text.match(pat).length; var m_c = tipuesearch.pages[i].text.match(pat).length;
score += (20 * m_c); score += (20 * m_c);
} }
if (tipuesearch.pages[i].tags)
if (tipuesearch_in.pages[i].tags.search(pat) != -1)
{ {
var m_c = tipuesearch_in.pages[i].tags.match(pat).length; if (tipuesearch.pages[i].tags.search(pat) != -1)
{
var m_c = tipuesearch.pages[i].tags.match(pat).length;
score += (10 * m_c); score += (10 * m_c);
} }
}
if (tipuesearch_in.pages[i].url.search(pat) != -1) if (tipuesearch.pages[i].url.search(pat) != -1)
{ {
score += 20; score += 20;
} }
@ -253,7 +208,7 @@ http://www.tipue.com/search
{ {
for (var e = 0; e < tipuesearch_weight.weight.length; e++) for (var e = 0; e < tipuesearch_weight.weight.length; e++)
{ {
if (tipuesearch_in.pages[i].url == tipuesearch_weight.weight[e].url) if (tipuesearch.pages[i].url == tipuesearch_weight.weight[e].url)
{ {
score += tipuesearch_weight.weight[e].score; score += tipuesearch_weight.weight[e].score;
} }
@ -263,7 +218,7 @@ http://www.tipue.com/search
if (d_w[f].match('^-')) if (d_w[f].match('^-'))
{ {
pat = new RegExp(d_w[f].substring(1), 'i'); 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) if (tipuesearch.pages[i].title.search(pat) != -1 || tipuesearch.pages[i].text.search(pat) != -1 || tipuesearch.pages[i].tags.search(pat) != -1)
{ {
score = 0; score = 0;
} }
@ -275,9 +230,11 @@ http://www.tipue.com/search
found.push( found.push(
{ {
"score": score, "score": score,
"title": tipuesearch_in.pages[i].title, "title": tipuesearch.pages[i].title,
"desc": s_t, "desc": s_t,
"url": tipuesearch_in.pages[i].url "img": tipuesearch.pages[i].img,
"url": tipuesearch.pages[i].url,
"note": tipuesearch.pages[i].note
}); });
c++; c++;
} }
@ -285,29 +242,30 @@ http://www.tipue.com/search
} }
else else
{ {
for (var i = 0; i < tipuesearch_in.pages.length; i++) for (var i = 0; i < tipuesearch.pages.length; i++)
{ {
var score = 0; var score = 0;
var s_t = tipuesearch_in.pages[i].text; var s_t = tipuesearch.pages[i].text;
var pat = new RegExp(d, 'gi'); var pat = new RegExp(d, 'gi');
if (tipuesearch_in.pages[i].title.search(pat) != -1) if (tipuesearch.pages[i].title.search(pat) != -1)
{ {
var m_c = tipuesearch_in.pages[i].title.match(pat).length; var m_c = tipuesearch.pages[i].title.match(pat).length;
score += (20 * m_c); score += (20 * m_c);
} }
if (tipuesearch_in.pages[i].text.search(pat) != -1) if (tipuesearch.pages[i].text.search(pat) != -1)
{ {
var m_c = tipuesearch_in.pages[i].text.match(pat).length; var m_c = tipuesearch.pages[i].text.match(pat).length;
score += (20 * m_c); score += (20 * m_c);
} }
if (tipuesearch.pages[i].tags)
if (tipuesearch_in.pages[i].tags.search(pat) != -1)
{ {
var m_c = tipuesearch_in.pages[i].tags.match(pat).length; if (tipuesearch.pages[i].tags.search(pat) != -1)
{
var m_c = tipuesearch.pages[i].tags.match(pat).length;
score += (10 * m_c); score += (10 * m_c);
} }
}
if (tipuesearch_in.pages[i].url.search(pat) != -1) if (tipuesearch.pages[i].url.search(pat) != -1)
{ {
score += 20; score += 20;
} }
@ -316,7 +274,7 @@ http://www.tipue.com/search
{ {
for (var e = 0; e < tipuesearch_weight.weight.length; e++) for (var e = 0; e < tipuesearch_weight.weight.length; e++)
{ {
if (tipuesearch_in.pages[i].url == tipuesearch_weight.weight[e].url) if (tipuesearch.pages[i].url == tipuesearch_weight.weight[e].url)
{ {
score += tipuesearch_weight.weight[e].score; score += tipuesearch_weight.weight[e].score;
} }
@ -328,35 +286,34 @@ http://www.tipue.com/search
found.push( found.push(
{ {
"score": score, "score": score,
"title": tipuesearch_in.pages[i].title, "title": tipuesearch.pages[i].title,
"desc": s_t, "desc": s_t,
"url": tipuesearch_in.pages[i].url "img": tipuesearch.pages[i].img,
"url": tipuesearch.pages[i].url,
"note": tipuesearch.pages[i].note
}); });
c++; c++;
} }
} }
} }
if (c != 0) if (c !== 0)
{ {
if (set.showTitleCount && tipuesearch_t_c == 0) if (set.showTitleCount && tipuesearch_t_c === 0)
{ {
var title = document.title; var title = document.title;
document.title = '(' + c + ') ' + title; document.title = '(' + c + ') ' + title;
tipuesearch_t_c++; tipuesearch_t_c++;
} }
if (show_replace) if (c === 1)
{
out += '<div id="tipue_search_warning">' + tipuesearch_string_2 + ' ' + d + '. ' + tipuesearch_string_3 + ' <a id="tipue_search_replaced">' + d_r + '</a></div>';
}
if (c == 1)
{ {
out += '<div id="tipue_search_results_count">' + tipuesearch_string_4; out += '<div id="tipue_search_results_count">' + tipuesearch_string_4;
} }
else else
{ {
c_c = c.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); var c_c = c.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
out += '<div id="tipue_search_results_count">' + c_c + ' ' + tipuesearch_string_5; out += '<div id="tipue_search_results_count">' + c_c + ' ' + tipuesearch_string_5;
} }
if (set.showTime) if (set.showTime)
@ -368,13 +325,62 @@ http://www.tipue.com/search
} }
out += '</div>'; out += '</div>';
if (set.showRelated && standard)
{
f = 0;
for (var i = 0; i < tipuesearch_related.Related.length; i++)
{
if (d == tipuesearch_related.Related[i].search)
{
if (!f)
{
out += '<div class="tipue_search_related">' + tipuesearch_string_10 + '</div><div class="tipue_search_related_block">';
}
if (show_replace)
{
d_o = d;
}
if (tipuesearch_related.Related[i].include)
{
var r_d = d_o + ' ' + tipuesearch_related.Related[i].related;
}
else
{
var r_d = tipuesearch_related.Related[i].related;
}
out += '<a class="tipue_search_related_btn" id="' + r_d + '">' + tipuesearch_related.Related[i].related + '</a>';
f++;
}
}
if (f)
{
out += '</div>';
}
}
if (show_replace)
{
out += '<div id="tipue_search_replace">' + tipuesearch_string_2 + ' ' + d + '. ' + tipuesearch_string_3 + ' <a id="tipue_search_replaced">' + d_r + '</a></div>';
}
found.sort(function(a, b) { return b.score - a.score } ); found.sort(function(a, b) { return b.score - a.score } );
var l_o = 0; var l_o = 0;
if (set.imageZoom)
{
out += '<div id="tipue_search_image_modal"><div class="tipue_search_image_close">&#10005;</div><div class="tipue_search_image_block"><a id="tipue_search_zoom_url"><img id="tipue_search_zoom_img"></a><div id="tipue_search_zoom_text"></div></div></div>';
}
for (var i = 0; i < found.length; i++) for (var i = 0; i < found.length; i++)
{ {
if (l_o >= start && l_o < set.show + start) if (l_o >= start && l_o < set.show + start)
{ {
out += '<div class="tipue_search_result">';
out += '<div class="tipue_search_content_title"><a href="' + found[i].url + '"' + tipue_search_w + '>' + found[i].title + '</a></div>'; out += '<div class="tipue_search_content_title"><a href="' + found[i].url + '"' + tipue_search_w + '>' + found[i].title + '</a></div>';
if (set.debug) if (set.debug)
@ -392,6 +398,18 @@ http://www.tipue.com/search
out += '<div class="tipue_search_content_url"><a href="' + found[i].url + '"' + tipue_search_w + '>' + s_u + '</a></div>'; out += '<div class="tipue_search_content_url"><a href="' + found[i].url + '"' + tipue_search_w + '>' + s_u + '</a></div>';
} }
if (found[i].img)
{
if (set.imageZoom)
{
out += '<div class="tipue_search_image"><img class="tipue_search_img tipue_search_image_zoom" src="' + found[i].img + '" alt="' + found[i].title + '" data-url="' + found[i].url + '"></div>';
}
else
{
out += '<div class="tipue_search_image"><a href="' + found[i].url + '"' + tipue_search_w + '><img class="tipue_search_img" src="' + found[i].img + '" alt="' + found[i].title + '"></a></div>';
}
}
if (found[i].desc) if (found[i].desc)
{ {
var t = found[i].desc; var t = found[i].desc;
@ -422,14 +440,14 @@ http://www.tipue.com/search
if (set.highlightTerms) if (set.highlightTerms)
{ {
var patr = new RegExp('(' + d_w[f] + ')', 'gi'); var patr = new RegExp('(' + d_w[f] + ')', 'gi');
t = t.replace(patr, "<span class=\"h0011\">$1</span>"); t = t.replace(patr, "<h0011>$1<h0012>");
} }
} }
} }
else if (set.highlightTerms) else if (set.highlightTerms)
{ {
var patr = new RegExp('(' + d + ')', 'gi'); var patr = new RegExp('(' + d + ')', 'gi');
t = t.replace(patr, "<span class=\"h0011\">$1</span>"); t = t.replace(patr, "<span class=\"tipue_search_content_bold\">$1</span>");
} }
var t_d = ''; var t_d = '';
@ -451,55 +469,32 @@ http://www.tipue.com/search
t_d += ' ...'; t_d += ' ...';
} }
t_d = t_d.replace(/h0011/g, 'tipue_search_content_bold'); t_d = t_d.replace(/h0011/g, 'span class=\"tipue_search_content_bold\"');
t_d = t_d.replace(/h0012/g, '/span');
out += '<div class="tipue_search_content_text">' + t_d + '</div>'; out += '<div class="tipue_search_content_text">' + t_d + '</div>';
} }
}
l_o++; if (found[i].note)
{
out += '<div class="tipue_search_note">' + found[i].note + '</div>';
} }
if (set.showRelated && standard)
{
f = 0;
for (var i = 0; i < tipuesearch_related.searches.length; i++)
{
if (d == tipuesearch_related.searches[i].search)
{
if (show_replace)
{
d_o = d;
}
if (!f)
{
out += '<div class="tipue_search_related_title">' + tipuesearch_string_15 + ' <span class="tipue_search_related_bold">' + d_o + '</span></div><div class="tipue_search_related_cols">';
}
out += '<div class="tipue_search_related_text"><a class="tipue_search_related" id="' + tipuesearch_related.searches[i].related + '">';
if (tipuesearch_related.searches[i].before)
{
out += '<span class="tipue_search_related_before">' + tipuesearch_related.searches[i].before + '</span> ';
}
out += tipuesearch_related.searches[i].related;
if (tipuesearch_related.searches[i].after)
{
out += ' <span class="tipue_search_related_after">' + tipuesearch_related.searches[i].after + '</span>';
}
out += '</a></div>';
f++;
}
}
if (f)
{
out += '</div>'; out += '</div>';
} }
l_o++;
} }
if (c > set.show) if (c > set.show)
{ {
var pages = Math.ceil(c / set.show); var pages = Math.ceil(c / set.show);
var page = (start / set.show); var page = (start / set.show);
out += '<nav><div id="tipue_search_foot"><ul id="tipue_search_foot_boxes">'; if (set.footerPages < 3)
{
set.footerPages = 3;
}
out += '<div id="tipue_search_foot"><ul id="tipue_search_foot_boxes">';
if (start > 0) if (start > 0)
{ {
@ -509,9 +504,9 @@ http://www.tipue.com/search
if (page <= 2) if (page <= 2)
{ {
var p_b = pages; var p_b = pages;
if (pages > 3) if (pages > set.footerPages)
{ {
p_b = 3; p_b = set.footerPages;
} }
for (var f = 0; f < p_b; f++) for (var f = 0; f < p_b; f++)
{ {
@ -527,7 +522,7 @@ http://www.tipue.com/search
} }
else else
{ {
var p_b = page + 2; var p_b = page + set.footerPages - 1;
if (p_b > pages) if (p_b > pages)
{ {
p_b = pages; p_b = pages;
@ -550,30 +545,30 @@ http://www.tipue.com/search
out += '<li role="navigation"><a class="tipue_search_foot_box" accesskey="m" id="' + (start + set.show) + '_' + replace + '">' + tipuesearch_string_7 + '</a></li>'; out += '<li role="navigation"><a class="tipue_search_foot_box" accesskey="m" id="' + (start + set.show) + '_' + replace + '">' + tipuesearch_string_7 + '</a></li>';
} }
out += '</ul></div></nav>'; out += '</ul></div>';
} }
} }
else else
{ {
out += '<div id="tipue_search_warning">' + tipuesearch_string_8 + '</div>'; out += '<div id="tipue_search_error">' + tipuesearch_string_8 + '</div>';
} }
} }
else else
{ {
if (show_stop) if (show_stop)
{ {
out += '<div id="tipue_search_warning">' + tipuesearch_string_8 + '. ' + tipuesearch_string_9 + '</div>'; out += '<div id="tipue_search_error">' + tipuesearch_string_8 + ' ' + tipuesearch_string_9 + '</div>';
} }
else else
{ {
out += '<div id="tipue_search_warning">' + tipuesearch_string_10 + '</div>';
if (set.minimumLength == 1) if (set.minimumLength == 1)
{ {
out += '<div id="tipue_search_warning">' + tipuesearch_string_11 + '</div>'; out += '<div id="tipue_search_error">' + tipuesearch_string_11 + '</div>';
} }
else else
{ {
out += '<div id="tipue_search_warning">' + tipuesearch_string_12 + ' ' + set.minimumLength + ' ' + tipuesearch_string_13 + '</div>'; out += '<div id="tipue_search_error">' + tipuesearch_string_12 + ' ' + set.minimumLength + ' ' + tipuesearch_string_13 + '</div>';
} }
} }
} }
@ -585,12 +580,30 @@ http://www.tipue.com/search
getTipueSearch(0, false); getTipueSearch(0, false);
}); });
$('.tipue_search_related').click(function() $('.tipue_search_related_btn').click(function()
{ {
$('#tipue_search_input').val($(this).attr('id')); $('#tipue_search_input').val($(this).attr('id'));
getTipueSearch(0, true); getTipueSearch(0, true);
}); });
$('.tipue_search_image_zoom').click(function()
{
$('#tipue_search_image_modal').fadeIn(300);
$('#tipue_search_zoom_img').attr('src', this.src);
var z_u = $(this).attr('data-url');
$('#tipue_search_zoom_url').attr('href', z_u);
var z_o = this.alt + '<div class="tipue_search_zoom_options"><a href="' + this.src + '" target="_blank">' + tipuesearch_string_15 + '</a>&nbsp; <a href="' + z_u + '">' + tipuesearch_string_16 + '</a></div>';
$('#tipue_search_zoom_text').html(z_o);
});
$('.tipue_search_image_close').click(function()
{
$('#tipue_search_image_modal').fadeOut(300);
});
$('.tipue_search_foot_box').click(function() $('.tipue_search_foot_box').click(function()
{ {
var id_v = $(this).attr('id'); var id_v = $(this).attr('id');

View file

@ -0,0 +1,84 @@
/*
Tipue Search 7.0
Copyright (c) 2018 Tipue
Tipue Search is released under the MIT License
http://www.tipue.com/search
*/
/*
Stop words
Stop words list from http://www.ranks.nl/stopwords
*/
var tipuesearch_stop_words = ["a", "above", "after", "again", "against", "all", "am", "an", "and", "any", "are", "aren't", "as", "at", "be", "because", "been", "before", "being", "below", "between", "both", "but", "by", "can't", "cannot", "could", "couldn't", "did", "didn't", "do", "does", "doesn't", "doing", "don't", "down", "during", "each", "few", "for", "from", "further", "had", "hadn't", "has", "hasn't", "have", "haven't", "having", "he", "he'd", "he'll", "he's", "her", "here", "here's", "hers", "herself", "him", "himself", "his", "how", "how's", "i", "i'd", "i'll", "i'm", "i've", "if", "in", "into", "is", "isn't", "it", "it's", "its", "itself", "let's", "me", "more", "most", "mustn't", "my", "myself", "no", "nor", "not", "of", "off", "on", "once", "only", "or", "other", "ought", "our", "ours", "ourselves", "out", "over", "own", "same", "shan't", "she", "she'd", "she'll", "she's", "should", "shouldn't", "so", "some", "such", "than", "that", "that's", "the", "their", "theirs", "them", "themselves", "then", "there", "there's", "these", "they", "they'd", "they'll", "they're", "they've", "this", "those", "through", "to", "too", "under", "until", "up", "very", "was", "wasn't", "we", "we'd", "we'll", "we're", "we've", "were", "weren't", "what", "what's", "when", "when's", "where", "where's", "which", "while", "who", "who's", "whom", "why", "why's", "with", "won't", "would", "wouldn't", "you", "you'd", "you'll", "you're", "you've", "your", "yours", "yourself", "yourselves"];
// Word replace
var tipuesearch_replace = {'words': [
{'word': 'tip', 'replace_with': 'tipue'},
{'word': 'javscript', 'replace_with': 'javascript'},
{'word': 'jqeury', 'replace_with': 'jquery'}
]};
// Weighting
var tipuesearch_weight = {'weight': [
{'url': 'http://www.tipue.com', 'score': 60},
{'url': 'http://www.tipue.com/search', 'score': 60},
{'url': 'http://www.tipue.com/tipr', 'score': 30},
{'url': 'http://www.tipue.com/support', 'score': 20}
]};
// Illogical stemming
var tipuesearch_stem = {'words': [
{'word': 'e-mail', 'stem': 'email'},
{'word': 'javascript', 'stem': 'jquery'},
{'word': 'javascript', 'stem': 'js'}
]};
// Related
var tipuesearch_related = {'Related': [
{'search': 'tipue', 'related': 'Search', 'include': 1},
{'search': 'tipue', 'related': 'jQuery'},
{'search': 'tipue', 'related': 'Features'},
{'search': 'tipue', 'related': 'Support'},
{'search': 'tipue search', 'related': 'Help', 'include': 1},
{'search': 'tipue search', 'related': 'Support'}
]};
// Internal strings
var tipuesearch_string_1 = 'No title';
var tipuesearch_string_2 = 'Showing results for';
var tipuesearch_string_3 = 'Search instead for';
var tipuesearch_string_4 = '1 result';
var tipuesearch_string_5 = 'results';
var tipuesearch_string_6 = '<';
var tipuesearch_string_7 = '>';
var tipuesearch_string_8 = 'Nothing found.';
var tipuesearch_string_9 = 'Common words are largely ignored.';
var tipuesearch_string_10 = 'Related';
var tipuesearch_string_11 = 'Search too short. Should be one character or more.';
var tipuesearch_string_12 = 'Search too short. Should be';
var tipuesearch_string_13 = 'characters or more.';
var tipuesearch_string_14 = 'seconds';
var tipuesearch_string_15 = 'Open Image';
var tipuesearch_string_16 = 'Goto Page';
// Internals
// Timer for showTime
var startTimer = new Date().getTime();

View file

@ -4,6 +4,10 @@
font: inherit; font: inherit;
color: inherit; color: inherit;
// For border
border: 1px solid #e2e2e2;
border-color: transparent;
width: 40px; width: 40px;
border-color: rgba(0, 0, 0, 0); border-color: rgba(0, 0, 0, 0);

View file

@ -0,0 +1,337 @@
/*
Tipue Search 7.0
Copyright (c) 2018 Tipue
Tipue Search is released under the MIT License
http://www.tipue.com/search
*/
/* basics */
.tipue_search_group:after
{
content: "";
display: table;
clear: both;
}
/* fonts, colors */
.tipue_search_icon
{
font: 300 24px/1 sans-serif;
color: #777;
}
#tipue_search_results_count, .tipue_search_related, .tipue_search_note
{
font: 12px/1.3 monospace;
text-transform: uppercase;
color: #999;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
#tipue_search_replace, #tipue_search_error, .tipue_search_content_text
{
font: 300 16px/1.6 sans-serif;
color: #666;
}
#tipue_search_replace a
{
color: #339e41;
text-decoration: none;
}
#tipue_search_replace a:hover
{
color: #666;
}
.tipue_search_related_btn
{
font: 11px/1 monospace;
color: #666;
text-transform: uppercase;
letter-spacing: 1px;
background-color: #f7f7f7;
}
.tipue_search_content_title
{
font: 300 30px/1.2 sans-serif;
color: #333;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.tipue_search_content_title a
{
color: #333;
text-decoration: none;
}
.tipue_search_content_url, .tipue_search_content_debug
{
font: 300 15px/1.7 sans-serif;
color: #333;
}
.tipue_search_content_url a
{
color: #339e41;
text-decoration: none;
}
.tipue_search_content_url a:hover
{
color: #666;
}
.tipue_search_content_bold
{
font-weight: 400;
color: #333;
}
.tipue_search_note a
{
color: #999;
text-decoration: none;
}
.tipue_search_image_close
{
font: 22px/1 monospace;
color: #ccc;
}
#tipue_search_zoom_text
{
font: 11px/1.7 monospace;
color: #ccc;
text-transform: uppercase;
letter-spacing: 1px;
}
#tipue_search_zoom_text a
{
color: #ccc;
text-decoration: none;
border-bottom: 2px solid #f7f7f7;
}
#tipue_search_zoom_text a:hover
{
border: 0;
}
#tipue_search_foot_boxes
{
font: 13px/1 sans-serif;
text-transform: uppercase;
color: #333;
}
#tipue_search_foot_boxes li a
{
background-color: #f7f7f7;
color: #666;
}
#tipue_search_foot_boxes li.current
{
background: #252525;
color: #ccc;
}
#tipue_search_foot_boxes li a:hover, .tipue_search_related_btn:hover
{
background: #252525;
color: #ccc;
}
/* search box */
.tipue_search_button
{
position: relative;
float: left;
width: 47px;
height: 56px;
margin-left: -3px;
background-color: #f3f3f3;
border: none;
border-radius: 3px;
box-sizing: border-box;
cursor: pointer;
outline: 0;
}
.tipue_search_icon
{
float: left;
transform: rotate(-45deg);
-moz-appearance: none;
-webkit-appearance: none;
box-sizing: border-box;
box-shadow: none;
outline: 0;
margin: -1px 0 0 8px;
}
/* search results */
#tipue_search_content
{
max-width: 100%;
margin: 0;
}
.tipue_search_result
{
padding-top: 21px;
}
#tipue_search_results_count
{
padding-top: 9px;
}
.tipue_search_related
{
padding-top: 13px;
}
.tipue_search_related_block
{
padding-bottom: 6px;
}
#tipue_search_warning
{
padding-top: 10px;
}
.tipue_search_related_btn
{
display: inline-block;
padding: 9px 10px;
text-decoration: none;
text-align: center;
border-radius: 3px;
margin: 9px 9px 0 0;
outline: 0;
transition: 0.2s;
cursor: pointer;
}
#tipue_search_replace
{
padding-top: 13px;
}
#tipue_search_error
{
padding-top: 13px;
}
.tipue_search_content_url
{
padding-top: 3px;
word-wrap: break-word;
hyphens: auto;
}
.tipue_search_content_text
{
word-wrap: break-word;
hyphens: auto;
margin-top: 1px;
}
.tipue_search_note
{
padding-top: 5px;
}
.tipue_search_content_debug
{
margin: 5px 0;
}
/* images */
.tipue_search_image
{
padding: 9px 0 6px 0;
}
.tipue_search_img
{
width: 200px;
max-width: 100%;
height: auto;
transition: 0.5s;
border-radius: 1px;
}
.tipue_search_img:hover
{
opacity: 0.7;
}
.tipue_search_image_zoom
{
cursor: pointer;
}
#tipue_search_image_modal
{
display: none;
position: fixed;
z-index: 1000;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0, 0, 0, 0.9);
}
.tipue_search_image_close
{
position: absolute;
top: 0;
right: 0;
padding: 25px 30px;
cursor: pointer;
}
.tipue_search_image_block
{
margin: 0 auto;
max-width: 900px;
padding: 73px 30px 30px 30px;
box-sizing: border-box;
color: #fff;
}
#tipue_search_zoom_img
{
max-width: 100%;
height: auto;
}
#tipue_search_zoom_text, .tipue_search_zoom_options
{
padding-top: 9px;
}
/* footer */
#tipue_search_foot
{
margin: 51px 0 21px 0;
}
#tipue_search_foot_boxes
{
padding: 0;
margin: 0;
cursor: pointer;
}
#tipue_search_foot_boxes li
{
display: inline;
list-style: none;
margin: 0;
padding: 0;
}
#tipue_search_foot_boxes li a
{
padding: 10px 17px 11px 17px;
border-radius: 3px;
margin-right: 7px;
text-decoration: none;
text-align: center;
transition: 0.2s;
}
#tipue_search_foot_boxes li.current
{
padding: 10px 17px 11px 17px;
border-radius: 3px;
margin-right: 7px;
text-align: center;
}

View file

@ -17,19 +17,26 @@ title: Search
</div> </div>
</div> </div>
<% content_for :head do %>
<!-- CSS -->
<!-- TiptueSearch CSS -->
<link rel="stylesheet" href="/assets/stylesheets/tipuesearch/tipuesearch.css" >
<% end %>
<% content_for :scripts do %> <% content_for :scripts do %>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Tipue-Search/5.0.0/tipuesearch_set.js"></script> <script src="https://code.jquery.com/jquery-3.0.0.min.js" charset="utf-8"></script>
<%= asset :js, :tipuesearch_set %>
<%= asset :js, :tipuesearch %> <%= asset :js, :tipuesearch %>
<script> <script>
$(document).ready(function() { $(document).ready(function() {
$('#tipue_search_input_field').tipuesearch({ $('#tipue_search_input_field').tipuesearch({
'mode': 'json', 'wholeWords': false,
'showTitleCount': false, 'showTitleCount': false,
'tipue_search_content': '#blog_results', 'tipue_search_content': '#blog_results',
'contentLocation': '../blog_search.json' 'contentLocation': '../blog_search.json'
}); });
$('#tipue_search_input_field').tipuesearch({ $('#tipue_search_input_field').tipuesearch({
'mode': 'json', 'wholeWords': false,
'showTitleCount': false, 'showTitleCount': false,
'tipue_search_content': '#event_results', 'tipue_search_content': '#event_results',
'contentLocation': '../event_search.json' 'contentLocation': '../event_search.json'

View file

@ -26,10 +26,6 @@
ga('send', 'pageview'); ga('send', 'pageview');
</script> </script>
<!-- CSS -->
<!-- TiptueSearch CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Tipue-Search/5.0.0/tipuesearch.css" >
<!-- Custom CSS --> <!-- Custom CSS -->
<%= asset :css, :main %> <%= asset :css, :main %>

View file

@ -14,7 +14,7 @@ module SearchHelper
{ {
title: e[:title], title: e[:title],
url: url_for(e), url: url_for(e),
text: excerptize(e.reps[:text].compiled_content, length: 200).tr("\n", ' '), text: "#{e[:title]} #{e.reps[:text].compiled_content}",
tags: '' tags: ''
} }
end end