webapidoc 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/generators/webapidoc/templates/index.md.erb +1 -1
- data/lib/generators/webapidoc/templates/sample.md.erb +10 -1
- data/lib/generators/webapidoc/templates/webapidoc.yml +1 -0
- data/lib/webapidoc/base.rb +6 -7
- data/lib/webapidoc/css/webapidoc.scss +58 -27
- data/lib/webapidoc/template.html.erb +58 -10
- data/lib/webapidoc/version.rb +1 -1
- metadata +3 -3
@@ -1,4 +1,4 @@
|
|
1
|
-
<%= @data[
|
1
|
+
<%= @data["title"] %> Sample Page
|
2
2
|
====================
|
3
3
|
|
4
4
|
Paragraphs
|
@@ -61,3 +61,12 @@ This is just some code.
|
|
61
61
|
]
|
62
62
|
|
63
63
|
This is some `code` within a paragraph. More to come!
|
64
|
+
This is just some more code.
|
65
|
+
|
66
|
+
[
|
67
|
+
{
|
68
|
+
"title": "apples",
|
69
|
+
"count": [12000, 20000],
|
70
|
+
"description": {"text": "...", "sensitive": false}
|
71
|
+
}
|
72
|
+
]
|
data/lib/webapidoc/base.rb
CHANGED
@@ -8,9 +8,7 @@ module Webapidoc
|
|
8
8
|
raise "both paths are invalid: #{t}"
|
9
9
|
end
|
10
10
|
|
11
|
-
def self.build
|
12
|
-
|
13
|
-
@data = data
|
11
|
+
def self.build
|
14
12
|
|
15
13
|
publicDir = "public/documentation"
|
16
14
|
docDir = "app/documentation"
|
@@ -18,9 +16,10 @@ module Webapidoc
|
|
18
16
|
|
19
17
|
# get config hash
|
20
18
|
configFile = 'config/webapidoc.yml'
|
21
|
-
|
19
|
+
@data = YAML.load_file(configFile).freeze
|
22
20
|
|
23
|
-
puts "building webapidoc for " +
|
21
|
+
puts "building webapidoc for " + @data["title"]
|
22
|
+
puts "api url: " + @data["url"]
|
24
23
|
|
25
24
|
# clean up
|
26
25
|
FileUtils.remove_dir publicDir if File.exists?(publicDir)
|
@@ -33,7 +32,7 @@ module Webapidoc
|
|
33
32
|
# copy jquery
|
34
33
|
FileUtils.copy(libDir + "/js/jquery.js", publicDir + "/js/jquery.js")
|
35
34
|
|
36
|
-
# copy
|
35
|
+
# copy highlight
|
37
36
|
FileUtils.copy(libDir + "/js/highlight.js", publicDir + "/js/highlight.js")
|
38
37
|
|
39
38
|
# compile webapidoc style
|
@@ -45,7 +44,7 @@ module Webapidoc
|
|
45
44
|
@chapters = []
|
46
45
|
|
47
46
|
# get chapter info
|
48
|
-
|
47
|
+
@data["chapters"].each_with_index do | chapter, idx|
|
49
48
|
|
50
49
|
inFile = "#{docDir}/#{chapter["file"]}.md"
|
51
50
|
outFile = chapter["file"] + ".html"
|
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
*/
|
20
20
|
|
21
|
-
$color-text: #
|
21
|
+
$color-text: #666;
|
22
22
|
$color: #148773;
|
23
23
|
$color-highlight: #17BCA5;
|
24
24
|
$color-code: #f0f0f0;
|
@@ -67,7 +67,7 @@ table {
|
|
67
67
|
h1, h2, h3, h4, h5, h6 {
|
68
68
|
font-family: inherit;
|
69
69
|
line-height: normal;
|
70
|
-
font-weight:
|
70
|
+
font-weight: 300;
|
71
71
|
color: inherit;
|
72
72
|
background-color: transparent;
|
73
73
|
border-bottom: none;
|
@@ -132,7 +132,7 @@ pre {
|
|
132
132
|
body {
|
133
133
|
|
134
134
|
font-family: "Lato", Calibri, Arial, sans-serif;
|
135
|
-
font-weight:
|
135
|
+
font-weight: 300;
|
136
136
|
color: $color-text;
|
137
137
|
|
138
138
|
background: #f9f9f9;
|
@@ -360,7 +360,7 @@ p {
|
|
360
360
|
font-size: 16px;
|
361
361
|
line-height: 1.4;
|
362
362
|
text-align: justify;
|
363
|
-
font-weight:
|
363
|
+
font-weight: 300;
|
364
364
|
margin-top: 12px;
|
365
365
|
}
|
366
366
|
|
@@ -478,16 +478,50 @@ p.version {
|
|
478
478
|
margin-top: 24px;
|
479
479
|
}
|
480
480
|
|
481
|
-
/* #Code Styles
|
481
|
+
/* #Code Styles
|
482
482
|
================================================== */
|
483
483
|
|
484
|
-
|
484
|
+
/* inline code */
|
485
|
+
code {
|
486
|
+
font-family: monospace;
|
487
|
+
background: $color-code;
|
488
|
+
color: #718c00;
|
489
|
+
border-radius: 4px;
|
490
|
+
text-shadow: none;
|
491
|
+
font-size: 14px;
|
492
|
+
line-height: 20px;
|
493
|
+
padding: 2px;
|
494
|
+
padding-left:4px;
|
495
|
+
padding-right:4px;
|
496
|
+
}
|
497
|
+
|
498
|
+
/* editor */
|
499
|
+
.ace_editor {
|
500
|
+
width: 100%;
|
501
|
+
display: block;
|
502
|
+
position: relative;
|
503
|
+
margin-top: 24px;
|
504
|
+
margin-bottom: 24px;
|
505
|
+
border: 1px solid #ddd;
|
506
|
+
}
|
507
|
+
|
508
|
+
/* #Response Code Styles, from tomorrow style -> http://jmblog.github.com/color-themes-for-google-code-highlightjs
|
509
|
+
================================================== */
|
510
|
+
|
511
|
+
pre.response {
|
512
|
+
padding: 10px;
|
513
|
+
|
514
|
+
border: 1px solid #ddd;
|
515
|
+
background: #F0F0F0;
|
516
|
+
border-radius: 4px;
|
517
|
+
box-shadow: 1px 1px 10px white;
|
518
|
+
|
485
519
|
.comment, .title {
|
486
520
|
color: #8e908c;
|
487
521
|
}
|
488
522
|
}
|
489
523
|
|
490
|
-
pre {
|
524
|
+
pre.response {
|
491
525
|
.variable, .attribute, .tag, .regexp, .ruby .constant {
|
492
526
|
color: #c82829;
|
493
527
|
}
|
@@ -506,29 +540,29 @@ pre {
|
|
506
540
|
}
|
507
541
|
}
|
508
542
|
|
509
|
-
pre {
|
543
|
+
pre.response {
|
510
544
|
.number, .preprocessor, .built_in, .literal, .params, .constant {
|
511
545
|
color: #f5871f;
|
512
546
|
}
|
513
547
|
}
|
514
548
|
|
515
|
-
pre {
|
549
|
+
pre.response {
|
516
550
|
.class, .ruby .class .title, .css .rules .attribute {
|
517
551
|
color: #eab700;
|
518
552
|
}
|
519
553
|
}
|
520
554
|
|
521
|
-
pre {
|
555
|
+
pre.response {
|
522
556
|
.string, .value, .inheritance, .header, .ruby .symbol, .xml .cdata {
|
523
557
|
color: #718c00;
|
524
558
|
}
|
525
559
|
}
|
526
560
|
|
527
|
-
pre .css .hexcolor {
|
561
|
+
pre.response .css .hexcolor {
|
528
562
|
color: #3e999f;
|
529
563
|
}
|
530
564
|
|
531
|
-
pre {
|
565
|
+
pre.response {
|
532
566
|
.function {
|
533
567
|
color: #4271ae;
|
534
568
|
}
|
@@ -547,21 +581,7 @@ pre {
|
|
547
581
|
}
|
548
582
|
}
|
549
583
|
|
550
|
-
|
551
|
-
font-family: monospace;
|
552
|
-
background: $color-code;
|
553
|
-
color: #718c00;
|
554
|
-
border-radius: 4px;
|
555
|
-
box-shadow: 1px 1px 10px #fff;
|
556
|
-
text-shadow: none;
|
557
|
-
font-size: 14px;
|
558
|
-
line-height: 20px;
|
559
|
-
padding: 2px;
|
560
|
-
padding-left:4px;
|
561
|
-
padding-right:4px;
|
562
|
-
}
|
563
|
-
|
564
|
-
pre {
|
584
|
+
pre.response {
|
565
585
|
margin-top: 12px;
|
566
586
|
|
567
587
|
.keyword, .javascript .function {
|
@@ -570,6 +590,15 @@ pre {
|
|
570
590
|
code {
|
571
591
|
display: block;
|
572
592
|
padding: 12px;
|
593
|
+
background: $color-code;
|
594
|
+
color: #718c00;
|
595
|
+
border-radius: 4px;
|
596
|
+
text-shadow: none;
|
597
|
+
line-height: 20px;
|
598
|
+
|
599
|
+
font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Droid Sans Mono', 'Consolas', monospace;
|
600
|
+
font-size: 12px;
|
601
|
+
|
573
602
|
}
|
574
603
|
.coffeescript .javascript, .javascript .xml, .tex .formula {
|
575
604
|
opacity: 0.5;
|
@@ -581,6 +610,8 @@ pre {
|
|
581
610
|
}
|
582
611
|
}
|
583
612
|
|
613
|
+
|
614
|
+
|
584
615
|
/* #Print Styles
|
585
616
|
================================================== */
|
586
617
|
|
@@ -2,10 +2,10 @@
|
|
2
2
|
<html lang="en">
|
3
3
|
<head>
|
4
4
|
<meta charset="utf-8">
|
5
|
-
<title>Webapidoc for <%= @data[
|
5
|
+
<title>Webapidoc for <%= @data["title"] %></title>
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
7
|
-
<meta name="description" content="in-depth WebAPI documentation for <%= @data[
|
8
|
-
<meta name="author" content="the nice guys from <%= @data[
|
7
|
+
<meta name="description" content="in-depth WebAPI documentation for <%= @data["title"] %>">
|
8
|
+
<meta name="author" content="the nice guys from <%= @data["title"] %>">
|
9
9
|
|
10
10
|
<!-- SVG version of grayscale filter: desaturate.svg -->
|
11
11
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" style="display: none;">
|
@@ -32,12 +32,8 @@
|
|
32
32
|
<script src="/documentation/js/jquery.js"></script>
|
33
33
|
<script src="/documentation/js/highlight.js"></script>
|
34
34
|
|
35
|
-
<!--
|
36
|
-
<script>
|
37
|
-
$(document).ready(function() {
|
38
|
-
hljs.initHighlightingOnLoad();
|
39
|
-
});
|
40
|
-
</script>
|
35
|
+
<!-- Ace Code Editor -->
|
36
|
+
<script src="http://d1n0x3qji82z53.cloudfront.net/src-min-noconflict/ace.js" type="text/javascript" charset="utf-8"></script>
|
41
37
|
|
42
38
|
<!-- Fav and touch icons -->
|
43
39
|
<link rel="shortcut icon" href="favicon.ico">
|
@@ -78,10 +74,62 @@
|
|
78
74
|
<!--/row-->
|
79
75
|
|
80
76
|
<footer>
|
81
|
-
<p>© <%= @data[
|
77
|
+
<p>© <%= @data["title"] %> 2012</p>
|
82
78
|
</footer>
|
83
79
|
|
84
80
|
</div>
|
85
81
|
|
82
|
+
<!-- enable script highlighting -->
|
83
|
+
<script>
|
84
|
+
$(document).ready(function() {
|
85
|
+
|
86
|
+
$("#content > pre > code").each( function (idx) {
|
87
|
+
var $editor = $(this);
|
88
|
+
var id = "editor" + idx;
|
89
|
+
var height = $editor.height();
|
90
|
+
|
91
|
+
$editor.attr("id", id)
|
92
|
+
|
93
|
+
/* build editor */
|
94
|
+
var editor = ace.edit(id);
|
95
|
+
editor.setTheme("ace/theme/tomorrow");
|
96
|
+
editor.getSession().setMode("ace/mode/javascript");
|
97
|
+
|
98
|
+
$editor.css("height", ((height+8) + "px"));
|
99
|
+
|
100
|
+
/* build response field */
|
101
|
+
var rid = "response" + idx;
|
102
|
+
var $response = $('<pre><code>change code to see response...</code></pre>').attr("id", rid).addClass("response");
|
103
|
+
|
104
|
+
$editor.after($response);
|
105
|
+
|
106
|
+
/* bind editor change function for api requests */
|
107
|
+
editor.on("change", function(e) {
|
108
|
+
console.log(e);
|
109
|
+
|
110
|
+
/* validate json */
|
111
|
+
var query = "";
|
112
|
+
|
113
|
+
try {
|
114
|
+
query = JSON.stringify($.parseJSON(editor.getValue()));
|
115
|
+
}
|
116
|
+
catch (err) {
|
117
|
+
return;
|
118
|
+
}
|
119
|
+
var url = "<%= @data['url'] %>";
|
120
|
+
$.getJSON(url + '&source=' + encodeURIComponent(query)).complete(function (data) {
|
121
|
+
|
122
|
+
|
123
|
+
$response.html("<code>" + data.responseText + "</code>");
|
124
|
+
hljs.highlightBlock($response[0]);
|
125
|
+
});
|
126
|
+
});
|
127
|
+
|
128
|
+
})
|
129
|
+
|
130
|
+
});
|
131
|
+
|
132
|
+
</script>
|
133
|
+
|
86
134
|
</body>
|
87
135
|
</html>
|
data/lib/webapidoc/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webapidoc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 7
|
10
|
+
version: 0.0.7
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Adrian Fuhrmann
|