diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 02:57:58 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 02:57:58 +0000 |
commit | be1c7e50e1e8809ea56f2c9d472eccd8ffd73a97 (patch) | |
tree | 9754ff1ca740f6346cf8483ec915d4054bc5da2d /web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/properties.tmpl | |
parent | Initial commit. (diff) | |
download | netdata-upstream.tar.xz netdata-upstream.zip |
Adding upstream version 1.44.3.upstream/1.44.3upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/properties.tmpl')
-rw-r--r-- | web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/properties.tmpl | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/properties.tmpl b/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/properties.tmpl new file mode 100644 index 00000000..dfa6ee0e --- /dev/null +++ b/web/server/h2o/libh2o/misc/oktavia/templates/jsdoc3/tmpl/properties.tmpl @@ -0,0 +1,107 @@ +<?js + var props = obj; + + /* sort subprops under their parent props (like opts.classname) */ + var parentProp = null; + props.forEach(function(prop, i) { + if (!prop) { return; } + if ( parentProp && prop.name.indexOf(parentProp.name + '.') === 0 ) { + prop.name = prop.name.substr(parentProp.name.length+1); + parentProp.subprops = parentProp.subprops || []; + parentProp.subprops.push(prop); + props[i] = null; + } + else { + parentProp = prop; + } + }); + + /* determine if we need extra columns, "attributes" and "default" */ + props.hasAttributes = false; + props.hasDefault = false; + props.hasName = false; + + props.forEach(function(prop) { + if (!prop) { return; } + + if (prop.optional || prop.nullable) { + props.hasAttributes = true; + } + + if (prop.name) { + props.hasName = true; + } + + if (typeof prop.defaultvalue !== 'undefined') { + props.hasDefault = true; + } + }); +?> + +<table class="props"> + <thead> + <tr> + <?js if (props.hasName) {?> + <th>Name</th> + <?js } ?> + + <th>Type</th> + + <?js if (props.hasAttributes) {?> + <th>Argument</th> + <?js } ?> + + <?js if (props.hasDefault) {?> + <th>Default</th> + <?js } ?> + + <th class="last">Description</th> + </tr> + </thead> + + <tbody> + <?js + var self = this; + props.forEach(function(prop) { + if (!prop) { return; } + ?> + + <tr> + <?js if (props.hasName) {?> + <td class="name"><code><?js= prop.name ?></code></td> + <?js } ?> + + <td class="type"> + <?js if (prop.type && prop.type.names) {?> + <?js= self.partial('type.tmpl', prop.type.names) ?> + <?js } ?> + </td> + + <?js if (props.hasAttributes) {?> + <td class="attributes"> + <?js if (prop.optional) { ?> + <optional><br> + <?js } ?> + + <?js if (prop.nullable) { ?> + <nullable><br> + <?js } ?> + </td> + <?js } ?> + + <?js if (props.hasDefault) {?> + <td class="default"> + <?js if (typeof prop.defaultvalue !== 'undefined') { ?> + <?js= self.htmlsafe(prop.defaultvalue) ?> + <?js } ?> + </td> + <?js } ?> + + <td class="description last"><?js= prop.description ?><?js if (prop.subprops) { ?> + <h6>Properties</h6><?js= self.partial('properties.tmpl', prop.subprops) ?> + <?js } ?></td> + </tr> + + <?js }); ?> + </tbody> +</table>
\ No newline at end of file |