madness 0.9.3 → 0.9.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4d1899b2ed090d1ff053077a195f6e5a8c80a24ba66ebbe6e9ed1f50ad167a5c
4
- data.tar.gz: d13d70143ba4f3ac510e83d738df2d5a1cb15f03db33f2ac2e9c255fabb8ff19
3
+ metadata.gz: 9954342312c1b0fcceffa8753071f6da48f619b7c25b5a007d5c62f50188e88d
4
+ data.tar.gz: 8687f6f8a42ee63e3c25c14193c82e5ec7de611dd066f326814218c7ae16b498
5
5
  SHA512:
6
- metadata.gz: 61e495e8e475069111ba693451bbde77876e5ddf784a035250aaca3321defe30409a011bcb3264519812d992b7bd050625cf3d719eb286b90eecc73e6a40050a
7
- data.tar.gz: 796aa6f34076dffdb370233f21f7df5973142839f8fc4cdfbc1666c426d518498a83daf604e999c61fcd72045876dd966f5c50cca4249b4a3b06153bc4b679da
6
+ metadata.gz: 3cdad49579a55393e76fd8e4ffc7ddd8eb68621a4a0d07e5876d4b5ce396e274dd5b7f3d02b631ac1287b474c81250de92882a291fa404d617cd37a4ec880c1c
7
+ data.tar.gz: 56e641741fcba7b549337cfd9659548b930ab25291a3fa363f8f084429fb0ba3a8127f288f76412276807debb3cdc7562ca5c6c172a5a2151b27265b72b66323
data/README.md CHANGED
@@ -30,7 +30,7 @@
30
30
  * [Hidden Directories](#hidden-directories)
31
31
  * [Controlling Sort Order](#controlling-sort-order)
32
32
  * [Displaying Additional File Types](#displaying-additional-file-types)
33
- * [Basic Authntication](#basic-authentication)
33
+ * [Basic Authentication](#basic-authentication)
34
34
  * [Customizing Theme](#customizing-theme)
35
35
  * [Forcing HTTPS Connection](#forcing-https-connection)
36
36
  * [Docker Image](#docker-image)
@@ -117,22 +117,62 @@ documentation directory, and modify any of the settings below.
117
117
 
118
118
  ```yaml
119
119
  # .madness.yml
120
- path: '.'
121
- port: '3000'
122
- bind: '0.0.0.0'
120
+
121
+ # path to the documentation root
122
+ path: .
123
+
124
+ # server port
125
+ port: 3000
126
+
127
+ # server listen address
128
+ bind: 0.0.0.0
129
+
130
+ # enable sidebar
123
131
  sidebar: true
132
+
133
+ # add H1 title to files that do not have one
124
134
  auto_h1: true
135
+
136
+ # append navigation to directory READMEs
125
137
  auto_nav: true
138
+
139
+ # enable syntax highlighter for code snippets
126
140
  highlighter: true
141
+
142
+ # enable line numbers for code snippets
127
143
  line_numbers: true
144
+
145
+ # enable the copy to clipboard icon for code snippets
128
146
  copy_code: true
129
- toc: Table of Contents
130
- theme: _theme
147
+
148
+ # generate a table of contents file with this name, for example:
149
+ # toc: Table of Contents
150
+ toc: ~
151
+
152
+ # path to theme folder, for example:
153
+ # theme: _theme
154
+ theme: ~
155
+
156
+ # open the server URL in the browser
131
157
  open: false
158
+
159
+ # provide user:password for basic authentication, for example:
160
+ # auth: admin:s3cr3t
161
+ auth: false
162
+
163
+ # if auth is enabled, specify auth realm name
164
+ auth_zone: Madness
165
+
166
+ # show files with these extensions in the navigation and search, for example:
167
+ # expose_extensions: pdf,docx,xlsx,txt
132
168
  expose_extensions: ~
169
+
170
+ # exclude directories that match these regular expressions
171
+ # note that this is an array
172
+ exclude: ['^[a-z_\-0-9]+$']
133
173
  ```
134
174
 
135
- For convenience, you can get a template config file by running:
175
+ For convenience, you can generate a template config file by running:
136
176
 
137
177
  ```shell
138
178
  $ madness create config
@@ -191,10 +231,23 @@ numbers (`/^[a-z_\-0-9]+$/`) will not be displayed in the navigation. In
191
231
  other words, directories must have at least one uppercase letter or a space
192
232
  to be recognized as a documentation directory.
193
233
 
234
+ This can be configured by using the `exclude` configuration option:
235
+
236
+ ```yaml
237
+ # do not ignore any directory
238
+ exclude: ~
239
+
240
+ # ignore only specific directories
241
+ exclude: [assets, public]
242
+
243
+ # ignore using regular expressions
244
+ exclude: ['^public$', 'assets']
245
+ ```
246
+
194
247
  ## Controlling Sort Order
195
248
 
196
249
  To control the sort order of the automatically generated navigation elements,
197
- simply perfix your files and directories with digits followed by a dot and a
250
+ simply prefix your files and directories with digits followed by a dot and a
198
251
  space, just like you would create an ordered list in Markdown. The numbers
199
252
  will be omitted when they are displayed.
200
253
 
@@ -27,13 +27,19 @@ module Madness
27
27
 
28
28
  def dirs
29
29
  result = Dir["#{dir}/*"].select { |f| File.directory? f }
30
- result.reject! do |f|
31
- basename = File.basename(f)
32
- basename =~ /^[a-z_\-0-9]+$/
33
- end
30
+ result.reject! { |f| exclude? f }
34
31
  result.nat_sort.map { |path| Item.new path, :dir }
35
32
  end
36
33
 
34
+ def exclude?(path)
35
+ return false unless config.exclude.is_a? Array
36
+ basename = File.basename path
37
+ config.exclude.each do |pattern|
38
+ return true if basename =~ Regexp.new(pattern)
39
+ end
40
+ false
41
+ end
42
+
37
43
  def config
38
44
  @config ||= Settings.instance
39
45
  end
@@ -48,20 +48,22 @@ module Madness
48
48
 
49
49
  def defaults
50
50
  {
51
+ path: '.',
51
52
  port: 3000,
52
53
  bind: '0.0.0.0',
53
- path: '.',
54
+ sidebar: true,
54
55
  auto_h1: true,
56
+ auto_nav: true,
55
57
  highlighter: true,
56
58
  line_numbers: true,
57
59
  copy_code: true,
60
+ toc: nil,
58
61
  theme: nil,
59
62
  open: false,
60
- auto_nav: true,
61
- sidebar: true,
62
63
  auth: false,
63
64
  auth_realm: 'Madness',
64
- expose_extensions: nil
65
+ expose_extensions: nil,
66
+ exclude: [/^[a-z_\-0-9]+$/]
65
67
  }
66
68
  end
67
69
 
@@ -70,7 +72,13 @@ module Madness
70
72
  end
71
73
 
72
74
  def file_data
73
- file_exist? ? ExtendedYAML.load(filename).symbolize_keys : {}
75
+ result = if file_exist?
76
+ ExtendedYAML.load(filename)&.symbolize_keys
77
+ else
78
+ {}
79
+ end
80
+
81
+ result || {}
74
82
  end
75
83
 
76
84
  end
@@ -1,18 +1,56 @@
1
1
  # Madness configuration file
2
- # Uncomment any of the options below
3
-
4
- # path: .
5
- # port: 3000
6
- # bind: 0.0.0.0
7
- # sidebar: true
8
- # auto_h1: true
9
- # auto_nav: true
10
- # highlighter: true
11
- # line_numbers: true
12
- # copy_code: true
2
+ # These are the default configuration values
3
+ # You can delete any option you do not need
4
+
5
+ # path to the documentation root
6
+ path: .
7
+
8
+ # server port
9
+ port: 3000
10
+
11
+ # server listen address
12
+ bind: 0.0.0.0
13
+
14
+ # enable sidebar
15
+ sidebar: true
16
+
17
+ # add H1 title to files that do not have one
18
+ auto_h1: true
19
+
20
+ # append navigation to directory READMEs
21
+ auto_nav: true
22
+
23
+ # enable syntax highlighter for code snippets
24
+ highlighter: true
25
+
26
+ # enable line numbers for code snippets
27
+ line_numbers: true
28
+
29
+ # enable the copy to clipboard icon for code snippets
30
+ copy_code: true
31
+
32
+ # generate a table of contents file with this name, for example:
13
33
  # toc: Table of Contents
34
+ toc: ~
35
+
36
+ # path to theme folder, for example:
14
37
  # theme: _theme
15
- # open: false
16
- # auth: false
17
- # auth_zone: 'Madness'
18
- # expose_extensions: ~
38
+ theme: ~
39
+
40
+ # open the server URL in the browser
41
+ open: false
42
+
43
+ # provide user:password for basic authentication, for example:
44
+ # auth: admin:s3cr3t
45
+ auth: false
46
+
47
+ # if auth is enabled, specify auth realm name
48
+ auth_zone: Madness
49
+
50
+ # show files with these extensions in the navigation and search, for example:
51
+ # expose_extensions: pdf,docx,xlsx,txt
52
+ expose_extensions: ~
53
+
54
+ # exclude directories that match these regular expressions
55
+ # note that this is an array
56
+ exclude: ['^[a-z_\-0-9]+$']
@@ -1,3 +1,3 @@
1
1
  module Madness
2
- VERSION = "0.9.3"
2
+ VERSION = "0.9.4"
3
3
  end
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.9.3
4
+ version: 0.9.4
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: 2021-02-05 00:00:00.000000000 Z
11
+ date: 2021-09-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: coderay
@@ -282,7 +282,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
282
282
  - !ruby/object:Gem::Version
283
283
  version: '0'
284
284
  requirements: []
285
- rubygems_version: 3.2.3
285
+ rubygems_version: 3.2.25
286
286
  signing_key:
287
287
  specification_version: 4
288
288
  summary: Instant Markdown Server