madness 0.0.7 → 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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": "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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/_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
|