madness 0.2.1 → 0.3.0
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 +95 -11
- data/lib/madness/command_line.rb +2 -0
- data/lib/madness/docopt.txt +6 -0
- data/lib/madness/server.rb +17 -0
- data/lib/madness/settings.rb +2 -1
- data/lib/madness/version.rb +1 -1
- metadata +15 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bcdab65af0b9a96400c1d0f7b5dfacb89b51af1a
|
4
|
+
data.tar.gz: 988746a41c7cd24248f1c108104fa1f258854285
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aeb491dbeb42c2755f985eebc83433bf7e9ad9f40daadff2a77b9a98e53a668c1df1b2895c534fbb895b835ea9f34305abf50c352f8ab2eaf16bf1567b566fa3
|
7
|
+
data.tar.gz: ce1cef2c6ca28043ea1cef131849aea3f7fb42acaa88810ec34550aaa987cfd0faee1a234aa3aaf14ddb96c70b3968ae59f3c0d48420cae97ee6ebd015d78c32
|
data/README.md
CHANGED
@@ -8,10 +8,12 @@ Madness - Instant Markdown Server
|
|
8
8
|
|
9
9
|
---
|
10
10
|
|
11
|
+
|
11
12
|
Screenshot
|
12
13
|
--------------------------------------------------
|
13
14
|
|
14
|
-
![
|
15
|
+
![screenshot]
|
16
|
+
|
15
17
|
|
16
18
|
|
17
19
|
Install
|
@@ -20,6 +22,7 @@ Install
|
|
20
22
|
$ gem install madness
|
21
23
|
|
22
24
|
|
25
|
+
|
23
26
|
Design Intentions
|
24
27
|
--------------------------------------------------
|
25
28
|
|
@@ -27,6 +30,17 @@ Madness was designed in order to provide easy browsing, viewing and
|
|
27
30
|
searching for local, markdown based documentation directories.
|
28
31
|
|
29
32
|
|
33
|
+
|
34
|
+
Feature Highlights
|
35
|
+
--------------------------------------------------
|
36
|
+
|
37
|
+
- Easy to use
|
38
|
+
- Built in full text search
|
39
|
+
- Built in GraphViz diagram generator
|
40
|
+
- Configure with a configuration file or command arguments
|
41
|
+
|
42
|
+
|
43
|
+
|
30
44
|
Usage
|
31
45
|
--------------------------------------------------
|
32
46
|
|
@@ -39,6 +53,7 @@ For more options, run:
|
|
39
53
|
$ madness --help
|
40
54
|
|
41
55
|
|
56
|
+
|
42
57
|
Directory Conventions
|
43
58
|
--------------------------------------------------
|
44
59
|
|
@@ -70,6 +85,8 @@ Example structure:
|
|
70
85
|
└── Lists.md
|
71
86
|
```
|
72
87
|
|
88
|
+
|
89
|
+
|
73
90
|
Configuration File
|
74
91
|
--------------------------------------------------
|
75
92
|
|
@@ -87,9 +104,11 @@ autoh1: true
|
|
87
104
|
highlighter: true
|
88
105
|
line_numbers: true
|
89
106
|
index: false
|
107
|
+
development: false
|
90
108
|
```
|
91
109
|
|
92
110
|
|
111
|
+
|
93
112
|
Search
|
94
113
|
--------------------------------------------------
|
95
114
|
|
@@ -104,28 +123,93 @@ You will need to run this command from time to time, as your
|
|
104
123
|
documents change or new documents are added.
|
105
124
|
|
106
125
|
|
107
|
-
|
126
|
+
|
127
|
+
Images and Static Files
|
128
|
+
--------------------------------------------------
|
129
|
+
|
130
|
+
Your markdown directory can have a `public` folder. Anything in it
|
131
|
+
will be served as is. For example, if you have `public/images/ok.png`
|
132
|
+
you can access it from your markdown file by typing:
|
133
|
+
|
134
|
+
```markdown
|
135
|
+

|
136
|
+
```
|
137
|
+
|
138
|
+
|
139
|
+
Automatic H1
|
108
140
|
--------------------------------------------------
|
109
141
|
|
110
|
-
**Automatic H1**
|
111
142
|
If your markdown document does not start with a level 1 heading, it
|
112
143
|
will be automatically added based on the file name.
|
113
144
|
|
114
|
-
|
145
|
+
|
146
|
+
Hidden Directories
|
147
|
+
--------------------------------------------------
|
148
|
+
|
115
149
|
Directories that begin with an underscore will not be displayed in the
|
116
150
|
navigation.
|
117
151
|
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
152
|
+
|
153
|
+
|
154
|
+
Automatic GraphViz Dot Diagram Generation
|
155
|
+
--------------------------------------------------
|
156
|
+
|
157
|
+
This feature requires that you have GraphViz installed
|
158
|
+
(`$ sudo apt install graphviz`).
|
159
|
+
|
160
|
+
What you place `*.dot` files in the `_dot` folder (or subfolders), they
|
161
|
+
can be accessed directly as an image in your Markdown files.
|
162
|
+
|
163
|
+
In development mode, when such files are accessed, Madness will run the
|
164
|
+
graphviz `dot` command and generate a respective image in the `public`
|
165
|
+
folder.
|
166
|
+
|
167
|
+
For example, if you have the following graphviz file:
|
168
|
+
|
169
|
+
```
|
170
|
+
# _dot/diagrams/my_diagram.dot
|
171
|
+
digraph {
|
172
|
+
Hello -> World
|
173
|
+
}
|
174
|
+
```
|
175
|
+
|
176
|
+
You can access it from your markdown files like this:
|
122
177
|
|
123
178
|
```markdown
|
124
|
-

|
125
180
|
```
|
126
181
|
|
182
|
+
This will work in one of two ways:
|
127
183
|
|
128
|
-
|
184
|
+
1. If the server is in development mode (`--development`), then it will
|
185
|
+
create a `png` image in the public folder, and redirect to it.
|
186
|
+
2. If the server is in production mode, it will redirect to the
|
187
|
+
(previously-generated-) `png` image in the public folder, meaning
|
188
|
+
`public/diagrams/my_diagram.png`
|
189
|
+
|
190
|
+
|
191
|
+
|
192
|
+
Docker Image
|
193
|
+
--------------------------------------------------
|
194
|
+
|
195
|
+
This gem is also available as a docker image.
|
196
|
+
|
197
|
+
This command will start the server on localhost:3000, with the current
|
198
|
+
directory as the markdown documentation folder
|
129
199
|
|
130
|
-
|
200
|
+
```shell
|
201
|
+
$ docker run --rm -it -v $PWD:/docs -p 3000:3000 dannyben/madness
|
202
|
+
```
|
203
|
+
|
204
|
+
For more information see:
|
205
|
+
|
206
|
+
- [Madness image on Docker Hub][dockerhub]
|
207
|
+
- [Madness Dockerfile][dockerfile]
|
208
|
+
|
209
|
+
|
210
|
+
|
211
|
+
---
|
131
212
|
|
213
|
+
[screenshot]: https://raw.githubusercontent.com/DannyBen/madness/master/screenshot.png
|
214
|
+
[dockerhub]: https://hub.docker.com/r/dannyben/madness/
|
215
|
+
[dockerfile]: https://github.com/DannyBen/docker-madness
|
data/lib/madness/command_line.rb
CHANGED
@@ -52,12 +52,14 @@ module Madness
|
|
52
52
|
config.highlighter = false if args['--no-syntax']
|
53
53
|
config.line_numbers = false if args['--no-line-numbers']
|
54
54
|
config.index = true if args['--index']
|
55
|
+
config.development = true if args['--development']
|
55
56
|
end
|
56
57
|
|
57
58
|
# Say hello to everybody when the server starts, showing the known
|
58
59
|
# config.
|
59
60
|
def show_status
|
60
61
|
say_status :start, 'the madness'
|
62
|
+
say_status :env, config.development ? 'development' : 'production', :txtblu
|
61
63
|
say_status :listen, "#{config.bind}:#{config.port}", :txtblu
|
62
64
|
say_status :path, File.realpath(config.path), :txtblu
|
63
65
|
say_status :use, config.filename if config.file_exist?
|
data/lib/madness/docopt.txt
CHANGED
@@ -15,6 +15,11 @@ Options:
|
|
15
15
|
-b, --bind <address>
|
16
16
|
Set server listen address.
|
17
17
|
|
18
|
+
--development
|
19
|
+
Start the server in development mode. In this mode, dot diagrams are
|
20
|
+
regenerated on each request, whereas in production mode (default), the
|
21
|
+
diagrams are expected to already be generated in the public folder.
|
22
|
+
|
18
23
|
--no-auto-h1
|
19
24
|
By default, if a markdown document does not start with an H1 caption,
|
20
25
|
it will be added automatically based on the file name. To disable this
|
@@ -36,5 +41,6 @@ Examples:
|
|
36
41
|
madness
|
37
42
|
madness docs
|
38
43
|
madness docs --no-auto-h1 -p 4567
|
44
|
+
madness docs --production
|
39
45
|
madness --index --and-quit
|
40
46
|
|
data/lib/madness/server.rb
CHANGED
@@ -14,6 +14,23 @@ module Madness
|
|
14
14
|
}
|
15
15
|
end
|
16
16
|
|
17
|
+
get '/*.dot' do
|
18
|
+
splat = params[:splat].first
|
19
|
+
dot = "_dot/#{splat}.dot"
|
20
|
+
png = "public/#{splat}.png"
|
21
|
+
out_dir = File.dirname png
|
22
|
+
|
23
|
+
Dir.chdir docroot do
|
24
|
+
if config.development and File.exist? dot
|
25
|
+
FileUtils.mkdir_p out_dir unless Dir.exist? out_dir
|
26
|
+
system %Q[dot "#{dot}" -Tpng -o "#{png}"]
|
27
|
+
redirect to "#{splat}.png"
|
28
|
+
else
|
29
|
+
redirect to "#{splat}.png"
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
17
34
|
get '/*' do
|
18
35
|
path = params[:splat].first
|
19
36
|
|
data/lib/madness/settings.rb
CHANGED
@@ -10,7 +10,7 @@ module Madness
|
|
10
10
|
include Singleton
|
11
11
|
|
12
12
|
attr_accessor :port, :bind, :path, :autoh1,
|
13
|
-
:highlighter, :line_numbers, :index
|
13
|
+
:highlighter, :line_numbers, :index, :development
|
14
14
|
|
15
15
|
def initialize
|
16
16
|
reset
|
@@ -42,6 +42,7 @@ module Madness
|
|
42
42
|
self.highlighter = true
|
43
43
|
self.line_numbers = true
|
44
44
|
self.index = false
|
45
|
+
self.development = false
|
45
46
|
end
|
46
47
|
|
47
48
|
def load_from_file
|
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.
|
4
|
+
version: 0.3.0
|
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: 2017-
|
11
|
+
date: 2017-04-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sass
|
@@ -156,14 +156,14 @@ dependencies:
|
|
156
156
|
requirements:
|
157
157
|
- - "~>"
|
158
158
|
- !ruby/object:Gem::Version
|
159
|
-
version: '0.
|
159
|
+
version: '0.9'
|
160
160
|
type: :development
|
161
161
|
prerelease: false
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
164
|
- - "~>"
|
165
165
|
- !ruby/object:Gem::Version
|
166
|
-
version: '0.
|
166
|
+
version: '0.9'
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
168
|
name: runfile-tasks
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
@@ -198,70 +198,70 @@ dependencies:
|
|
198
198
|
requirements:
|
199
199
|
- - "~>"
|
200
200
|
- !ruby/object:Gem::Version
|
201
|
-
version: '3.
|
201
|
+
version: '3.5'
|
202
202
|
type: :development
|
203
203
|
prerelease: false
|
204
204
|
version_requirements: !ruby/object:Gem::Requirement
|
205
205
|
requirements:
|
206
206
|
- - "~>"
|
207
207
|
- !ruby/object:Gem::Version
|
208
|
-
version: '3.
|
208
|
+
version: '3.5'
|
209
209
|
- !ruby/object:Gem::Dependency
|
210
210
|
name: rdoc
|
211
211
|
requirement: !ruby/object:Gem::Requirement
|
212
212
|
requirements:
|
213
213
|
- - "~>"
|
214
214
|
- !ruby/object:Gem::Version
|
215
|
-
version: '
|
215
|
+
version: '5.1'
|
216
216
|
type: :development
|
217
217
|
prerelease: false
|
218
218
|
version_requirements: !ruby/object:Gem::Requirement
|
219
219
|
requirements:
|
220
220
|
- - "~>"
|
221
221
|
- !ruby/object:Gem::Version
|
222
|
-
version: '
|
222
|
+
version: '5.1'
|
223
223
|
- !ruby/object:Gem::Dependency
|
224
224
|
name: simplecov
|
225
225
|
requirement: !ruby/object:Gem::Requirement
|
226
226
|
requirements:
|
227
227
|
- - "~>"
|
228
228
|
- !ruby/object:Gem::Version
|
229
|
-
version: '0.
|
229
|
+
version: '0.14'
|
230
230
|
type: :development
|
231
231
|
prerelease: false
|
232
232
|
version_requirements: !ruby/object:Gem::Requirement
|
233
233
|
requirements:
|
234
234
|
- - "~>"
|
235
235
|
- !ruby/object:Gem::Version
|
236
|
-
version: '0.
|
236
|
+
version: '0.14'
|
237
237
|
- !ruby/object:Gem::Dependency
|
238
238
|
name: yard
|
239
239
|
requirement: !ruby/object:Gem::Requirement
|
240
240
|
requirements:
|
241
241
|
- - "~>"
|
242
242
|
- !ruby/object:Gem::Version
|
243
|
-
version: '0.
|
243
|
+
version: '0.9'
|
244
244
|
type: :development
|
245
245
|
prerelease: false
|
246
246
|
version_requirements: !ruby/object:Gem::Requirement
|
247
247
|
requirements:
|
248
248
|
- - "~>"
|
249
249
|
- !ruby/object:Gem::Version
|
250
|
-
version: '0.
|
250
|
+
version: '0.9'
|
251
251
|
- !ruby/object:Gem::Dependency
|
252
252
|
name: rspec-html-matchers
|
253
253
|
requirement: !ruby/object:Gem::Requirement
|
254
254
|
requirements:
|
255
255
|
- - "~>"
|
256
256
|
- !ruby/object:Gem::Version
|
257
|
-
version: '0.
|
257
|
+
version: '0.9'
|
258
258
|
type: :development
|
259
259
|
prerelease: false
|
260
260
|
version_requirements: !ruby/object:Gem::Requirement
|
261
261
|
requirements:
|
262
262
|
- - "~>"
|
263
263
|
- !ruby/object:Gem::Version
|
264
|
-
version: '0.
|
264
|
+
version: '0.9'
|
265
265
|
description: Start a markdown server in any directory
|
266
266
|
email: db@dannyben.com
|
267
267
|
executables:
|
@@ -328,7 +328,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
328
328
|
version: '0'
|
329
329
|
requirements: []
|
330
330
|
rubyforge_project:
|
331
|
-
rubygems_version: 2.
|
331
|
+
rubygems_version: 2.5.1
|
332
332
|
signing_key:
|
333
333
|
specification_version: 4
|
334
334
|
summary: Instant Markdown Server
|