diff --git a/layouts/articles.html b/layouts/articles.html
index d691974..a2b6270 100644
--- a/layouts/articles.html
+++ b/layouts/articles.html
@@ -2,20 +2,13 @@
<%= render '_head' %>
-
-
- <% if @item.identifier =~ %r{/page/$} %>
+
+
+
+
- <% else %>
-
- <% end %>
<%= render '_header' %>
diff --git a/lib/articles.rb b/lib/articles.rb
index 49fa6ba..ecdd83f 100644
--- a/lib/articles.rb
+++ b/lib/articles.rb
@@ -17,7 +17,9 @@ module WezM
:title => article[:title],
:path => article.identifier,
:date => Time.parse(article[:created_at]).rfc2822,
- :summary => article[:summary]
+ :summary => article[:summary],
+ :text => article[:title],
+ :extra => article[:summary]
}
end
diff --git a/output/css/jsonSuggest.css b/output/css/jsonSuggest.css
new file mode 100755
index 0000000..c59e596
--- /dev/null
+++ b/output/css/jsonSuggest.css
@@ -0,0 +1,49 @@
+
+div.jsonSuggestResults {
+ position:absolute;
+ border:1px solid #CCC;
+ padding:0px;
+ margin:0px 2px;
+ z-index:1;
+}
+
+div.jsonSuggestResults div.resultItem {
+ margin:0px;
+ padding:5px;
+ position:relative;
+ height:auto;
+ cursor:pointer;
+}
+
+div.jsonSuggestResults div.resultItem.odd {
+ background-color:#9ADFFE;
+}
+div.jsonSuggestResults div.resultItem.even {
+ background-color:#FFFFFF;
+}
+
+div.jsonSuggestResults div.resultItem.hover {
+ background-color:#3399FF;
+}
+
+div.jsonSuggestResults div.resultItem img {
+ float:left;
+ margin-right:10px;
+}
+
+div.jsonSuggestResults div.resultItem p {
+ margin:0px;
+ padding:0px;
+}
+
+div.jsonSuggestResults div.resultItem p strong {
+ font-weight:bold;
+ text-decoration:underline;
+}
+
+div.jsonSuggestResults div.resultItem p.extra {
+ font-size: x-small !important;
+ position:absolute;
+ bottom:3px;
+ right: 3px;
+}
\ No newline at end of file
diff --git a/output/js/articles.js b/output/js/articles.js
index 420cc83..6da3eb8 100644
--- a/output/js/articles.js
+++ b/output/js/articles.js
@@ -3,6 +3,25 @@
var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
var per_page = 10;
+ function search_item_selected(item) {
+ };
+
+ function show_javascript_widgets() {
+ $('.pagination').show();
+ $('#search').show();
+ $('#search input').jsonSuggest(articles, {
+ onSelect: search_item_selected,
+ width: 400
+ });
+ };
+
+ function webkit_search_tweak() {
+ if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0) {
+ $('#search input').css('paddingTop', 0);
+ }
+ };
+
+
function render_article(o) {
return '\n\
\n\
@@ -35,6 +54,9 @@
var page;
var matches;
var page_fragment = e.fragment;
+ if(!page_fragment) {
+ page_fragment = $.param.fragment();
+ }
if(matches = page_fragment.match(/(\d+)$/)) {
page = new Number(matches[1]);
}
@@ -76,5 +98,9 @@
};
// Load articles JSON ASAP
- jQuery.getJSON('../json/articles.json', {}, articles_loaded);
+ var path = 'json/articles.json';
+ if(document.location.pathname.match(/page\/$/)) {
+ path = '../json/articles.json';
+ }
+ jQuery.getJSON(path, {}, articles_loaded);
})();
diff --git a/output/js/jquery.jsonSuggest.js b/output/js/jquery.jsonSuggest.js
new file mode 100755
index 0000000..113a4aa
--- /dev/null
+++ b/output/js/jquery.jsonSuggest.js
@@ -0,0 +1,25 @@
+
+(function($){$.fn.jsonSuggest=function(searchData,settings){var defaults={minCharacters:1,maxResults:undefined,wildCard:"",caseSensitive:false,notCharacter:"!",maxHeight:350,highlightMatches:true,onSelect:undefined,ajaxResults:false};settings=$.extend(defaults,settings);return this.each(function(){function regexEscape(txt,omit){var specials=['/','.','*','+','?','|','(',')','[',']','{','}','\\'];if(omit){for(var i=0;i'),currentSelection,pageX,pageY;function selectResultItem(item){obj.val(item.text);$(results).html('').hide();if(typeof settings.onSelect==='function'){settings.onSelect(item);}}
+function setHoverClass(el){$('div.resultItem',results).removeClass('hover');$(el).addClass('hover');currentSelection=el;}
+function buildResults(resultObjects,sFilterTxt){sFilterTxt="("+sFilterTxt+")";var bOddRow=true,i,iFound=0,filterPatt=settings.caseSensitive?new RegExp(sFilterTxt,"g"):new RegExp(sFilterTxt,"ig");$(results).html('').hide();for(i=0;i'),text=resultObjects[i].text;if(settings.highlightMatches===true){text=text.replace(filterPatt,"$1");}
+$(item).append(''+text+'
');if(typeof resultObjects[i].extra==='string'){$(item).append('');}
+if(typeof resultObjects[i].image==='string'){$(item).prepend('').append('
');}
+$(item).addClass('resultItem').addClass((bOddRow)?'odd':'even').click(function(n){return function(){selectResultItem(resultObjects[n]);};}(i)).mouseover(function(el){return function(){setHoverClass(el);};}(item));$(results).append(item);bOddRow=!bOddRow;iFound+=1;if(typeof settings.maxResults==='number'&&iFound>=settings.maxResults){break;}}
+if($('div',results).length>0){currentSelection=undefined;$(results).show().css('height','auto');if($(results).height()>settings.maxHeight){$(results).css({'overflow':'auto','height':settings.maxHeight+'px'});}}}
+function runSuggest(e){if(this.value.length0){bMatch=false;}}
+sFilterTxt=sFilterTxt||'.*';sFilterTxt=settings.wildCard?'^'+sFilterTxt:sFilterTxt;filterPatt=settings.caseSensitive?new RegExp(sFilterTxt):new RegExp(sFilterTxt,"i");if(settings.ajaxResults===true){resultObjects=searchData(this.value,settings.wildCard,settings.caseSensitive,settings.notCharacter);if(typeof resultObjects==='string'){resultObjects=JSON.parse(resultObjects);}}
+else{for(i=0;iresPos.bottom||pageXresPos.right){$(results).hide();}}).focus(function(e){$(results).css({'top':(obj.position().top+obj.height()+5)+'px','left':obj.position().left+'px'});if($('div',results).length>0){$(results).show();}}).attr('autocomplete','off');$().mousemove(function(e){pageX=e.pageX;pageY=e.pageY;});if($.browser.opera){obj.keydown(function(e){if(e.keyCode===40){return keyListener(e);}});}
+settings.notCharacter=regexEscape(settings.notCharacter||'');if(!settings.ajaxResults){if(typeof searchData==='function'){searchData=searchData();}
+if(typeof searchData==='string'){searchData=JSON.parse(searchData);}}});};})(jQuery);
\ No newline at end of file