madness 0.9.9 → 1.0.0.rc2
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 +74 -76
- data/app/public/css/main.css +494 -248
- data/app/public/css/main.css.map +30 -24
- data/app/public/font/fontello.eot +0 -0
- data/app/public/font/fontello.svg +16 -0
- data/app/public/font/fontello.ttf +0 -0
- data/app/public/font/fontello.woff +0 -0
- data/app/public/font/fontello.woff2 +0 -0
- data/app/public/js/clipboard.js +2 -2
- data/app/styles/_anchor.scss +5 -3
- data/app/styles/_breadcrumbs.scss +2 -1
- data/app/styles/_code.scss +35 -42
- data/app/styles/{_icons.scss → _fontello.scss} +28 -19
- data/app/styles/_footnotes.scss +5 -0
- data/app/styles/_general.scss +7 -3
- data/app/styles/_image.scss +0 -2
- data/app/styles/_keyboard.scss +8 -7
- data/app/styles/_line.scss +1 -26
- data/app/styles/_manifest.scss +12 -8
- data/app/styles/_nav.scss +5 -15
- data/app/styles/_rouge.scss +213 -0
- data/app/styles/_scrollbar.scss +9 -0
- data/app/styles/_search.scss +5 -6
- data/app/styles/_table.scss +12 -7
- data/app/styles/_typography.scss +9 -5
- data/app/styles/_variables.scss +40 -0
- data/app/styles/main.scss +3 -3
- data/app/views/_index_nav.slim +6 -5
- data/app/views/document.slim +2 -6
- data/bin/madness +6 -2
- data/lib/madness/cli.rb +21 -0
- data/lib/madness/commands/base.rb +11 -0
- data/lib/madness/commands/config.rb +48 -0
- data/lib/madness/commands/server.rb +76 -0
- data/lib/madness/commands/theme.rb +36 -0
- data/lib/madness/document.rb +5 -110
- data/lib/madness/exceptions.rb +6 -0
- data/lib/madness/highlight_renderer.rb +10 -0
- data/lib/madness/markdown_document.rb +103 -0
- data/lib/madness/server_base.rb +1 -1
- data/lib/madness/settings.rb +7 -7
- data/lib/madness/templates/madness.yml +6 -4
- data/lib/madness/version.rb +1 -1
- metadata +53 -50
- data/app/public/fonts/fontello.eot +0 -0
- data/app/public/fonts/fontello.svg +0 -16
- data/app/public/fonts/fontello.ttf +0 -0
- data/app/public/fonts/fontello.woff +0 -0
- data/app/public/fonts/fontello.woff2 +0 -0
- data/app/styles/_coderay.scss +0 -37
- data/lib/madness/command_line.rb +0 -139
- data/lib/madness/docopt.txt +0 -98
data/lib/madness/document.rb
CHANGED
@@ -1,8 +1,5 @@
|
|
1
|
-
require 'commonmarker'
|
2
|
-
require 'coderay'
|
3
|
-
|
4
1
|
module Madness
|
5
|
-
# Handle a single
|
2
|
+
# Handle a single document path.
|
6
3
|
class Document
|
7
4
|
include ServerHelper
|
8
5
|
using StringRefinements
|
@@ -18,12 +15,7 @@ module Madness
|
|
18
15
|
|
19
16
|
# Return the HTML for that document
|
20
17
|
def content
|
21
|
-
@content ||=
|
22
|
-
end
|
23
|
-
|
24
|
-
# Return the HTML for that document, force re-read.
|
25
|
-
def content!
|
26
|
-
%i[empty missing].include?(type) ? "<h1>#{title}</h1>" : markdown_to_html
|
18
|
+
@content ||= %i[empty missing].include?(type) ? "<h1>#{title}</h1>" : markdown.to_html
|
27
19
|
end
|
28
20
|
|
29
21
|
private
|
@@ -65,108 +57,11 @@ module Madness
|
|
65
57
|
end
|
66
58
|
|
67
59
|
def markdown
|
68
|
-
@markdown ||=
|
69
|
-
end
|
70
|
-
|
71
|
-
def pre_process_markdown
|
72
|
-
result = File.read file
|
73
|
-
result = evaluate_shortlinks result if config.shortlinks
|
74
|
-
result
|
75
|
-
end
|
76
|
-
|
77
|
-
def doc
|
78
|
-
@doc ||= CommonMarker.render_doc markdown, :DEFAULT, [:table]
|
79
|
-
end
|
80
|
-
|
81
|
-
# Convert markdown to HTML, with some additional processing:
|
82
|
-
# 1. Add anchors to headers
|
83
|
-
# 2. Syntax highilghting
|
84
|
-
# 3. Prepend H1 if needed
|
85
|
-
def markdown_to_html
|
86
|
-
replace_toc_marker
|
87
|
-
prepend_h1 if config.auto_h1
|
88
|
-
add_anchor_ids
|
89
|
-
html = doc.to_html :UNSAFE
|
90
|
-
html = syntax_highlight(html) if config.highlighter
|
91
|
-
html
|
92
|
-
end
|
93
|
-
|
94
|
-
# Add anchors with IDs before all headers
|
95
|
-
def add_anchor_ids
|
96
|
-
doc.walk do |node|
|
97
|
-
if node.type == :header
|
98
|
-
anchor = CommonMarker::Node.new(:inline_html)
|
99
|
-
|
100
|
-
next unless node.first_child.type == :text
|
101
|
-
|
102
|
-
anchor_id = node.first_child.string_content.to_slug
|
103
|
-
anchor.string_content = "<a id='#{anchor_id}'></a>"
|
104
|
-
node.prepend_child anchor
|
105
|
-
end
|
106
|
-
end
|
60
|
+
@markdown ||= MarkdownDocument.new(markdown_text, title: title)
|
107
61
|
end
|
108
62
|
|
109
|
-
|
110
|
-
|
111
|
-
toc_marker = doc.find do |node|
|
112
|
-
node.type == :html and node.string_content.include? '<!-- TOC -->'
|
113
|
-
end
|
114
|
-
|
115
|
-
return unless toc_marker
|
116
|
-
|
117
|
-
toc_marker.insert_after document_toc
|
118
|
-
toc_marker.insert_after CommonMarker.render_doc('## Table of Contents').first_child
|
119
|
-
end
|
120
|
-
|
121
|
-
# Replace [[link]] with [link](link)
|
122
|
-
def evaluate_shortlinks(raw)
|
123
|
-
raw.gsub(/\[\[([^\]]+)\]\]/) { "[#{$1}](#{$1.to_href})" }
|
124
|
-
end
|
125
|
-
|
126
|
-
# Returns a UL object containing the document table of contents
|
127
|
-
def document_toc
|
128
|
-
toc = []
|
129
|
-
doc.walk do |node|
|
130
|
-
next unless node.type == :header
|
131
|
-
|
132
|
-
level = node.header_level
|
133
|
-
next unless level.between? 2, 3
|
134
|
-
|
135
|
-
text = node.first_child.string_content
|
136
|
-
spacer = ' ' * (level - 1)
|
137
|
-
toc << "#{spacer}- [#{text}](##{text.to_slug})"
|
138
|
-
end
|
139
|
-
|
140
|
-
toc = toc.join "\n"
|
141
|
-
CommonMarker.render_doc(toc).first_child
|
142
|
-
end
|
143
|
-
|
144
|
-
# If the document does not start with an H1 tag, add it.
|
145
|
-
def prepend_h1
|
146
|
-
return unless doc.first_child
|
147
|
-
return if (doc.first_child.type == :header) && (doc.first_child.header_level == 1)
|
148
|
-
|
149
|
-
h1 = CommonMarker.render_doc("# #{title}").first_child
|
150
|
-
doc.first_child.insert_before h1
|
151
|
-
end
|
152
|
-
|
153
|
-
# Apply syntax highlighting with CodeRay. This will parse for any
|
154
|
-
# <code class='LANG'> sections in the HTML, pass it to CodeRay for
|
155
|
-
# highlighting.
|
156
|
-
# Since CodeRay adds another HTML escaping, on top of what RDiscount
|
157
|
-
# does, we unescape it before passing it to CodeRay.
|
158
|
-
#
|
159
|
-
# Open StackOverflow question:
|
160
|
-
# http://stackoverflow.com/questions/37771279/prevent-double-escaping-with-coderay-and-rdiscount
|
161
|
-
def syntax_highlight(html)
|
162
|
-
line_numbers = config.line_numbers ? :table : nil
|
163
|
-
opts = { css: :style, wrap: nil, line_numbers: line_numbers }
|
164
|
-
html.gsub(%r{<code class="language-(.+?)">(.+?)</code>}m) do
|
165
|
-
lang = $1
|
166
|
-
code = $2
|
167
|
-
code = CGI.unescapeHTML code
|
168
|
-
CodeRay.scan(code, lang).html opts
|
169
|
-
end
|
63
|
+
def markdown_text
|
64
|
+
@markdown_text ||= File.read file
|
170
65
|
end
|
171
66
|
|
172
67
|
def md_file?
|
@@ -0,0 +1,103 @@
|
|
1
|
+
require 'redcarpet'
|
2
|
+
|
3
|
+
module Madness
|
4
|
+
# Handle a pure markdown document.
|
5
|
+
class MarkdownDocument
|
6
|
+
include ServerHelper
|
7
|
+
using StringRefinements
|
8
|
+
|
9
|
+
attr_reader :markdown, :title
|
10
|
+
|
11
|
+
def initialize(markdown, title: nil)
|
12
|
+
@markdown = markdown
|
13
|
+
@title = title || ''
|
14
|
+
end
|
15
|
+
|
16
|
+
def text
|
17
|
+
@text ||= begin
|
18
|
+
result = markdown
|
19
|
+
result = parse_toc(result) if config.auto_toc
|
20
|
+
result = parse_shortlinks(result) if config.shortlinks
|
21
|
+
result = prepend_h1(result) if config.auto_h1
|
22
|
+
result
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def to_html
|
27
|
+
@to_html ||= Redcarpet::Markdown.new(redcarpet_renderer, redcarpet_options).render text
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def parse_toc(input)
|
33
|
+
input.gsub '<!-- TOC -->', toc
|
34
|
+
end
|
35
|
+
|
36
|
+
def parse_shortlinks(input)
|
37
|
+
input.gsub(/\[\[([^\]]+)\]\]/) { "[#{$1}](#{$1.to_href})" }
|
38
|
+
end
|
39
|
+
|
40
|
+
def prepend_h1(input)
|
41
|
+
return input if has_h1?(input)
|
42
|
+
|
43
|
+
"# #{title}\n\n#{input}"
|
44
|
+
end
|
45
|
+
|
46
|
+
def has_h1?(input)
|
47
|
+
lines = input.lines(chomp: true).reject(&:empty?)
|
48
|
+
return false if lines.empty?
|
49
|
+
|
50
|
+
lines[0].match(/^# \w+/) || (lines[1] && lines[0].match(/^\w+/) && lines[1].start_with?('='))
|
51
|
+
end
|
52
|
+
|
53
|
+
def redcarpet_options
|
54
|
+
@redcarpet_options ||= {
|
55
|
+
no_intra_emphasis: true,
|
56
|
+
autolink: true,
|
57
|
+
tables: true,
|
58
|
+
fenced_code_blocks: true,
|
59
|
+
strikethrough: true,
|
60
|
+
space_after_headers: true,
|
61
|
+
superscript: true,
|
62
|
+
underline: true,
|
63
|
+
highlight: true,
|
64
|
+
quote: false,
|
65
|
+
footnotes: true,
|
66
|
+
}
|
67
|
+
end
|
68
|
+
|
69
|
+
def redcarpet_renderer
|
70
|
+
redcarpet_handler.new with_toc_data: true
|
71
|
+
end
|
72
|
+
|
73
|
+
def redcarpet_handler
|
74
|
+
config.highlighter ? HighlightRenderer : Redcarpet::Render::HTML
|
75
|
+
end
|
76
|
+
|
77
|
+
def toc_caption
|
78
|
+
@toc_caption ||= if config.auto_toc.is_a?(String)
|
79
|
+
config.auto_toc
|
80
|
+
else
|
81
|
+
'## Table of Contents'
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
def toc
|
86
|
+
result = ["#{toc_caption}\n"]
|
87
|
+
markdown.lines(chomp: true).each do |line|
|
88
|
+
next unless line.start_with? '#'
|
89
|
+
|
90
|
+
matches = line.match(/^(?<level>\#{2,3})\s+(?<text>.+)/)
|
91
|
+
next unless matches
|
92
|
+
|
93
|
+
level = matches[:level].size - 1
|
94
|
+
text = matches[:text]
|
95
|
+
|
96
|
+
spacer = ' ' * level
|
97
|
+
result.push "#{spacer}- [#{text}](##{text.to_slug})"
|
98
|
+
end
|
99
|
+
|
100
|
+
result.join "\n"
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
data/lib/madness/server_base.rb
CHANGED
data/lib/madness/settings.rb
CHANGED
@@ -47,7 +47,9 @@ module Madness
|
|
47
47
|
data[:expose_extensions] ? "*.{md,#{data[:expose_extensions].delete(' ')}}" : '*.md'
|
48
48
|
end
|
49
49
|
|
50
|
-
|
50
|
+
def data
|
51
|
+
@data ||= defaults.merge(file_data)
|
52
|
+
end
|
51
53
|
|
52
54
|
def defaults
|
53
55
|
{
|
@@ -57,23 +59,21 @@ module Madness
|
|
57
59
|
sidebar: true,
|
58
60
|
auto_h1: true,
|
59
61
|
auto_nav: true,
|
62
|
+
auto_toc: true,
|
60
63
|
highlighter: true,
|
61
|
-
line_numbers: true,
|
62
64
|
copy_code: true,
|
63
65
|
shortlinks: false,
|
64
66
|
toc: nil,
|
65
67
|
theme: nil,
|
66
68
|
open: false,
|
67
69
|
auth: false,
|
68
|
-
|
70
|
+
auth_zone: 'Restricted Documentation',
|
69
71
|
expose_extensions: nil,
|
70
|
-
exclude: [
|
72
|
+
exclude: ['^[a-z_\-0-9]+$'],
|
71
73
|
}
|
72
74
|
end
|
73
75
|
|
74
|
-
|
75
|
-
@data ||= defaults.merge(file_data)
|
76
|
-
end
|
76
|
+
private
|
77
77
|
|
78
78
|
def file_data
|
79
79
|
result = if file_exist?
|
@@ -20,12 +20,14 @@ auto_h1: true
|
|
20
20
|
# append navigation to directory READMEs
|
21
21
|
auto_nav: true
|
22
22
|
|
23
|
+
# replace <!-- TOC --> in any file with its internal table of contents
|
24
|
+
# set to true to enable it with the default '## Table of Contents' caption,
|
25
|
+
# or set to any string that will be inserted before it as a caption.
|
26
|
+
auto_toc: true
|
27
|
+
|
23
28
|
# enable syntax highlighter for code snippets
|
24
29
|
highlighter: true
|
25
30
|
|
26
|
-
# enable line numbers for code snippets
|
27
|
-
line_numbers: true
|
28
|
-
|
29
31
|
# enable the copy to clipboard icon for code snippets
|
30
32
|
copy_code: true
|
31
33
|
|
@@ -48,7 +50,7 @@ open: false
|
|
48
50
|
auth: false
|
49
51
|
|
50
52
|
# if auth is enabled, specify auth realm name
|
51
|
-
auth_zone:
|
53
|
+
auth_zone: Restricted Documentation
|
52
54
|
|
53
55
|
# show files with these extensions in the navigation and search, for example:
|
54
56
|
# expose_extensions: pdf,docx,xlsx,txt
|
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: 1.0.0.rc2
|
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: 2023-01-
|
11
|
+
date: 2023-01-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -25,137 +25,131 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '2.7'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: colsole
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '0.5'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '0.5'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: extended_yaml
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.
|
47
|
+
version: '0.2'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0.
|
54
|
+
version: '0.2'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: mister_bin
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '0.
|
62
|
-
- - ">="
|
63
|
-
- !ruby/object:Gem::Version
|
64
|
-
version: 0.23.4
|
61
|
+
version: '0.7'
|
65
62
|
type: :runtime
|
66
63
|
prerelease: false
|
67
64
|
version_requirements: !ruby/object:Gem::Requirement
|
68
65
|
requirements:
|
69
66
|
- - "~>"
|
70
67
|
- !ruby/object:Gem::Version
|
71
|
-
version: '0.
|
72
|
-
- - ">="
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
version: 0.23.4
|
68
|
+
version: '0.7'
|
75
69
|
- !ruby/object:Gem::Dependency
|
76
|
-
name:
|
70
|
+
name: naturally
|
77
71
|
requirement: !ruby/object:Gem::Requirement
|
78
72
|
requirements:
|
79
73
|
- - "~>"
|
80
74
|
- !ruby/object:Gem::Version
|
81
|
-
version: '
|
75
|
+
version: '2.2'
|
82
76
|
type: :runtime
|
83
77
|
prerelease: false
|
84
78
|
version_requirements: !ruby/object:Gem::Requirement
|
85
79
|
requirements:
|
86
80
|
- - "~>"
|
87
81
|
- !ruby/object:Gem::Version
|
88
|
-
version: '
|
82
|
+
version: '2.2'
|
89
83
|
- !ruby/object:Gem::Dependency
|
90
|
-
name:
|
84
|
+
name: os
|
91
85
|
requirement: !ruby/object:Gem::Requirement
|
92
86
|
requirements:
|
93
87
|
- - "~>"
|
94
88
|
- !ruby/object:Gem::Version
|
95
|
-
version: 0
|
89
|
+
version: '1.0'
|
96
90
|
type: :runtime
|
97
91
|
prerelease: false
|
98
92
|
version_requirements: !ruby/object:Gem::Requirement
|
99
93
|
requirements:
|
100
94
|
- - "~>"
|
101
95
|
- !ruby/object:Gem::Version
|
102
|
-
version: 0
|
96
|
+
version: '1.0'
|
103
97
|
- !ruby/object:Gem::Dependency
|
104
|
-
name:
|
98
|
+
name: puma
|
105
99
|
requirement: !ruby/object:Gem::Requirement
|
106
100
|
requirements:
|
107
|
-
- - "
|
101
|
+
- - ">="
|
108
102
|
- !ruby/object:Gem::Version
|
109
|
-
version: '
|
103
|
+
version: '5.1'
|
110
104
|
type: :runtime
|
111
105
|
prerelease: false
|
112
106
|
version_requirements: !ruby/object:Gem::Requirement
|
113
107
|
requirements:
|
114
|
-
- - "
|
108
|
+
- - ">="
|
115
109
|
- !ruby/object:Gem::Version
|
116
|
-
version: '
|
110
|
+
version: '5.1'
|
117
111
|
- !ruby/object:Gem::Dependency
|
118
|
-
name:
|
112
|
+
name: redcarpet
|
119
113
|
requirement: !ruby/object:Gem::Requirement
|
120
114
|
requirements:
|
121
115
|
- - "~>"
|
122
116
|
- !ruby/object:Gem::Version
|
123
|
-
version: '
|
117
|
+
version: '3.5'
|
124
118
|
type: :runtime
|
125
119
|
prerelease: false
|
126
120
|
version_requirements: !ruby/object:Gem::Requirement
|
127
121
|
requirements:
|
128
122
|
- - "~>"
|
129
123
|
- !ruby/object:Gem::Version
|
130
|
-
version: '
|
124
|
+
version: '3.5'
|
131
125
|
- !ruby/object:Gem::Dependency
|
132
|
-
name:
|
126
|
+
name: requires
|
133
127
|
requirement: !ruby/object:Gem::Requirement
|
134
128
|
requirements:
|
135
|
-
- - "
|
129
|
+
- - "~>"
|
136
130
|
- !ruby/object:Gem::Version
|
137
|
-
version: '
|
131
|
+
version: '1.0'
|
138
132
|
type: :runtime
|
139
133
|
prerelease: false
|
140
134
|
version_requirements: !ruby/object:Gem::Requirement
|
141
135
|
requirements:
|
142
|
-
- - "
|
136
|
+
- - "~>"
|
143
137
|
- !ruby/object:Gem::Version
|
144
|
-
version: '
|
138
|
+
version: '1.0'
|
145
139
|
- !ruby/object:Gem::Dependency
|
146
|
-
name:
|
140
|
+
name: rouge
|
147
141
|
requirement: !ruby/object:Gem::Requirement
|
148
142
|
requirements:
|
149
143
|
- - "~>"
|
150
144
|
- !ruby/object:Gem::Version
|
151
|
-
version: '
|
145
|
+
version: '4.0'
|
152
146
|
type: :runtime
|
153
147
|
prerelease: false
|
154
148
|
version_requirements: !ruby/object:Gem::Requirement
|
155
149
|
requirements:
|
156
150
|
- - "~>"
|
157
151
|
- !ruby/object:Gem::Version
|
158
|
-
version: '
|
152
|
+
version: '4.0'
|
159
153
|
- !ruby/object:Gem::Dependency
|
160
154
|
name: sinatra
|
161
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -195,20 +189,20 @@ files:
|
|
195
189
|
- app/public/css/main.css
|
196
190
|
- app/public/css/main.css.map
|
197
191
|
- app/public/favicon.ico
|
198
|
-
- app/public/
|
199
|
-
- app/public/
|
200
|
-
- app/public/
|
201
|
-
- app/public/
|
202
|
-
- app/public/
|
192
|
+
- app/public/font/fontello.eot
|
193
|
+
- app/public/font/fontello.svg
|
194
|
+
- app/public/font/fontello.ttf
|
195
|
+
- app/public/font/fontello.woff
|
196
|
+
- app/public/font/fontello.woff2
|
203
197
|
- app/public/js/clipboard.js
|
204
198
|
- app/public/js/vendor/clipboard.min.js
|
205
199
|
- app/public/js/vendor/jquery.min.js
|
206
200
|
- app/styles/_anchor.scss
|
207
201
|
- app/styles/_breadcrumbs.scss
|
208
202
|
- app/styles/_code.scss
|
209
|
-
- app/styles/
|
203
|
+
- app/styles/_fontello.scss
|
204
|
+
- app/styles/_footnotes.scss
|
210
205
|
- app/styles/_general.scss
|
211
|
-
- app/styles/_icons.scss
|
212
206
|
- app/styles/_image.scss
|
213
207
|
- app/styles/_keyboard.scss
|
214
208
|
- app/styles/_line.scss
|
@@ -216,9 +210,12 @@ files:
|
|
216
210
|
- app/styles/_manifest.scss
|
217
211
|
- app/styles/_mixins.scss
|
218
212
|
- app/styles/_nav.scss
|
213
|
+
- app/styles/_rouge.scss
|
214
|
+
- app/styles/_scrollbar.scss
|
219
215
|
- app/styles/_search.scss
|
220
216
|
- app/styles/_table.scss
|
221
217
|
- app/styles/_typography.scss
|
218
|
+
- app/styles/_variables.scss
|
222
219
|
- app/styles/main.scss
|
223
220
|
- app/views/_breadcrumbs.slim
|
224
221
|
- app/views/_index_nav.slim
|
@@ -231,11 +228,17 @@ files:
|
|
231
228
|
- lib/madness.rb
|
232
229
|
- lib/madness/breadcrumbs.rb
|
233
230
|
- lib/madness/browser.rb
|
234
|
-
- lib/madness/
|
231
|
+
- lib/madness/cli.rb
|
232
|
+
- lib/madness/commands/base.rb
|
233
|
+
- lib/madness/commands/config.rb
|
234
|
+
- lib/madness/commands/server.rb
|
235
|
+
- lib/madness/commands/theme.rb
|
235
236
|
- lib/madness/directory.rb
|
236
|
-
- lib/madness/docopt.txt
|
237
237
|
- lib/madness/document.rb
|
238
|
+
- lib/madness/exceptions.rb
|
239
|
+
- lib/madness/highlight_renderer.rb
|
238
240
|
- lib/madness/item.rb
|
241
|
+
- lib/madness/markdown_document.rb
|
239
242
|
- lib/madness/navigation.rb
|
240
243
|
- lib/madness/refinements/array_refinements.rb
|
241
244
|
- lib/madness/refinements/hash_refinements.rb
|
@@ -270,9 +273,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
270
273
|
version: '2.7'
|
271
274
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
272
275
|
requirements:
|
273
|
-
- - "
|
276
|
+
- - ">"
|
274
277
|
- !ruby/object:Gem::Version
|
275
|
-
version:
|
278
|
+
version: 1.3.1
|
276
279
|
requirements: []
|
277
280
|
rubygems_version: 3.4.3
|
278
281
|
signing_key:
|
Binary file
|
@@ -1,16 +0,0 @@
|
|
1
|
-
<?xml version="1.0" standalone="no"?>
|
2
|
-
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
3
|
-
<svg xmlns="http://www.w3.org/2000/svg">
|
4
|
-
<metadata>Copyright (C) 2019 by original authors @ fontello.com</metadata>
|
5
|
-
<defs>
|
6
|
-
<font id="fontello" horiz-adv-x="1000" >
|
7
|
-
<font-face font-family="fontello" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
|
8
|
-
<missing-glyph horiz-adv-x="1000" />
|
9
|
-
<glyph glyph-name="export" unicode="" d="M750 60l0 56 100 82 0-188q0-20-15-35t-35-15l-750 0q-20 0-35 15t-15 35l0 550q0 22 14 36t36 14l288 0q-32-24-59-49t-39-39l-10-12-130 0 0-450 650 0z m-82 348q-166 0-242-41t-160-181q0 8 1 22t9 56 22 79 44 83 70 79 107 56 149 23l0 156 332-250-332-260 0 178z" horiz-adv-x="1000" />
|
10
|
-
|
11
|
-
<glyph glyph-name="home" unicode="" d="M888 336q16-16 11-27t-27-11l-84 0 0-310q0-14-1-21t-8-13-23-6l-204 0 0 310-204 0 0-310-194 0q-28 0-35 10t-7 30l0 310-84 0q-22 0-27 11t11 27l400 402q16 16 38 16t38-16z" horiz-adv-x="900" />
|
12
|
-
|
13
|
-
<glyph glyph-name="search-1" unicode="" d="M772 78q30-34 6-62l-46-46q-36-32-68 0l-190 190q-74-42-156-42-128 0-223 95t-95 223 90 219 218 91 224-95 96-223q0-88-46-162z m-678 358q0-88 68-156t156-68 151 63 63 153q0 88-68 155t-156 67-151-63-63-151z" horiz-adv-x="789" />
|
14
|
-
</font>
|
15
|
-
</defs>
|
16
|
-
</svg>
|
Binary file
|
Binary file
|
Binary file
|
data/app/styles/_coderay.scss
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
.clipboard-button {
|
2
|
-
position: absolute;
|
3
|
-
right: 0;
|
4
|
-
font-size: 1.25em;
|
5
|
-
opacity: 0.2;
|
6
|
-
transition: opacity 0.3s;
|
7
|
-
}
|
8
|
-
|
9
|
-
table.CodeRay:hover .clipboard-button {
|
10
|
-
opacity: 1;
|
11
|
-
transition: opacity 0.3s;
|
12
|
-
}
|
13
|
-
|
14
|
-
table.CodeRay {
|
15
|
-
position: relative;
|
16
|
-
margin-bottom: 0;
|
17
|
-
|
18
|
-
pre {
|
19
|
-
margin-bottom: 0;
|
20
|
-
}
|
21
|
-
|
22
|
-
tr, td {
|
23
|
-
border: 0;
|
24
|
-
pre {
|
25
|
-
margin-left: 0;
|
26
|
-
}
|
27
|
-
}
|
28
|
-
|
29
|
-
td.line-numbers {
|
30
|
-
background: #eee;
|
31
|
-
padding: 4px;
|
32
|
-
}
|
33
|
-
|
34
|
-
td.code {
|
35
|
-
}
|
36
|
-
|
37
|
-
}
|