madness 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +22 -1
- data/app/public/css/main.css +14 -0
- data/app/public/css/main.css.map +2 -2
- data/app/styles/_general.scss +0 -11
- data/app/styles/_manifest.scss +1 -0
- data/app/styles/_search.scss +22 -0
- data/app/views/_nav.slim +3 -1
- data/app/views/search.slim +23 -0
- data/lib/madness.rb +3 -0
- data/lib/madness/command_line.rb +11 -1
- data/lib/madness/docopt.txt +4 -0
- data/lib/madness/document.rb +2 -2
- data/lib/madness/navigation.rb +6 -1
- data/lib/madness/search.rb +61 -0
- data/lib/madness/server.rb +10 -0
- data/lib/madness/version.rb +1 -1
- metadata +19 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6a993c5b2a6cb0783cb9ad3dde72db4c5142e56a
|
4
|
+
data.tar.gz: 80907e9259ada12a01a70b2a14894a9954e7a8c7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3be0f236806182e99ffb625aa454903222a0b5a67ebf84dbd9f47c2b361ac7df0cb0baf3915f076a1c352c0687872098470b9837132f3bad9ef5cc5c058ceae1
|
7
|
+
data.tar.gz: d12e02d9035f96fdf0b2f98157d7269061a4bb252db4475aef2574360313dc6a8e498ccbdce7ef9ef99274353adc1dfc3ba096b995a8da37e56b9a9f0b4df335
|
data/README.md
CHANGED
@@ -20,6 +20,13 @@ Install
|
|
20
20
|
$ bundle install madness
|
21
21
|
|
22
22
|
|
23
|
+
Design Intentions
|
24
|
+
--------------------------------------------------
|
25
|
+
|
26
|
+
Madness was designed in order to provide easy browsing, viewing and
|
27
|
+
searching for local, markdown based documentation directories.
|
28
|
+
|
29
|
+
|
23
30
|
Usage
|
24
31
|
--------------------------------------------------
|
25
32
|
|
@@ -38,7 +45,7 @@ Directory Conventions
|
|
38
45
|
Madness expects to be executed in a documentation directory.
|
39
46
|
|
40
47
|
A documentation directory contains only markdown files (`*.md`) and
|
41
|
-
|
48
|
+
sub directories that contain more markdown files.
|
42
49
|
|
43
50
|
The server will consider the file `README.md` in any directory as the
|
44
51
|
main file describing this directory.
|
@@ -82,6 +89,20 @@ line_numbers: true
|
|
82
89
|
```
|
83
90
|
|
84
91
|
|
92
|
+
Search
|
93
|
+
--------------------------------------------------
|
94
|
+
|
95
|
+
Madness comes with a full text search page. To activate it, you need to
|
96
|
+
generate a search index by running `madness --index` or
|
97
|
+
`madness path/to/docs --index`.
|
98
|
+
|
99
|
+
This will create an `_index` sub folder, and will add a new search page
|
100
|
+
to your documentation server.
|
101
|
+
|
102
|
+
You will need to run this command from time to time, as your
|
103
|
+
documents change or new documents are added.
|
104
|
+
|
105
|
+
|
85
106
|
Tips
|
86
107
|
--------------------------------------------------
|
87
108
|
|
data/app/public/css/main.css
CHANGED
@@ -197,6 +197,20 @@ kbd {
|
|
197
197
|
border-radius: 3px;
|
198
198
|
box-shadow: inset 0 -1px 0 #bbb; }
|
199
199
|
|
200
|
+
.search-form {
|
201
|
+
margin-bottom: 20px; }
|
202
|
+
|
203
|
+
.search-field {
|
204
|
+
outline: none;
|
205
|
+
padding: 8px 12px;
|
206
|
+
font-size: 1.5em;
|
207
|
+
width: 50%;
|
208
|
+
min-width: 200px;
|
209
|
+
border: #ccc 1px solid;
|
210
|
+
border-radius: 3px; }
|
211
|
+
.search-field:focus {
|
212
|
+
border-color: #4078c0; }
|
213
|
+
|
200
214
|
* {
|
201
215
|
box-sizing: border-box; }
|
202
216
|
|
data/app/public/css/main.css.map
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
|
-
"mappings": "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",
|
4
|
-
"sources": ["../../styles/_typography.scss","../../styles/_table.scss","../../styles/_anchor.scss","../../styles/_list.scss","../../styles/_code.scss","../../styles/_coderay.scss","../../styles/_image.scss","../../styles/_line.scss","../../styles/_keyboard.scss","../../styles/_general.scss","../../styles/main.scss"],
|
3
|
+
"mappings": "AAAA,IAAK;EACH,oBAAoB,EAAE,IAAI;EAC1B,wBAAwB,EAAE,IAAI;EAC9B,KAAK,EAAE,IAAI;EACX,WAAW,EAAE,8HAA8H;EAC3I,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,GAAG;EAChB,SAAS,EAAE,UAAU;;AAGvB,eAAgB;EACd,WAAW,EAAE,MAAM;;AAGrB,sBAAuB;EACrB,UAAU,EAAE,GAAG;EACf,aAAa,EAAE,IAAI;EACnB,WAAW,EAAE,IAAI;EACjB,WAAW,EAAE,GAAG;;AAGlB,EAAG;EACD,MAAM,EAAE,QAAQ;EAChB,cAAc,EAAE,KAAK;EACrB,SAAS,EAAE,MAAM;EACjB,WAAW,EAAE,GAAG;EAChB,aAAa,EAAE,cAAc;;AAG/B,EAAG;EACD,cAAc,EAAE,KAAK;EACrB,SAAS,EAAE,MAAM;EACjB,WAAW,EAAE,KAAK;EAClB,aAAa,EAAE,cAAc;;AAG/B,EAAG;EACD,SAAS,EAAE,KAAK;EAChB,WAAW,EAAE,IAAI;;AAGnB,EAAG;EACD,SAAS,EAAE,MAAM;;AAGnB,EAAG;EACD,SAAS,EAAE,GAAG;;AAGhB,EAAG;EACD,SAAS,EAAE,GAAG;EACd,KAAK,EAAE,IAAI;;AAGb,cAAe;EACb,WAAW,EAAE,oBAAoB;EACjC,SAAS,EAAE,GAAG;;AAGhB,cAAe;EACb,WAAW,EAAE,sDAAsD;;AC5DrE,KAAM;EACJ,cAAc,EAAE,CAAC;EACjB,eAAe,EAAE,QAAQ;EAEzB,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;EACX,QAAQ,EAAE,IAAI;EACd,UAAU,EAAE,MAAM;EAClB,UAAU,EAAE,QAAQ;EAEpB,QAAG;IACD,WAAW,EAAE,IAAI;EAGnB,kBAAO;IACL,OAAO,EAAE,QAAQ;IACjB,MAAM,EAAE,cAAc;EAGxB,QAAG;IACD,gBAAgB,EAAE,IAAI;IACtB,UAAU,EAAE,cAAc;EAG5B,sBAAiB;IACf,gBAAgB,EAAE,OAAO;;ACzB7B,CAAE;EACA,4BAA4B,EAAE,OAAO;EAErC,KAAK,EAAE,OAAO;EACd,eAAe,EAAE,IAAI;EAErB,iBAAkB;IAChB,aAAa,EAAE,CAAC;IAChB,eAAe,EAAE,SAAS;EAG5B,aAAc;IACZ,KAAK,EAAE,OAAO;IACd,eAAe,EAAE,IAAI;;ACbzB,MAAO;EACL,UAAU,EAAE,CAAC;EACb,aAAa,EAAE,CAAC;EAEhB,YAAY,EAAE,GAAG;;AAGnB,YAAa;EACX,eAAe,EAAE,WAAW;;AAG9B,sCAAuC;EACrC,eAAe,EAAE,WAAW;;AAG9B,0BAA2B;EACzB,UAAU,EAAE,CAAC;EACb,aAAa,EAAE,CAAC;;AAGlB,EAAG;EACD,WAAW,EAAE,CAAC;;AAGhB,EAAG;EACD,OAAO,EAAE,CAAC;EAEV,KAAG;IACD,OAAO,EAAE,CAAC;IACV,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,GAAG;IACd,UAAU,EAAE,MAAM;IAClB,WAAW,EAAE,IAAI;EAGnB,KAAG;IACD,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,IAAI;;AAIvB,MAAK;EACH,UAAU,EAAE,IAAI;;AC1ClB,IAAK;EACH,OAAO,EAAE,CAAC;EACV,WAAW,EAAE,KAAK;EAClB,cAAc,EAAE,KAAK;EACrB,MAAM,EAAE,CAAC;EAET,gBAAgB,EAAE,IAAI;EACtB,aAAa,EAAE,GAAG;EAElB,uBAAkB;IAChB,cAAc,EAAE,MAAM;IACtB,OAAO,EAAE,OAAO;;AAIpB,GAAI;EAKF,QAAQ,EAAE,IAAI;EAEd,WAAW,EAAE,IAAI;EAGjB,SAAS,EAAE,MAAM;EAEjB,UAAO;IACL,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;IACT,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,MAAM;IAClB,WAAW,EAAE,GAAG;IAChB,UAAU,EAAE,WAAW;IACvB,MAAM,EAAE,CAAC;EAGX,QAAK;IACH,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,MAAM;IACf,SAAS,EAAE,OAAO;IAClB,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,OAAO;IACjB,WAAW,EAAE,OAAO;IACpB,SAAS,EAAE,MAAM;IACjB,gBAAgB,EAAE,WAAW;IAC7B,MAAM,EAAE,CAAC;EAGX;gBACW;IACT,OAAO,EAAE,MAAM;;ACnDnB,eAAgB;EACd,UAAU,EAAE,IAAI;;AAGlB,aAAc;EACZ,aAAa,EAAE,CAAC;EAChB,iBAAI;IACF,aAAa,EAAE,CAAC;;ACPpB,GAAI;EACF,YAAY,EAAE,IAAI;EAElB,SAAS,EAAE,IAAI;EACf,UAAU,EAAE,WAAW;EACvB,gBAAgB,EAAE,IAAI;;ACLxB,EAAG;EACD,UAAU,EAAE,WAAW;EAEvB,QAAQ,EAAE,OAAO;EACjB,MAAM,EAAE,CAAC;EAET,QAAQ,EAAE,MAAM;EAEhB,MAAM,EAAE,CAAC;EACT,aAAa,EAAE,cAAc;EAE7B,MAAM,EAAE,GAAG;EACX,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,MAAM;EACd,gBAAgB,EAAE,OAAO;EAGzB,mBAAmB,EAAE,IAAI;EAEzB,UAAU;IACR,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,EAAE;EAEb,SAAS;IACP,OAAO,EAAE,KAAK;IACd,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,EAAE;;AC1Bf,GAAI;EACF,OAAO,EAAE,YAAY;EACrB,OAAO,EAAE,OAAO;EAChB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;EACjB,KAAK,EAAE,IAAI;EACX,cAAc,EAAE,MAAM;EACtB,gBAAgB,EAAE,OAAO;EACzB,MAAM,EAAE,cAAc;EACtB,mBAAmB,EAAE,IAAI;EACzB,aAAa,EAAE,GAAG;EAClB,UAAU,EAAE,mBAAmB;;ACXjC,YAAa;EACX,aAAa,EAAE,IAAI;;AAGrB,aAAc;EACZ,OAAO,EAAE,IAAI;EACb,OAAO,EAAE,QAAQ;EACjB,SAAS,EAAE,KAAK;EAChB,KAAK,EAAE,GAAG;EACV,SAAS,EAAE,KAAK;EAEhB,MAAM,EAAE,cAAc;EACtB,aAAa,EAAE,GAAG;EAElB,mBAAQ;IACN,YAAY,EAAE,OAAO;;ACfzB,CAAE;EACA,UAAU,EAAE,UAAU;;AAGxB,CAAE;EACA,UAAU,EAAE,CAAC;EACb,aAAa,EAAE,IAAI;;AAGrB,UAAW;EACT,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,MAAM;EACf,KAAK,EAAE,IAAI;EACX,WAAW,EAAE,cAAc;EAE3B,yBAAe;IACb,UAAU,EAAE,CAAC;EAGf,wBAAc;IACZ,aAAa,EAAE,CAAC;;AAIpB,qCAAsC;EACpC,UAAU,EAAE,CAAC;EACb,aAAa,EAAE,IAAI;;ACxBrB,IAAK;EACH,SAAS,EAAE,MAAM;EACjB,MAAM,EAAE,MAAM;;AAGhB,IAAK;EACH,OAAO,EAAE,iBAAiB;EAC1B,WAAW,EAAE,KAAK;EAClB,MAAM,EAAC,cAAc;EACrB,YAAY,EAAE,KAAK;EACnB,UAAU,EAAE,KAAK;EAEjB,uBAAkB;IAChB,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,EAAE;;AAQf,YAAa;EACX,UAAU,EAAE,GAAG;EACf,aAAa,EAAE,cAAc;EAC7B,cAAE;IACA,OAAO,EAAE,YAAY;IACrB,OAAO,EAAE,KAAK;;AAIlB,GAAI;EACF,UAAU,EAAE,IAAI;EAChB,MAAM,EAAE,KAAK;EACb,KAAK,EAAE,KAAK;EACZ,UAAU,EAAE,IAAI;EAChB,QAAQ,EAAE,KAAK;EACf,OAAO,EAAE,cAAc;EACvB,YAAY,EAAE,cAAc;EAC5B,eAAQ;IAIN,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,iBAAiB;IAC1B,aAAa,EAAE,GAAG;IALlB,2BAAQ;MACN,UAAU,EAAE,OAAO;;AASzB,mBAAoB;EAClB,KAAK,EAAE,GAAG;;AAEZ,yBAA0B;EACxB,UAAU,EAAE,IAAI;EAChB,qBAAqB,EAAE,GAAG",
|
4
|
+
"sources": ["../../styles/_typography.scss","../../styles/_table.scss","../../styles/_anchor.scss","../../styles/_list.scss","../../styles/_code.scss","../../styles/_coderay.scss","../../styles/_image.scss","../../styles/_line.scss","../../styles/_keyboard.scss","../../styles/_search.scss","../../styles/_general.scss","../../styles/main.scss"],
|
5
5
|
"names": [],
|
6
6
|
"file": "main.css"
|
7
7
|
}
|
data/app/styles/_general.scss
CHANGED
data/app/styles/_manifest.scss
CHANGED
@@ -0,0 +1,22 @@
|
|
1
|
+
.search-form {
|
2
|
+
margin-bottom: 20px;
|
3
|
+
}
|
4
|
+
|
5
|
+
.search-field {
|
6
|
+
outline: none;
|
7
|
+
padding: 8px 12px;
|
8
|
+
font-size: 1.5em;
|
9
|
+
width: 50%;
|
10
|
+
min-width: 200px;
|
11
|
+
|
12
|
+
border: #ccc 1px solid;
|
13
|
+
border-radius: 3px;
|
14
|
+
|
15
|
+
&:focus {
|
16
|
+
border-color: #4078c0;
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
20
|
+
.highlight {
|
21
|
+
// background: #fda;
|
22
|
+
}
|
data/app/views/_nav.slim
CHANGED
@@ -0,0 +1,23 @@
|
|
1
|
+
== slim :_nav, locals: { nav: nav }
|
2
|
+
|
3
|
+
main
|
4
|
+
h1 Search
|
5
|
+
|
6
|
+
form.search-form action="/_search" method="get"
|
7
|
+
input.search-field type="text" name="q" value="#{params[:q]}" placeholder="Enter search query" autofocus=true
|
8
|
+
input type="submit" value="Search" style='display:none'
|
9
|
+
|
10
|
+
hr
|
11
|
+
|
12
|
+
- if results
|
13
|
+
- results.each_with_index do |result, index|
|
14
|
+
h4
|
15
|
+
= index+1
|
16
|
+
= ". "
|
17
|
+
a href="#{result[:file]}" = result[:label]
|
18
|
+
|
19
|
+
- if result[:highlights]
|
20
|
+
- result[:highlights].each do |highlight|
|
21
|
+
p == highlight
|
22
|
+
|
23
|
+
|
data/lib/madness.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'fileutils'
|
1
2
|
require 'singleton'
|
2
3
|
require 'yaml'
|
3
4
|
|
@@ -11,6 +12,7 @@ require 'sass/plugin/rack'
|
|
11
12
|
require 'docopt'
|
12
13
|
require 'colsole'
|
13
14
|
require 'rack/contrib/try_static'
|
15
|
+
require 'ferret'
|
14
16
|
|
15
17
|
require 'madness/version'
|
16
18
|
require 'madness/settings'
|
@@ -21,4 +23,5 @@ require 'madness/document'
|
|
21
23
|
require 'madness/navigation'
|
22
24
|
require 'madness/breadcrumbs'
|
23
25
|
require 'madness/command_line'
|
26
|
+
require 'madness/search'
|
24
27
|
|
data/lib/madness/command_line.rb
CHANGED
@@ -24,7 +24,11 @@ module Madness
|
|
24
24
|
begin
|
25
25
|
args = Docopt::docopt(doc, argv: argv, version: VERSION)
|
26
26
|
set_config args
|
27
|
-
|
27
|
+
if args['--index']
|
28
|
+
build_index
|
29
|
+
else
|
30
|
+
launch_server
|
31
|
+
end
|
28
32
|
rescue Docopt::Exit => e
|
29
33
|
puts e.message
|
30
34
|
end
|
@@ -65,6 +69,12 @@ module Madness
|
|
65
69
|
say "-" * 40
|
66
70
|
end
|
67
71
|
|
72
|
+
def build_index
|
73
|
+
say_status :start, 'indexing'
|
74
|
+
Search.new.build_index
|
75
|
+
say_status :done, 'indexing'
|
76
|
+
end
|
77
|
+
|
68
78
|
def config
|
69
79
|
@config ||= Settings.instance
|
70
80
|
end
|
data/lib/madness/docopt.txt
CHANGED
data/lib/madness/document.rb
CHANGED
@@ -39,7 +39,7 @@ module Madness
|
|
39
39
|
# Return the HTML for that document, force re-read.
|
40
40
|
def content!
|
41
41
|
if File.exist?(file)
|
42
|
-
|
42
|
+
markdown_to_html
|
43
43
|
else
|
44
44
|
@type = :empty
|
45
45
|
""
|
@@ -61,7 +61,7 @@ module Madness
|
|
61
61
|
# Convert markdown to HTML, wit hsome additional processing:
|
62
62
|
# 1. Syntax highilghting
|
63
63
|
# 2. Prepend H1 if needed
|
64
|
-
def markdown_to_html
|
64
|
+
def markdown_to_html
|
65
65
|
html = RDiscount.new(File.read file).to_html
|
66
66
|
html = syntax_highlight(html) if config.highlighter
|
67
67
|
html = prepend_h1(html) if config.autoh1
|
data/lib/madness/navigation.rb
CHANGED
@@ -7,7 +7,12 @@ module Madness
|
|
7
7
|
|
8
8
|
def initialize(dir)
|
9
9
|
@links = make_links dir
|
10
|
-
@caption = File.basename(dir) unless dir == docroot
|
10
|
+
# @caption = File.basename(dir) unless dir == docroot
|
11
|
+
@caption = dir == docroot ? "Index" : File.basename(dir)
|
12
|
+
end
|
13
|
+
|
14
|
+
def with_search?
|
15
|
+
@with_search ||= Search.new.has_index?
|
11
16
|
end
|
12
17
|
|
13
18
|
private
|
@@ -0,0 +1,61 @@
|
|
1
|
+
module Madness
|
2
|
+
|
3
|
+
class Search
|
4
|
+
include ServerHelper
|
5
|
+
include Ferret
|
6
|
+
include Ferret::Index
|
7
|
+
|
8
|
+
def initialize(path=nil)
|
9
|
+
@path = path || docroot
|
10
|
+
end
|
11
|
+
|
12
|
+
def has_index?
|
13
|
+
Dir.exist? index_dir
|
14
|
+
end
|
15
|
+
|
16
|
+
def build_index
|
17
|
+
Dir.mkdir index_dir unless Dir.exist? index_dir
|
18
|
+
|
19
|
+
index = Index.new path: index_dir, create: true
|
20
|
+
|
21
|
+
Dir["#{@path}/**/*.md"].each do |file|
|
22
|
+
index << { file: file, content: File.read(file) }
|
23
|
+
end
|
24
|
+
|
25
|
+
index.optimize()
|
26
|
+
index.close()
|
27
|
+
end
|
28
|
+
|
29
|
+
def search(query)
|
30
|
+
index = Index.new path: index_dir
|
31
|
+
|
32
|
+
results = []
|
33
|
+
total_hits = index.search_each(query, limit: 20) do |doc_id, score|
|
34
|
+
filename = index[doc_id][:file].sub("#{@path}/", '')[0...-3]
|
35
|
+
highlights = index.highlight "content:(#{query.tr(' ',' OR ')}) ", doc_id, field: :content,
|
36
|
+
pre_tag: "<strong class='highlight'>", post_tag: "</strong>",
|
37
|
+
excerpt_length: 100
|
38
|
+
|
39
|
+
results << {
|
40
|
+
score: score,
|
41
|
+
file: filename,
|
42
|
+
label: filename.gsub("/", " / "),
|
43
|
+
highlights: highlights
|
44
|
+
}
|
45
|
+
end
|
46
|
+
|
47
|
+
index.close()
|
48
|
+
results
|
49
|
+
end
|
50
|
+
|
51
|
+
def remove_index_dir
|
52
|
+
return unless Dir.exist? index_dir
|
53
|
+
FileUtils.rm_r index_dir
|
54
|
+
end
|
55
|
+
|
56
|
+
def index_dir
|
57
|
+
"#{@path}/_index"
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
end
|
data/lib/madness/server.rb
CHANGED
@@ -4,6 +4,16 @@ module Madness
|
|
4
4
|
|
5
5
|
# The Sinatra server
|
6
6
|
class Server < ServerBase
|
7
|
+
get '/_search' do
|
8
|
+
query = params[:q]
|
9
|
+
results = query ? Search.new.search(query) : false
|
10
|
+
nav = Navigation.new docroot
|
11
|
+
slim :search, locals: {
|
12
|
+
nav: nav,
|
13
|
+
results: results
|
14
|
+
}
|
15
|
+
end
|
16
|
+
|
7
17
|
get '/*' do
|
8
18
|
path = params[:splat].first
|
9
19
|
|
data/lib/madness/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: madness
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Danny Ben Shitrit
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-06-
|
11
|
+
date: 2016-06-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sass
|
@@ -136,6 +136,20 @@ dependencies:
|
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0.4'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: ferret
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0.11'
|
146
|
+
type: :runtime
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0.11'
|
139
153
|
- !ruby/object:Gem::Dependency
|
140
154
|
name: runfile
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -268,6 +282,7 @@ files:
|
|
268
282
|
- app/styles/_line.scss
|
269
283
|
- app/styles/_list.scss
|
270
284
|
- app/styles/_manifest.scss
|
285
|
+
- app/styles/_search.scss
|
271
286
|
- app/styles/_table.scss
|
272
287
|
- app/styles/_typography.scss
|
273
288
|
- app/styles/main.scss
|
@@ -277,6 +292,7 @@ files:
|
|
277
292
|
- app/views/_nav.slim
|
278
293
|
- app/views/document.slim
|
279
294
|
- app/views/layout.slim
|
295
|
+
- app/views/search.slim
|
280
296
|
- bin/madness
|
281
297
|
- lib/madness.rb
|
282
298
|
- lib/madness/breadcrumbs.rb
|
@@ -284,6 +300,7 @@ files:
|
|
284
300
|
- lib/madness/docopt.txt
|
285
301
|
- lib/madness/document.rb
|
286
302
|
- lib/madness/navigation.rb
|
303
|
+
- lib/madness/search.rb
|
287
304
|
- lib/madness/server.rb
|
288
305
|
- lib/madness/server_base.rb
|
289
306
|
- lib/madness/server_helper.rb
|