proscribe 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/HISTORY.md CHANGED
@@ -1,3 +1,9 @@
1
+ v0.0.5 - Aug 01, 2011
2
+ ---------------------
3
+
4
+ ### Added:
5
+ * Searching.
6
+
1
7
  v0.0.4 - Aug 01, 2011
2
8
  ---------------------
3
9
 
@@ -0,0 +1,25 @@
1
+ # Subject to debate.
2
+ task :default do
3
+ exec 'rake -s -T'
4
+ end
5
+
6
+ desc "Runs tests."
7
+ task :test do
8
+ $:.unshift File.join(File.dirname(__FILE__), 'test')
9
+
10
+ Dir['test/{unit,stories}/*.rb'].each { |file| load file }
11
+ end
12
+
13
+ namespace :doc do
14
+ desc "Update documentation."
15
+ task :update do
16
+ # gem proscribe ~> 0.0.2
17
+ system "proscribe build"
18
+ end
19
+
20
+ desc "Updates the Aura homepage with the manual."
21
+ task :deploy => :update do
22
+ # http://github.com/rstacruz/git-update-ghpages
23
+ system "git update-ghpages rstacruz/proscribe --branch gh-pages -i doc/"
24
+ end
25
+ end
@@ -4,7 +4,7 @@ module Proton::Helpers
4
4
  of_type = lambda { |str| children.select { |p| p.html? && p.meta.page_type == str } }
5
5
 
6
6
  children.
7
- select { |p| p.html? }.
7
+ select { |p| p.html? && p.path =~ /.html$/ }.
8
8
  group_by { |p|
9
9
  type = p.meta.page_type
10
10
  type.nil? ? nil : Inflector[type].pluralize.to_sym
@@ -20,7 +20,8 @@
20
20
 
21
21
  %script{src: 'http://cachedcommons.org/cache/prettify/1.0.0/javascripts/prettify-min.js', type: 'text/javascript'}
22
22
  %script{src: 'http://cdnjs.cloudflare.com/ajax/libs/jquery/1.6.2/jquery.min.js', type: 'text/javascript'}
23
- %script{src: rel('/proscribe.js')+"?#{File.mtime(Proton::Page['/proscribe.js'].file).to_i}", type: 'text/javascript'}
23
+ %script{src: rel('/underscore.js')+"?#{File.mtime(Proton::Page['/underscore.js'].file).to_i}", type: 'text/javascript'}
24
+ %script#proscribe-js{src: rel('/proscribe.js')+"?#{File.mtime(Proton::Page['/proscribe.js'].file).to_i}", type: 'text/javascript'}
24
25
  %body
25
26
  #top
26
27
  %a#logo{href: rel('/')}
@@ -28,6 +29,10 @@
28
29
 
29
30
  #area
30
31
  #content
32
+ %section#search
33
+ %input{type: "text", placeholder: "Search..."}
34
+ %ul.results
35
+
31
36
  %div.c
32
37
  #crumbs
33
38
  - page.breadcrumbs[0..-2].each do |p|
@@ -79,7 +84,7 @@
79
84
 
80
85
  %nav#nav
81
86
  - parent = (page.children.any? ? page : (page.parent || page))
82
- - children = parent.children.select { |p| p.html? }
87
+ - children = parent.children.select { |p| p.html? && p.path =~ /.html$/ }
83
88
  - groups = children.group_by { |p| p.meta.page_type }
84
89
 
85
90
  - if parent && !parent.root?
@@ -110,3 +115,4 @@
110
115
  %a{href: rel(pp.path), class: classes.join(' ')}
111
116
  = pp
112
117
 
118
+ %script{src: rel('/search_index.js')+"?#{Time.now.to_i}", type: 'text/javascript'}
@@ -1,4 +1,6 @@
1
1
  $(function () {
2
+ var urlPrefix = $("#proscribe-js").attr('src').match(/^(.*)\/[^.]+.js[\?0-9]*/)[1];
3
+
2
4
  $("h4").each(function() {
3
5
  var $this = $(this);
4
6
 
@@ -47,6 +49,111 @@ $(function () {
47
49
  }
48
50
  });
49
51
 
52
+ function searchToPages(dict) {
53
+ // {"0":4, "1":5} -- this is a pair of `page_id` => `result_score`.
54
+
55
+ list = _.map(dict, function(val, key) { return [key, val]; }); // {a:2} => [[a,2]] (pageid => score)
56
+ list = _.sortBy(list, function(a) { return -1 * a[1]; });
57
+ ids = _.map(list, function(a) { return parseInt(a[0]); }); // Basically Hash#keys, now an array of page_id's
58
+ return _.map(ids, function(id) { return PageIndex[id] });
59
+ }
60
+
61
+ function search(keyword) {
62
+ var words = keyword.toLowerCase().split(' ');
63
+
64
+ var results = {};
65
+ _.each(words, function(word) {
66
+ results = SearchIndex[word];
67
+ });
68
+
69
+ return searchToPages(results);
70
+ }
71
+
72
+ window.search = search;
73
+
74
+ $("#search input").live('keyup', function(e) {
75
+ if (e.keyCode == 13) {
76
+ var $a = $("#search .results > .active a");
77
+ if ($a.length) {
78
+ window.location = $a.attr('href');
79
+ return false;
80
+ };
81
+ }
82
+ if ((e.keyCode == 40) || (e.keyCode == 38)) { // DOWN and UP
83
+ var dir = e.keyCode == 40 ? 'next' : 'prev';
84
+
85
+ var links = $("#search .results li");
86
+ var active = $("#search .results .active");
87
+ var next = active[dir]();
88
+
89
+ if (active.length && next.length) {
90
+ active.removeClass('active');
91
+ next.addClass('active');
92
+ }
93
+
94
+ return false;
95
+ }
96
+
97
+ var template = _.template(
98
+ "<li>" +
99
+ "<a href='<%= url %>'>" +
100
+ "<strong>" +
101
+ "<%= title %> <span><%= type %></span>" +
102
+ "</strong>" +
103
+ "<span>" +
104
+ "<% if (parent) { %>" +
105
+ "<%= parent.title %> &rsaquo; <%= title %>" +
106
+ "<% } %>" +
107
+ "</span>" +
108
+ "</a>" +
109
+ "</li>");
110
+ var keyword = $(this).val();
111
+ results = search(keyword); // Array of {title: __, url: __}
112
+
113
+ var $el = $("#search .results");
114
+ $el.show();
115
+ $el.html('');
116
+
117
+
118
+ // Limit results
119
+ results = results.slice(0, 12);
120
+
121
+ _.each(results, function(page) {
122
+ // Build the options for the tempalte
123
+ o = _.extend({}, page);
124
+
125
+ _.each(keyword.split(' '), function(word) {
126
+ console.log("Replacing ", word, " in ", o.title);
127
+ o.title = o.title.replace(new RegExp(word, 'i'), function (n) {
128
+ return "<em class='highlight'>" + n + "</em>";
129
+ });
130
+ });
131
+
132
+ o.url = urlPrefix + page.url;
133
+ o.parent = PageIndex[page.parent];
134
+
135
+ $el.append(template(o));
136
+ });
137
+
138
+ $el.find(':first-child').addClass('active');
139
+ });
140
+
141
+ $("#search .results li").live('hover', function() {
142
+ var $results = $(this).closest('ul');
143
+ $results.find('.active').removeClass('active');
144
+ $(this).addClass('active');
145
+ });
146
+
147
+ $("#search .results").live('mouseout', function() {
148
+ var $results = $(this);
149
+ $results.find('.active').removeClass('active');
150
+ $results.find('>:first-child').addClass('active');
151
+ });
152
+
153
+
154
+ $("body").live('click', function() {
155
+ $("#search .results").hide();
156
+ });
157
+
50
158
  prettyPrint();
51
159
  });
52
-
@@ -0,0 +1,43 @@
1
+ layout: false
2
+ --
3
+ <%
4
+ require 'json'
5
+ stopwords = %w(a an and are as at be but by for if in into is) +
6
+ %w(it no not of on or s such t that the their then) +
7
+ %w(there these they this to was will with) +
8
+ %w(class method return end if else)
9
+
10
+ pages = page.project.pages.select { |p| p.html? && p != page && !p.root? }
11
+ index = Hash.new { |hash, k| hash[k] = Hash.new { |hh, kk| hh[kk] = 0 } }
12
+ words = lambda { |str| str.to_s.downcase.scan(/[A-Za-z0-9\_]+/) }
13
+ fuzzies = lambda { |str| str = str.to_s.downcase; (1...str.size).map { |n| str[0..n] } }
14
+ fuzzy_words = lambda { |str|
15
+ words[str].map { |word| fuzzies[word] if word.size > 2 and !stopwords.include?(word) }.compact.flatten
16
+ }
17
+
18
+ urls = pages.map { |p| p.path }
19
+
20
+ page_index = pages.inject([]) { |h, p| h << { :title => p.to_s, :url => p.path, :type => p.meta.page_type.to_s.capitalize || '', :parent => (urls.index(p.parent.path) if p.parent?) }; h }
21
+
22
+ pages.each do |p|
23
+ i = urls.index(p.path)
24
+
25
+ if p.to_s.count(' ') > 0
26
+ # Partial title match
27
+ fuzzy_words[p].each { |word| index[word][i] += 30 }
28
+
29
+ else
30
+ # Exact title match
31
+ fuzzy_words[p].each { |word| index[word][i] += 60 }
32
+ end
33
+
34
+ # Fuzzy title match
35
+ fuzzy_words[p].each { |word| index[word][i] += 3 }
36
+
37
+ # p content
38
+ fuzzy_words[p.content].each { |word| index[word][i] += 1 }
39
+ end
40
+ %>
41
+
42
+ window.SearchIndex = (<%= index.to_json %>);
43
+ window.PageIndex = (<%= page_index.to_json %>);
@@ -492,6 +492,68 @@ section.footer {
492
492
  font-style: normal; }
493
493
  }
494
494
 
495
+ // Search
496
+ #search {
497
+ position: absolute; right: 0; top: -32px; z-index: 10;
498
+ float: right;
499
+
500
+ form {
501
+ display: inline; }
502
+
503
+ input {
504
+ padding: 2px 10px; height: 18px; background: white;
505
+ width: 130px;
506
+ border: 0;
507
+ background: #ddd;
508
+ @include border-radius(13px);
509
+ @include box-shadow(-1px -1px 0 rgba(black, 0.2), inset 0 0 2px rgba(black, 0.1)); }
510
+
511
+ input:active, input:focus {
512
+ @include box-shadow(0 0 4px #7bd, inset 0 0 4px rgba(#7bd, 0.6));
513
+ background: white; color: #333;
514
+ outline: 0; }
515
+
516
+ .results {
517
+ display: none;
518
+ background: white;
519
+ font-size: 7pt;
520
+ width: 200px;
521
+ position: absolute; top: 32px; right: 0;
522
+ z-index: 20;
523
+
524
+ @include box-shadow(2px 2px 0 rgba(black, 0.1), 0 0 2px rgba(black, 0.08));
525
+
526
+ em.highlight {
527
+ color: #a96; background: #fefee8; }
528
+
529
+ &, li { list-style-type: none; margin: 0; padding: 0; }
530
+
531
+ li {
532
+ border-bottom: solid 1px #eee; }
533
+
534
+ a {
535
+ height: 3.2em; overflow: hidden;
536
+ display: block; padding: 5px 10px; color: #999; }
537
+
538
+ a span {
539
+ color: #aaa; }
540
+
541
+ li.active a {
542
+ background: #eee; color: #444; }
543
+
544
+ strong {
545
+ overflow: hidden;
546
+ display: block; font-weight: bold; font-size: 8pt;
547
+ color: #333; }
548
+
549
+ strong span {
550
+ float: right;
551
+ font-size: 7pt;
552
+ margin-top: 1px;
553
+ color: #999; font-weight: normal; }
554
+ }
555
+ }
556
+
495
557
  //
496
558
  // Prettify
497
559
  //
@@ -0,0 +1,27 @@
1
+ // Underscore.js 1.1.7
2
+ // (c) 2011 Jeremy Ashkenas, DocumentCloud Inc.
3
+ // Underscore is freely distributable under the MIT license.
4
+ // Portions of Underscore are inspired or borrowed from Prototype,
5
+ // Oliver Steele's Functional, and John Resig's Micro-Templating.
6
+ // For all details and documentation:
7
+ // http://documentcloud.github.com/underscore
8
+ (function(){var p=this,C=p._,m={},i=Array.prototype,n=Object.prototype,f=i.slice,D=i.unshift,E=n.toString,l=n.hasOwnProperty,s=i.forEach,t=i.map,u=i.reduce,v=i.reduceRight,w=i.filter,x=i.every,y=i.some,o=i.indexOf,z=i.lastIndexOf;n=Array.isArray;var F=Object.keys,q=Function.prototype.bind,b=function(a){return new j(a)};typeof module!=="undefined"&&module.exports?(module.exports=b,b._=b):p._=b;b.VERSION="1.1.7";var h=b.each=b.forEach=function(a,c,b){if(a!=null)if(s&&a.forEach===s)a.forEach(c,b);else if(a.length===
9
+ +a.length)for(var e=0,k=a.length;e<k;e++){if(e in a&&c.call(b,a[e],e,a)===m)break}else for(e in a)if(l.call(a,e)&&c.call(b,a[e],e,a)===m)break};b.map=function(a,c,b){var e=[];if(a==null)return e;if(t&&a.map===t)return a.map(c,b);h(a,function(a,g,G){e[e.length]=c.call(b,a,g,G)});return e};b.reduce=b.foldl=b.inject=function(a,c,d,e){var k=d!==void 0;a==null&&(a=[]);if(u&&a.reduce===u)return e&&(c=b.bind(c,e)),k?a.reduce(c,d):a.reduce(c);h(a,function(a,b,f){k?d=c.call(e,d,a,b,f):(d=a,k=!0)});if(!k)throw new TypeError("Reduce of empty array with no initial value");
10
+ return d};b.reduceRight=b.foldr=function(a,c,d,e){a==null&&(a=[]);if(v&&a.reduceRight===v)return e&&(c=b.bind(c,e)),d!==void 0?a.reduceRight(c,d):a.reduceRight(c);a=(b.isArray(a)?a.slice():b.toArray(a)).reverse();return b.reduce(a,c,d,e)};b.find=b.detect=function(a,c,b){var e;A(a,function(a,g,f){if(c.call(b,a,g,f))return e=a,!0});return e};b.filter=b.select=function(a,c,b){var e=[];if(a==null)return e;if(w&&a.filter===w)return a.filter(c,b);h(a,function(a,g,f){c.call(b,a,g,f)&&(e[e.length]=a)});return e};
11
+ b.reject=function(a,c,b){var e=[];if(a==null)return e;h(a,function(a,g,f){c.call(b,a,g,f)||(e[e.length]=a)});return e};b.every=b.all=function(a,c,b){var e=!0;if(a==null)return e;if(x&&a.every===x)return a.every(c,b);h(a,function(a,g,f){if(!(e=e&&c.call(b,a,g,f)))return m});return e};var A=b.some=b.any=function(a,c,d){c=c||b.identity;var e=!1;if(a==null)return e;if(y&&a.some===y)return a.some(c,d);h(a,function(a,b,f){if(e|=c.call(d,a,b,f))return m});return!!e};b.include=b.contains=function(a,c){var b=
12
+ !1;if(a==null)return b;if(o&&a.indexOf===o)return a.indexOf(c)!=-1;A(a,function(a){if(b=a===c)return!0});return b};b.invoke=function(a,c){var d=f.call(arguments,2);return b.map(a,function(a){return(c.call?c||a:a[c]).apply(a,d)})};b.pluck=function(a,c){return b.map(a,function(a){return a[c]})};b.max=function(a,c,d){if(!c&&b.isArray(a))return Math.max.apply(Math,a);var e={computed:-Infinity};h(a,function(a,b,f){b=c?c.call(d,a,b,f):a;b>=e.computed&&(e={value:a,computed:b})});return e.value};b.min=function(a,
13
+ c,d){if(!c&&b.isArray(a))return Math.min.apply(Math,a);var e={computed:Infinity};h(a,function(a,b,f){b=c?c.call(d,a,b,f):a;b<e.computed&&(e={value:a,computed:b})});return e.value};b.sortBy=function(a,c,d){return b.pluck(b.map(a,function(a,b,f){return{value:a,criteria:c.call(d,a,b,f)}}).sort(function(a,b){var c=a.criteria,d=b.criteria;return c<d?-1:c>d?1:0}),"value")};b.groupBy=function(a,b){var d={};h(a,function(a,f){var g=b(a,f);(d[g]||(d[g]=[])).push(a)});return d};b.sortedIndex=function(a,c,d){d||
14
+ (d=b.identity);for(var e=0,f=a.length;e<f;){var g=e+f>>1;d(a[g])<d(c)?e=g+1:f=g}return e};b.toArray=function(a){if(!a)return[];if(a.toArray)return a.toArray();if(b.isArray(a))return f.call(a);if(b.isArguments(a))return f.call(a);return b.values(a)};b.size=function(a){return b.toArray(a).length};b.first=b.head=function(a,b,d){return b!=null&&!d?f.call(a,0,b):a[0]};b.rest=b.tail=function(a,b,d){return f.call(a,b==null||d?1:b)};b.last=function(a){return a[a.length-1]};b.compact=function(a){return b.filter(a,
15
+ function(a){return!!a})};b.flatten=function(a){return b.reduce(a,function(a,d){if(b.isArray(d))return a.concat(b.flatten(d));a[a.length]=d;return a},[])};b.without=function(a){return b.difference(a,f.call(arguments,1))};b.uniq=b.unique=function(a,c){return b.reduce(a,function(a,e,f){if(0==f||(c===!0?b.last(a)!=e:!b.include(a,e)))a[a.length]=e;return a},[])};b.union=function(){return b.uniq(b.flatten(arguments))};b.intersection=b.intersect=function(a){var c=f.call(arguments,1);return b.filter(b.uniq(a),
16
+ function(a){return b.every(c,function(c){return b.indexOf(c,a)>=0})})};b.difference=function(a,c){return b.filter(a,function(a){return!b.include(c,a)})};b.zip=function(){for(var a=f.call(arguments),c=b.max(b.pluck(a,"length")),d=Array(c),e=0;e<c;e++)d[e]=b.pluck(a,""+e);return d};b.indexOf=function(a,c,d){if(a==null)return-1;var e;if(d)return d=b.sortedIndex(a,c),a[d]===c?d:-1;if(o&&a.indexOf===o)return a.indexOf(c);d=0;for(e=a.length;d<e;d++)if(a[d]===c)return d;return-1};b.lastIndexOf=function(a,
17
+ b){if(a==null)return-1;if(z&&a.lastIndexOf===z)return a.lastIndexOf(b);for(var d=a.length;d--;)if(a[d]===b)return d;return-1};b.range=function(a,b,d){arguments.length<=1&&(b=a||0,a=0);d=arguments[2]||1;for(var e=Math.max(Math.ceil((b-a)/d),0),f=0,g=Array(e);f<e;)g[f++]=a,a+=d;return g};b.bind=function(a,b){if(a.bind===q&&q)return q.apply(a,f.call(arguments,1));var d=f.call(arguments,2);return function(){return a.apply(b,d.concat(f.call(arguments)))}};b.bindAll=function(a){var c=f.call(arguments,1);
18
+ c.length==0&&(c=b.functions(a));h(c,function(c){a[c]=b.bind(a[c],a)});return a};b.memoize=function(a,c){var d={};c||(c=b.identity);return function(){var b=c.apply(this,arguments);return l.call(d,b)?d[b]:d[b]=a.apply(this,arguments)}};b.delay=function(a,b){var d=f.call(arguments,2);return setTimeout(function(){return a.apply(a,d)},b)};b.defer=function(a){return b.delay.apply(b,[a,1].concat(f.call(arguments,1)))};var B=function(a,b,d){var e;return function(){var f=this,g=arguments,h=function(){e=null;
19
+ a.apply(f,g)};d&&clearTimeout(e);if(d||!e)e=setTimeout(h,b)}};b.throttle=function(a,b){return B(a,b,!1)};b.debounce=function(a,b){return B(a,b,!0)};b.once=function(a){var b=!1,d;return function(){if(b)return d;b=!0;return d=a.apply(this,arguments)}};b.wrap=function(a,b){return function(){var d=[a].concat(f.call(arguments));return b.apply(this,d)}};b.compose=function(){var a=f.call(arguments);return function(){for(var b=f.call(arguments),d=a.length-1;d>=0;d--)b=[a[d].apply(this,b)];return b[0]}};b.after=
20
+ function(a,b){return function(){if(--a<1)return b.apply(this,arguments)}};b.keys=F||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var b=[],d;for(d in a)l.call(a,d)&&(b[b.length]=d);return b};b.values=function(a){return b.map(a,b.identity)};b.functions=b.methods=function(a){var c=[],d;for(d in a)b.isFunction(a[d])&&c.push(d);return c.sort()};b.extend=function(a){h(f.call(arguments,1),function(b){for(var d in b)b[d]!==void 0&&(a[d]=b[d])});return a};b.defaults=function(a){h(f.call(arguments,
21
+ 1),function(b){for(var d in b)a[d]==null&&(a[d]=b[d])});return a};b.clone=function(a){return b.isArray(a)?a.slice():b.extend({},a)};b.tap=function(a,b){b(a);return a};b.isEqual=function(a,c){if(a===c)return!0;var d=typeof a;if(d!=typeof c)return!1;if(a==c)return!0;if(!a&&c||a&&!c)return!1;if(a._chain)a=a._wrapped;if(c._chain)c=c._wrapped;if(a.isEqual)return a.isEqual(c);if(c.isEqual)return c.isEqual(a);if(b.isDate(a)&&b.isDate(c))return a.getTime()===c.getTime();if(b.isNaN(a)&&b.isNaN(c))return!1;
22
+ if(b.isRegExp(a)&&b.isRegExp(c))return a.source===c.source&&a.global===c.global&&a.ignoreCase===c.ignoreCase&&a.multiline===c.multiline;if(d!=="object")return!1;if(a.length&&a.length!==c.length)return!1;d=b.keys(a);var e=b.keys(c);if(d.length!=e.length)return!1;for(var f in a)if(!(f in c)||!b.isEqual(a[f],c[f]))return!1;return!0};b.isEmpty=function(a){if(b.isArray(a)||b.isString(a))return a.length===0;for(var c in a)if(l.call(a,c))return!1;return!0};b.isElement=function(a){return!!(a&&a.nodeType==
23
+ 1)};b.isArray=n||function(a){return E.call(a)==="[object Array]"};b.isObject=function(a){return a===Object(a)};b.isArguments=function(a){return!(!a||!l.call(a,"callee"))};b.isFunction=function(a){return!(!a||!a.constructor||!a.call||!a.apply)};b.isString=function(a){return!!(a===""||a&&a.charCodeAt&&a.substr)};b.isNumber=function(a){return!!(a===0||a&&a.toExponential&&a.toFixed)};b.isNaN=function(a){return a!==a};b.isBoolean=function(a){return a===!0||a===!1};b.isDate=function(a){return!(!a||!a.getTimezoneOffset||
24
+ !a.setUTCFullYear)};b.isRegExp=function(a){return!(!a||!a.test||!a.exec||!(a.ignoreCase||a.ignoreCase===!1))};b.isNull=function(a){return a===null};b.isUndefined=function(a){return a===void 0};b.noConflict=function(){p._=C;return this};b.identity=function(a){return a};b.times=function(a,b,d){for(var e=0;e<a;e++)b.call(d,e)};b.mixin=function(a){h(b.functions(a),function(c){H(c,b[c]=a[c])})};var I=0;b.uniqueId=function(a){var b=I++;return a?a+b:b};b.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g};
25
+ b.template=function(a,c){var d=b.templateSettings;d="var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('"+a.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(d.interpolate,function(a,b){return"',"+b.replace(/\\'/g,"'")+",'"}).replace(d.evaluate||null,function(a,b){return"');"+b.replace(/\\'/g,"'").replace(/[\r\n\t]/g," ")+"__p.push('"}).replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/\t/g,"\\t")+"');}return __p.join('');";d=new Function("obj",d);return c?d(c):d};
26
+ var j=function(a){this._wrapped=a};b.prototype=j.prototype;var r=function(a,c){return c?b(a).chain():a},H=function(a,c){j.prototype[a]=function(){var a=f.call(arguments);D.call(a,this._wrapped);return r(c.apply(b,a),this._chain)}};b.mixin(b);h(["pop","push","reverse","shift","sort","splice","unshift"],function(a){var b=i[a];j.prototype[a]=function(){b.apply(this._wrapped,arguments);return r(this._wrapped,this._chain)}});h(["concat","join","slice"],function(a){var b=i[a];j.prototype[a]=function(){return r(b.apply(this._wrapped,
27
+ arguments),this._chain)}});j.prototype.chain=function(){this._chain=!0;return this};j.prototype.value=function(){return this._wrapped}})();
@@ -6,6 +6,6 @@ module ProScribe
6
6
  # ProScribe.version #=> "0.0.2"
7
7
  #
8
8
  def self.version
9
- "0.0.4"
9
+ "0.0.5"
10
10
  end
11
11
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: proscribe
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -14,7 +14,7 @@ default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: hashie
17
- requirement: &2154058100 !ruby/object:Gem::Requirement
17
+ requirement: &2165749740 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ~>
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: 1.0.0
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *2154058100
25
+ version_requirements: *2165749740
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: shake
28
- requirement: &2154057600 !ruby/object:Gem::Requirement
28
+ requirement: &2165749240 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ~>
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: 0.1.2
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *2154057600
36
+ version_requirements: *2165749240
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: tilt
39
- requirement: &2164403120 !ruby/object:Gem::Requirement
39
+ requirement: &2165748780 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ~>
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: 1.3.2
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *2164403120
47
+ version_requirements: *2165748780
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: proton
50
- requirement: &2164402660 !ruby/object:Gem::Requirement
50
+ requirement: &2165748320 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ~>
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: 0.3.4
56
56
  type: :runtime
57
57
  prerelease: false
58
- version_requirements: *2164402660
58
+ version_requirements: *2165748320
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: fssm
61
- requirement: &2164402200 !ruby/object:Gem::Requirement
61
+ requirement: &2165747860 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ~>
@@ -66,10 +66,10 @@ dependencies:
66
66
  version: 0.2.7
67
67
  type: :runtime
68
68
  prerelease: false
69
- version_requirements: *2164402200
69
+ version_requirements: *2165747860
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: rdiscount
72
- requirement: &2164401740 !ruby/object:Gem::Requirement
72
+ requirement: &2165747400 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ~>
@@ -77,7 +77,7 @@ dependencies:
77
77
  version: 1.6.8
78
78
  type: :runtime
79
79
  prerelease: false
80
- version_requirements: *2164401740
80
+ version_requirements: *2165747400
81
81
  description: Build some documentation for your projects of any language.
82
82
  email:
83
83
  - rico@sinefunc.com
@@ -90,6 +90,7 @@ files:
90
90
  - Gemfile
91
91
  - HISTORY.md
92
92
  - README.md
93
+ - Rakefile
93
94
  - Scribefile
94
95
  - bin/proscribe
95
96
  - data/default/Gemfile
@@ -99,7 +100,9 @@ files:
99
100
  - data/default/_layouts/_subindex.haml
100
101
  - data/default/_layouts/default.haml
101
102
  - data/default/proscribe.js
103
+ - data/default/search_index.js.erb
102
104
  - data/default/style.scss
105
+ - data/default/underscore.js
103
106
  - data/rack/config.ru
104
107
  - lib/proscribe.rb
105
108
  - lib/proscribe/cli.rb