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 +6 -0
- data/Rakefile +25 -0
- data/data/default/_extensions/helpers.rb +1 -1
- data/data/default/_layouts/default.haml +8 -2
- data/data/default/proscribe.js +108 -1
- data/data/default/search_index.js.erb +43 -0
- data/data/default/style.scss +62 -0
- data/data/default/underscore.js +27 -0
- data/lib/proscribe/version.rb +1 -1
- metadata +16 -13
data/HISTORY.md
CHANGED
data/Rakefile
ADDED
@@ -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('/
|
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'}
|
data/data/default/proscribe.js
CHANGED
@@ -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 %> › <%= 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 %>);
|
data/data/default/style.scss
CHANGED
@@ -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}})();
|
data/lib/proscribe/version.rb
CHANGED
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
|
+
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: &
|
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: *
|
25
|
+
version_requirements: *2165749740
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: shake
|
28
|
-
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: *
|
36
|
+
version_requirements: *2165749240
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: tilt
|
39
|
-
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: *
|
47
|
+
version_requirements: *2165748780
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: proton
|
50
|
-
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: *
|
58
|
+
version_requirements: *2165748320
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: fssm
|
61
|
-
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: *
|
69
|
+
version_requirements: *2165747860
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: rdiscount
|
72
|
-
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: *
|
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
|