@braintree/jsdoc-template 4.0.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.
Files changed (55) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/LICENSE +27 -0
  3. package/README.md +89 -0
  4. package/package.json +51 -0
  5. package/publish.js +676 -0
  6. package/static/fonts/OpenSans-Bold-webfont.eot +0 -0
  7. package/static/fonts/OpenSans-Bold-webfont.svg +1830 -0
  8. package/static/fonts/OpenSans-Bold-webfont.woff +0 -0
  9. package/static/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
  10. package/static/fonts/OpenSans-BoldItalic-webfont.svg +1830 -0
  11. package/static/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
  12. package/static/fonts/OpenSans-Italic-webfont.eot +0 -0
  13. package/static/fonts/OpenSans-Italic-webfont.svg +1830 -0
  14. package/static/fonts/OpenSans-Italic-webfont.woff +0 -0
  15. package/static/fonts/OpenSans-Light-webfont.eot +0 -0
  16. package/static/fonts/OpenSans-Light-webfont.svg +1831 -0
  17. package/static/fonts/OpenSans-Light-webfont.woff +0 -0
  18. package/static/fonts/OpenSans-LightItalic-webfont.eot +0 -0
  19. package/static/fonts/OpenSans-LightItalic-webfont.svg +1835 -0
  20. package/static/fonts/OpenSans-LightItalic-webfont.woff +0 -0
  21. package/static/fonts/OpenSans-Regular-webfont.eot +0 -0
  22. package/static/fonts/OpenSans-Regular-webfont.svg +1831 -0
  23. package/static/fonts/OpenSans-Regular-webfont.woff +0 -0
  24. package/static/fonts/OpenSans-Semibold-webfont.eot +0 -0
  25. package/static/fonts/OpenSans-Semibold-webfont.svg +1830 -0
  26. package/static/fonts/OpenSans-Semibold-webfont.ttf +0 -0
  27. package/static/fonts/OpenSans-Semibold-webfont.woff +0 -0
  28. package/static/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
  29. package/static/fonts/OpenSans-SemiboldItalic-webfont.svg +1830 -0
  30. package/static/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
  31. package/static/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
  32. package/static/icons/home.svg +4 -0
  33. package/static/icons/search.svg +4 -0
  34. package/static/scripts/linenumber.js +23 -0
  35. package/static/scripts/pagelocation.js +89 -0
  36. package/static/styles/collapse.css +27 -0
  37. package/static/styles/jsdoc-default.css +953 -0
  38. package/static/styles/prettify-jsdoc.css +111 -0
  39. package/static/styles/prettify-tomorrow.css +138 -0
  40. package/tmpl/augments.tmpl +10 -0
  41. package/tmpl/container.tmpl +213 -0
  42. package/tmpl/details.tmpl +223 -0
  43. package/tmpl/example.tmpl +2 -0
  44. package/tmpl/examples.tmpl +14 -0
  45. package/tmpl/exceptions.tmpl +28 -0
  46. package/tmpl/layout.tmpl +150 -0
  47. package/tmpl/mainpage.tmpl +9 -0
  48. package/tmpl/members.tmpl +38 -0
  49. package/tmpl/method.tmpl +128 -0
  50. package/tmpl/params.tmpl +125 -0
  51. package/tmpl/properties.tmpl +111 -0
  52. package/tmpl/returns.tmpl +17 -0
  53. package/tmpl/source.tmpl +9 -0
  54. package/tmpl/tutorial.tmpl +23 -0
  55. package/tmpl/type.tmpl +11 -0
@@ -0,0 +1,28 @@
1
+ <?js var data = obj; ?>
2
+ <?js if (data.description && data.type && data.type.names) { ?>
3
+ <dl>
4
+ <dt>
5
+ <div class="param-desc">
6
+ <?js= data.description ?>
7
+ </div>
8
+ </dt>
9
+ <dd></dd>
10
+ <dt>
11
+ <dl>
12
+ <dt>Type</dt>
13
+ <dd>
14
+ <?js= this.partial('type.tmpl', data.type.names) ?>
15
+ </dd>
16
+ </dl>
17
+ </dt>
18
+ <dd></dd>
19
+ </dl>
20
+ <?js } else { ?>
21
+ <div class="param-desc">
22
+ <?js if (data.description) { ?>
23
+ <?js= data.description ?>
24
+ <?js } else if (data.type && data.type.names) { ?>
25
+ <?js= this.partial('type.tmpl', data.type.names) ?>
26
+ <?js } ?>
27
+ </div>
28
+ <?js } ?>
@@ -0,0 +1,150 @@
1
+ <?js
2
+ var templates = env.conf.templates;
3
+ var usesSearch = Boolean(templates.search);
4
+ var collapseMenu = templates.collapse;
5
+ var resources = templates.resources;
6
+ ?>
7
+
8
+ <!DOCTYPE html>
9
+ <html lang="en">
10
+ <head>
11
+
12
+ <meta charset="utf-8">
13
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
14
+
15
+ <title>
16
+ <?js= title ?> - Documentation
17
+ </title>
18
+
19
+ <link href="https://www.braintreepayments.com/images/favicon-ccda0b14.png" rel="icon" type="image/png">
20
+
21
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.7.0/highlight.min.js"></script>
22
+ <script>hljs.initHighlightingOnLoad();</script>
23
+
24
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
25
+
26
+ <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
27
+ <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
28
+ <?js if (collapseMenu) { ?>
29
+ <link type="text/css" rel="stylesheet" href="styles/collapse.css">
30
+ <?js } ?>
31
+
32
+ <?js if (usesSearch) { ?>
33
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.css" />
34
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script>
35
+ <?js } ?>
36
+
37
+ <!-- start Mixpanel -->
38
+ <script type="text/javascript">(function(e,a){if(!a.__SV){var b=window;try{var c,l,i,j=b.location,g=j.hash;c=function(a,b){return(l=a.match(RegExp(b+"=([^&]*)")))?l[1]:null};g&&c(g,"state")&&(i=JSON.parse(decodeURIComponent(c(g,"state"))),"mpeditor"===i.action&&(b.sessionStorage.setItem("_mpcehash",g),history.replaceState(i.desiredHash||"",e.title,j.pathname+j.search)))}catch(m){}var k,h;window.mixpanel=a;a._i=[];a.init=function(b,c,f){function e(b,a){var c=a.split(".");2==c.length&&(b=b[c[0]],a=c[1]);b[a]=function(){b.push([a].concat(Array.prototype.slice.call(arguments,
39
+ 0)))}}var d=a;"undefined"!==typeof f?d=a[f]=[]:f="mixpanel";d.people=d.people||[];d.toString=function(b){var a="mixpanel";"mixpanel"!==f&&(a+="."+f);b||(a+=" (stub)");return a};d.people.toString=function(){return d.toString(1)+".people (stub)"};k="disable time_event track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config reset people.set people.set_once people.increment people.append people.union people.track_charge people.clear_charges people.delete_user".split(" ");
40
+ for(h=0;h<k.length;h++)e(d,k[h]);a._i.push([b,c,f])};a.__SV=1.2;b=e.createElement("script");b.type="text/javascript";b.async=!0;b.src="undefined"!==typeof MIXPANEL_CUSTOM_LIB_URL?MIXPANEL_CUSTOM_LIB_URL:"file:"===e.location.protocol&&"//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js".match(/^\/\//)?"https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js":"//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js";c=e.getElementsByTagName("script")[0];c.parentNode.insertBefore(b,c)}})(document,window.mixpanel||[]);
41
+ mixpanel.init("1919205b2da72e4da3b9b6639b444d59");</script>
42
+ <!-- end Mixpanel -->
43
+ </head>
44
+
45
+ <body>
46
+ <svg style="display: none;">
47
+ <defs>
48
+ <symbol id="linkIcon" fill="#706d77" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
49
+ <path d="M0 0h24v24H0z" fill="none"/>
50
+ <path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"/>
51
+ </symbol>
52
+ </defs>
53
+ </svg>
54
+
55
+ <input type="checkbox" id="nav-trigger" class="nav-trigger" />
56
+ <label for="nav-trigger" class="navicon-button x">
57
+ <div class="navicon"></div>
58
+ </label>
59
+
60
+ <label for="nav-trigger" class="overlay"></label>
61
+
62
+ <div class="top-nav-wrapper">
63
+ <ul>
64
+ <li <?js if (title == 'Home') { ?> class="active" <?js } ?>>
65
+ <a href="index.html">
66
+ <?js if (title != 'Home') { ?>
67
+ <svg fill="#6D6D6D" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
68
+ <path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"/>
69
+ <path d="M0 0h24v24H0z" fill="none"/>
70
+ </svg>
71
+ <?js } ?>
72
+ <?js if (title == 'Home') { ?>
73
+ <svg fill="#0095dd" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
74
+ <path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"/>
75
+ <path d="M0 0h24v24H0z" fill="none"/>
76
+ </svg>
77
+ <?js } ?>
78
+ </a>
79
+ </li>
80
+
81
+ <?js if (usesSearch) { ?>
82
+ <li>
83
+ <div class="search-wrapper">
84
+ <svg fill="#6D6D6D" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
85
+ <path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>
86
+ <path d="M0 0h24v24H0z" fill="none"/>
87
+
88
+ </svg>
89
+ <input type="text" placeholder="Search" class="search-input">
90
+ </div>
91
+ </li>
92
+ <?js } ?>
93
+
94
+ </ul>
95
+ </div>
96
+
97
+ <nav>
98
+ <h3 class="reference-title">
99
+ <?js= templates.referenceTitle || 'Braintree SDK Client Reference' ?>
100
+ </h3>
101
+
102
+ <?js if (resources) { ?>
103
+ <h3>
104
+ Resources
105
+ </h3>
106
+ <?js for (var resource in resources) { ?>
107
+ <a href="<?js= resources[resource] ?>"><?js= resource ?></a>
108
+ <?js } ?>
109
+ <?js } ?>
110
+
111
+ <?js= this.nav ?>
112
+ </nav>
113
+
114
+ <div id="main">
115
+ <?js if (title != 'Home') { ?>
116
+ <h1 class="page-title">
117
+ <?js= title ?>
118
+ </h1>
119
+ <?js } ?>
120
+
121
+ <?js= content ?>
122
+ </div>
123
+
124
+ <br class="clear">
125
+
126
+ <footer>
127
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc <?js= env.version.number ?></a>
128
+ </footer>
129
+
130
+ <script src="scripts/linenumber.js"></script>
131
+ <script src="scripts/pagelocation.js"></script>
132
+
133
+ <?js if (usesSearch) { ?>
134
+ <script>
135
+ $(function () {
136
+ window.docsearch({
137
+ apiKey: '<?js= templates.search.apiKey ?>',
138
+ indexName: '<?js= templates.search.indexName || "braintree" ?>',
139
+ inputSelector: '.search-input',
140
+ debug: false, // Set debug to true if you want to inspect the dropdown
141
+ algoliaOptions: {
142
+ hitsPerPage: <?js= templates.search.hitsPerPage || 7 ?>
143
+ }
144
+ });
145
+ });
146
+ </script>
147
+ <?js } ?>
148
+
149
+ </body>
150
+ </html>
@@ -0,0 +1,9 @@
1
+ <?js var data = obj; ?>
2
+
3
+ <?js if (data.readme) { ?>
4
+ <section class="readme">
5
+ <article>
6
+ <?js= data.readme ?>
7
+ </article>
8
+ </section>
9
+ <?js } ?>
@@ -0,0 +1,38 @@
1
+ <?js
2
+ var data = obj;
3
+ var self = this;
4
+ ?>
5
+
6
+ <h4 class="name" id="<?js= id ?>">
7
+ <?js= data.attribs + name + (data.signature ? data.signature : '') ?>
8
+ </h4>
9
+
10
+ <?js if (data.summary) { ?>
11
+ <p class="summary">
12
+ <?js= summary ?>
13
+ </p>
14
+ <?js } ?>
15
+
16
+ <?js if (data.description) { ?>
17
+ <div class="description">
18
+ <?js= data.description ?>
19
+ </div>
20
+ <?js } ?>
21
+
22
+ <?js= this.partial('details.tmpl', data) ?>
23
+
24
+ <?js if (data.fires && fires.length) { ?>
25
+ <h5>Fires:</h5>
26
+ <ul>
27
+ <?js fires.forEach(function(f) { ?>
28
+ <li>
29
+ <?js= self.linkto(f) ?>
30
+ </li>
31
+ <?js }); ?>
32
+ </ul>
33
+ <?js } ?>
34
+
35
+ <?js if (data.examples && examples.length) { ?>
36
+ <h5>Example<?js= examples.length > 1? 's':'' ?></h5>
37
+ <?js= this.partial('examples.tmpl', examples) ?>
38
+ <?js } ?>
@@ -0,0 +1,128 @@
1
+ <?js
2
+ var data = obj;
3
+ var self = this;
4
+ ?>
5
+
6
+ <?js if (data.kind !== 'module') { ?>
7
+ <?js if (data.kind === 'class' && data.classdesc) { ?>
8
+ <h2>Constructor</h2>
9
+ <?js } ?>
10
+
11
+ <span class='name-container'>
12
+ <a class="link-icon" href="<?js= '#' + data.id ?>">
13
+ <svg height="20" width="20" style="fill: black;">
14
+ <use xlink:href="#linkIcon"></use>
15
+ </svg>
16
+ </a>
17
+ <h4 class="name" id="<?js= id ?>">
18
+ <?js= data.attribs + (data.kind === 'class' ? 'new ' : '') + name + (data.signature || '') ?>
19
+ </h4>
20
+ </span>
21
+
22
+ <?js if (data.summary) { ?>
23
+ <p class="summary">
24
+ <?js= summary ?>
25
+ </p>
26
+ <?js } ?>
27
+ <?js } ?>
28
+
29
+ <?js if (data.kind !== 'module' && data.description) { ?>
30
+ <div class="description">
31
+ <?js= data.description ?>
32
+ </div>
33
+ <?js } ?>
34
+
35
+ <?js if (data.augments && data.alias && data.alias.indexOf('module:') === 0) { ?>
36
+ <h5>Extends:</h5>
37
+ <?js= self.partial('augments.tmpl', data) ?>
38
+ <?js } ?>
39
+
40
+ <?js if (data['this']) { ?>
41
+ <h5>This:</h5>
42
+ <ul>
43
+ <li>
44
+ <?js= this.linkto(data['this'], data['this']) ?>
45
+ </li>
46
+ </ul>
47
+ <?js } ?>
48
+
49
+ <?js if (data.params && params.length) { ?>
50
+ <h5>Parameters:</h5>
51
+ <?js= this.partial('params.tmpl', params) ?>
52
+ <?js } ?>
53
+
54
+ <?js= this.partial('details.tmpl', data) ?>
55
+
56
+ <?js if (data.kind !== 'module' && data.requires && data.requires.length) { ?>
57
+ <h5>Requires:</h5>
58
+ <ul>
59
+ <?js data.requires.forEach(function(r) { ?>
60
+ <li>
61
+ <?js= self.linkto(r) ?>
62
+ </li>
63
+ <?js }); ?>
64
+ </ul>
65
+ <?js } ?>
66
+
67
+ <?js if (data.fires && fires.length) { ?>
68
+ <h5>Fires:</h5>
69
+ <ul>
70
+ <?js fires.forEach(function(f) { ?>
71
+ <li>
72
+ <?js= self.linkto(f) ?>
73
+ </li>
74
+ <?js }); ?>
75
+ </ul>
76
+ <?js } ?>
77
+
78
+ <?js if (data.listens && listens.length) { ?>
79
+ <h5>Listens to Events:</h5>
80
+ <ul>
81
+ <?js listens.forEach(function(f) { ?>
82
+ <li>
83
+ <?js= self.linkto(f) ?>
84
+ </li>
85
+ <?js }); ?>
86
+ </ul>
87
+ <?js } ?>
88
+
89
+ <?js if (data.listeners && listeners.length) { ?>
90
+ <h5>Listeners of This Event:</h5>
91
+ <ul>
92
+ <?js listeners.forEach(function(f) { ?>
93
+ <li>
94
+ <?js= self.linkto(f) ?>
95
+ </li>
96
+ <?js }); ?>
97
+ </ul>
98
+ <?js } ?>
99
+
100
+ <?js if (data.exceptions && exceptions.length) { ?>
101
+ <h5>Throws:</h5>
102
+ <?js if (exceptions.length > 1) { ?>
103
+ <ul>
104
+ <?js exceptions.forEach(function(r) { ?>
105
+ <li>
106
+ <?js= self.partial('exceptions.tmpl', r) ?>
107
+ </li>
108
+ <?js });
109
+ ?>
110
+ </ul>
111
+ <?js } else {
112
+ exceptions.forEach(function(r) { ?>
113
+ <?js= self.partial('exceptions.tmpl', r) ?>
114
+ <?js });
115
+ }
116
+ } ?>
117
+
118
+ <?js if (data.examples && examples.length) { ?>
119
+ <div class="example-container">
120
+ <a class="link-icon" href="<?js= '#' + data.name + '-examples' ?>">
121
+ <svg height="20" width="20" style="fill: black;">
122
+ <use xlink:href="#linkIcon"></use>
123
+ </svg>
124
+ </a>
125
+ <h5 id="<?js= data.name + '-examples' ?>">Example<?js= examples.length > 1? 's':'' ?></h5>
126
+ <?js= this.partial('examples.tmpl', examples) ?>
127
+ </div>
128
+ <?js } ?>
@@ -0,0 +1,125 @@
1
+ <?js
2
+ var params = obj;
3
+
4
+ /* sort subparams under their parent params (like opts.classname) */
5
+ var parentParam = null;
6
+ params.forEach(function(param, i) {
7
+ var paramRegExp;
8
+
9
+ if (!param) { return; }
10
+
11
+ if (parentParam && parentParam.name && param.name) {
12
+ paramRegExp = new RegExp('^(?:' + parentParam.name + '(?:\\[\\])*)\\.(.+)$');
13
+
14
+ if (paramRegExp.test(param.name)) {
15
+ param.name = RegExp.$1;
16
+ parentParam.subparams = parentParam.subparams || [];
17
+ parentParam.subparams.push(param);
18
+ params[i] = null;
19
+ }
20
+ else {
21
+ parentParam = param;
22
+ }
23
+ } else {
24
+ parentParam = param;
25
+ }
26
+ });
27
+
28
+ /* determine if we need extra columns, "attributes" and "default" */
29
+ params.hasAttributes = false;
30
+ params.hasDefault = false;
31
+ params.hasName = false;
32
+
33
+ params.forEach(function(param) {
34
+ if (!param) { return; }
35
+
36
+ if (param.optional || param.nullable || param.variable) {
37
+ params.hasAttributes = true;
38
+ }
39
+
40
+ if (param.name) {
41
+ params.hasName = true;
42
+ }
43
+
44
+ if (typeof param.defaultvalue !== 'undefined') {
45
+ params.hasDefault = true;
46
+ }
47
+ });
48
+ ?>
49
+
50
+ <table class="params">
51
+ <thead>
52
+ <tr>
53
+ <?js if (params.hasName) {?>
54
+ <th>Name</th>
55
+ <?js } ?>
56
+
57
+ <th>Type</th>
58
+
59
+ <?js if (params.hasAttributes) {?>
60
+ <th>Attributes</th>
61
+ <?js } ?>
62
+
63
+ <?js if (params.hasDefault) {?>
64
+ <th>Default</th>
65
+ <?js } ?>
66
+
67
+ <th class="last">Description</th>
68
+ </tr>
69
+ </thead>
70
+
71
+ <tbody>
72
+ <?js
73
+ var self = this;
74
+
75
+ params.forEach(function(param) {
76
+ if (!param) { return; }
77
+ ?>
78
+ <tr>
79
+ <?js if (params.hasName) {?>
80
+ <td class="name"><code><?js= param.name ?></code></td>
81
+ <?js } ?>
82
+
83
+ <td class="type">
84
+ <?js if (param.type && param.type.names) {?>
85
+ <?js= self.partial('type.tmpl', param.type.names) ?>
86
+ <?js } ?>
87
+ </td>
88
+
89
+ <?js if (params.hasAttributes) {?>
90
+ <td class="attributes">
91
+ <?js if (param.optional) { ?>
92
+ &lt;optional><br>
93
+ <?js } ?>
94
+
95
+ <?js if (param.nullable) { ?>
96
+ &lt;nullable><br>
97
+ <?js } ?>
98
+
99
+ <?js if (param.variable) { ?>
100
+ &lt;repeatable><br>
101
+ <?js } ?>
102
+ </td>
103
+ <?js } ?>
104
+
105
+ <?js if (params.hasDefault) {?>
106
+ <td class="default">
107
+ <?js if (typeof param.defaultvalue !== 'undefined') { ?>
108
+ <?js= self.htmlsafe(param.defaultvalue) ?>
109
+ <?js } ?>
110
+ </td>
111
+ <?js } ?>
112
+
113
+ <td class="description last">
114
+ <?js= param.description ?>
115
+ <?js if (param.subparams) { ?>
116
+ <h6>Properties</h6>
117
+ <?js= self.partial('params.tmpl', param.subparams) ?>
118
+ <?js } ?>
119
+ </td>
120
+ </tr>
121
+
122
+ <?js }
123
+ ); ?>
124
+ </tbody>
125
+ </table>
@@ -0,0 +1,111 @@
1
+ <?js
2
+ var data = obj;
3
+ var props = data.subprops || data.properties;
4
+
5
+ /* sort subprops under their parent props (like opts.classname) */
6
+ var parentProp = null;
7
+ props.forEach(function(prop, i) {
8
+ if (!prop) { return; }
9
+ if ( parentProp && prop.name && prop.name.indexOf(parentProp.name + '.') === 0 ) {
10
+ prop.name = prop.name.substr(parentProp.name.length+1);
11
+ parentProp.subprops = parentProp.subprops || [];
12
+ parentProp.subprops.push(prop);
13
+ props[i] = null;
14
+ } else {
15
+ parentProp = prop;
16
+ }
17
+ });
18
+
19
+ /* determine if we need extra columns, "attributes" and "default" */
20
+ props.hasAttributes = false;
21
+ props.hasDefault = false;
22
+ props.hasName = false;
23
+
24
+ props.forEach(function(prop) {
25
+ if (!prop) { return; }
26
+
27
+ if (prop.optional || prop.nullable) {
28
+ props.hasAttributes = true;
29
+ }
30
+
31
+ if (prop.name) {
32
+ props.hasName = true;
33
+ }
34
+
35
+ if (typeof prop.defaultvalue !== 'undefined' && !data.isEnum) {
36
+ props.hasDefault = true;
37
+ }
38
+ });
39
+ ?>
40
+
41
+ <table class="props">
42
+ <thead>
43
+ <tr>
44
+ <?js if (props.hasName) {?>
45
+ <th>Name</th>
46
+ <?js } ?>
47
+
48
+ <th>Type</th>
49
+
50
+ <?js if (props.hasAttributes) {?>
51
+ <th>Attributes</th>
52
+ <?js } ?>
53
+
54
+ <?js if (props.hasDefault) {?>
55
+ <th>Default</th>
56
+ <?js } ?>
57
+
58
+ <th class="last">Description</th>
59
+ </tr>
60
+ </thead>
61
+
62
+ <tbody>
63
+ <?js
64
+ var self = this;
65
+
66
+ props.forEach(function(prop) {
67
+ if (!prop) { return; }
68
+ ?>
69
+
70
+ <tr>
71
+ <?js if (props.hasName) {?>
72
+ <td class="name"><code><?js= prop.name ?></code></td>
73
+ <?js } ?>
74
+
75
+ <td class="type">
76
+ <?js if (prop.type && prop.type.names) {?>
77
+ <?js= self.partial('type.tmpl', prop.type.names) ?>
78
+ <?js } ?>
79
+ </td>
80
+
81
+ <?js if (props.hasAttributes) {?>
82
+ <td class="attributes">
83
+ <?js if (prop.optional) { ?>
84
+ &lt;optional><br>
85
+ <?js } ?>
86
+
87
+ <?js if (prop.nullable) { ?>
88
+ &lt;nullable><br>
89
+ <?js } ?>
90
+ </td>
91
+ <?js } ?>
92
+
93
+ <?js if (props.hasDefault) {?>
94
+ <td class="default">
95
+ <?js if (typeof prop.defaultvalue !== 'undefined') { ?>
96
+ <?js= self.htmlsafe(prop.defaultvalue) ?>
97
+ <?js } ?>
98
+ </td>
99
+ <?js } ?>
100
+
101
+ <td class="description last">
102
+ <?js= prop.description ?>
103
+ <?js if (prop.subprops) { ?>
104
+ <h6>Properties</h6>
105
+ <?js= self.partial('properties.tmpl', prop) ?>
106
+ <?js } ?></td>
107
+ </tr>
108
+
109
+ <?js }); ?>
110
+ </tbody>
111
+ </table>
@@ -0,0 +1,17 @@
1
+ <?js
2
+ var data = obj || {};
3
+ if (data.description) {
4
+ ?>
5
+ <div class="param-desc">
6
+ <?js= description ?>
7
+ </div>
8
+ <?js } ?>
9
+
10
+ <?js if (data.type && data.type.names) {?>
11
+ <dl class="param-type">
12
+ <dt>Type</dt>
13
+ <dd>
14
+ <?js= this.partial('type.tmpl', data.type.names) ?>
15
+ </dd>
16
+ </dl>
17
+ <?js } ?>
@@ -0,0 +1,9 @@
1
+ <?js
2
+ var data = obj;
3
+ ?>
4
+
5
+ <section>
6
+ <article>
7
+ <pre class="prettyprint source linenums"><code><?js= data.code ?></code></pre>
8
+ </article>
9
+ </section>
@@ -0,0 +1,23 @@
1
+ <section>
2
+ <header>
3
+ <?js if (children.length > 0) { ?>
4
+ <ul>
5
+ <?js
6
+ var self = this;
7
+ children.forEach(function(t) { ?>
8
+ <li>
9
+ <?js= self.tutoriallink(t.name) ?>
10
+ </li>
11
+ <?js }); ?>
12
+ </ul>
13
+ <?js } ?>
14
+
15
+ <h2>
16
+ <?js= header ?>
17
+ </h2>
18
+ </header>
19
+
20
+ <article>
21
+ <?js= content ?>
22
+ </article>
23
+ </section>
package/tmpl/type.tmpl ADDED
@@ -0,0 +1,11 @@
1
+ <?js
2
+ var data = obj;
3
+ var self = this;
4
+
5
+ data.forEach(function(name, i) { ?>
6
+ <span class="param-type">
7
+ <?js= self.linkto(name, self.htmlsafe(name)) ?>
8
+ </span>
9
+
10
+ <?js if (i < data.length-1) { ?>|<?js } ?>
11
+ <?js }); ?>