rain-doc 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/lib/output.rb +31 -0
- data/templates/css/rain.css +14 -0
- data/templates/doc.erb +10 -10
- metadata +15 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 92ea5b3512a732bd0fe45d4352ffc26ab76d68ba
|
4
|
+
data.tar.gz: 141fd51fb9902ab6fb6d4ded0505a6c80ee3e55c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 863f0f4e70124d1a8df0534d5ae2b83fc8a77cfbdd4e7cbba8c7d73e92fc502b2fcae7e64b0ff8e8ca9d120594cb054b2b3c49c9bea30ebf18c0e95fe7a4f6ce
|
7
|
+
data.tar.gz: 8cc352acd390172c7f210429c4f5680fb374d09c40bd8b8ab07b1d40d8a838aac3d252f572b2b4d4821cecc54dfaaabe8364e1485bf84148de2fbb5579ec681b
|
data/lib/output.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'redcarpet'
|
2
|
+
|
1
3
|
module Rain
|
2
4
|
class Output
|
3
5
|
|
@@ -56,6 +58,12 @@ module Rain
|
|
56
58
|
|
57
59
|
# create an openstruct from the current doc and render into the template
|
58
60
|
doc_os = OpenStruct.new(doc.to_hash)
|
61
|
+
|
62
|
+
# convert the doc lines from each of the doc parts
|
63
|
+
# from markdown to HTML.
|
64
|
+
doc_os = doc_to_markdown(doc_os)
|
65
|
+
|
66
|
+
# render the doc into the ERB template.
|
59
67
|
doc_rendered = ERB.new(doc_template).result(doc_os.instance_eval {binding})
|
60
68
|
|
61
69
|
# create a struct with the rendered doc output then render into the layout with nav
|
@@ -176,5 +184,28 @@ module Rain
|
|
176
184
|
File.open("./rain_out/#{file_name}", 'w') { |file| file.write(html) }
|
177
185
|
end
|
178
186
|
|
187
|
+
def doc_to_markdown(doc)
|
188
|
+
|
189
|
+
# loop through all of the doc pars
|
190
|
+
markdown_renderer = Redcarpet::Markdown.new(Redcarpet::Render::HTML, tables: true, fenced_code_blocks: true)
|
191
|
+
doc[:parts].each do |part|
|
192
|
+
|
193
|
+
# join the lines and render with markdown.
|
194
|
+
part[:markdown] = markdown_renderer.render(part[:doc].join("\n"))
|
195
|
+
|
196
|
+
# loop through all of the params and render their markdown
|
197
|
+
part[:params].each do |param|
|
198
|
+
param[:markdown] = markdown_renderer.render(param[:text].join("\n"))
|
199
|
+
end
|
200
|
+
|
201
|
+
# loop through all of the headers and render their markdown
|
202
|
+
part[:headers].each do |header|
|
203
|
+
header[:markdown] = markdown_renderer.render(header[:text].join("\n"))
|
204
|
+
end
|
205
|
+
end
|
206
|
+
|
207
|
+
doc
|
208
|
+
end
|
209
|
+
|
179
210
|
end
|
180
211
|
end
|
data/templates/css/rain.css
CHANGED
@@ -35,6 +35,20 @@ p {
|
|
35
35
|
background-color: #e54400;
|
36
36
|
}
|
37
37
|
|
38
|
+
/* Styles to make rendered markdown output fonts smaller than defaults, to avoid gigantic headers etc. */
|
39
|
+
.rain-doc-markdown p,
|
40
|
+
.rain-doc-markdown h1, .rain-doc-markdown h2, .rain-doc-markdown h3,
|
41
|
+
.rain-doc-markdown h4, .rain-doc-markdown h5, .rain-doc-markdown h6 {
|
42
|
+
font-size: 1.2em;
|
43
|
+
}
|
44
|
+
.rain-doc-markdown h1 { font-size: 2em; }
|
45
|
+
.rain-doc-markdown h2 { font-size: 1.8em; }
|
46
|
+
.rain-doc-markdown h3 { font-size: 1.6em; }
|
47
|
+
.rain-doc-markdown h4 { font-size: 1.4em; }
|
48
|
+
.rain-doc-markdown h5 { font-size: 1.2em; }
|
49
|
+
.rain-doc-markdown h6 { font-size: 1em; }
|
50
|
+
.rain-doc-markdown table > tbody > tr > td > p { font-size: 1em !important; margin: 0 !important; }
|
51
|
+
|
38
52
|
/* Footer and rain version information styles */
|
39
53
|
.rain-version-info {
|
40
54
|
text-align: center;
|
data/templates/doc.erb
CHANGED
@@ -14,13 +14,13 @@
|
|
14
14
|
<% end %>
|
15
15
|
|
16
16
|
<!-- display all of the docs together for the doc_part -->
|
17
|
-
<
|
18
|
-
<%=
|
19
|
-
|
17
|
+
<div class="rain-doc-markdown">
|
18
|
+
<%= doc_part[:markdown] %>
|
19
|
+
</p>
|
20
20
|
|
21
21
|
<!-- show all of the params in a table -->
|
22
22
|
<% if doc_part[:params].length > 0 %>
|
23
|
-
<
|
23
|
+
<h4>Parameters</h4>
|
24
24
|
<table class="u-full-width">
|
25
25
|
<thead>
|
26
26
|
<tr>
|
@@ -35,7 +35,7 @@
|
|
35
35
|
<td><%= param[:name] %></td>
|
36
36
|
<td><%= param[:type] %></td>
|
37
37
|
<td><%= param[:default].nil? ? 'N/A' : param[:default] %></td>
|
38
|
-
<td><%= param[:
|
38
|
+
<td><%= param[:markdown] %></td>
|
39
39
|
</tr>
|
40
40
|
<% end %>
|
41
41
|
</table>
|
@@ -43,7 +43,7 @@
|
|
43
43
|
|
44
44
|
<!-- show all of the headers in a table -->
|
45
45
|
<% if doc_part[:headers].length > 0 %>
|
46
|
-
<
|
46
|
+
<h4>Headers</h4>
|
47
47
|
<table class="u-full-width">
|
48
48
|
<thead>
|
49
49
|
<tr>
|
@@ -51,10 +51,10 @@
|
|
51
51
|
<th>Description</th>
|
52
52
|
</tr>
|
53
53
|
</thead>
|
54
|
-
<% doc_part[:headers].each do |
|
54
|
+
<% doc_part[:headers].each do |header| %>
|
55
55
|
<tr>
|
56
|
-
<td><%=
|
57
|
-
<td><%=
|
56
|
+
<td><%= header[:name] %></td>
|
57
|
+
<td><%= header[:markdown] %></td>
|
58
58
|
</tr>
|
59
59
|
<% end %>
|
60
60
|
</table>
|
@@ -62,7 +62,7 @@
|
|
62
62
|
|
63
63
|
<!-- show all of the responses with examples -->
|
64
64
|
<% if doc_part[:responses].length > 0 %>
|
65
|
-
<
|
65
|
+
<h4>Response Examples</h4>
|
66
66
|
<% doc_part[:responses].each do |response| %>
|
67
67
|
<p><strong><%= response[:code] %></strong> <%= response[:id].upcase %></p>
|
68
68
|
<pre><code><%= response[:text].join("\n") %></code></pre>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rain-doc
|
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
|
- Martin Brennan
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - '='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 0.19.1
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: redcarpet
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 3.2.2
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 3.2.2
|
55
69
|
description: "Rain is a gem to generate beautiful and customizable API documentation,
|
56
70
|
inspired by yard and rdoc. The aim of Rain is to generate beautiful
|
57
71
|
API documentation from a ruby comment syntax with markdown mixed in. \n The
|