| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- <?js
- var params = obj;
- /* sort subparams under their parent params (like opts.classname) */
- var parentParam = null;
- params.forEach(function(param, i) {
- var paramRegExp;
- if (!param) {
- return;
- }
- if (parentParam && parentParam.name && param.name) {
- try {
- paramRegExp = new RegExp('^(?:' + parentParam.name + '(?:\\[\\])*)\\.(.+)$');
- }
- catch (e) {
- // there's probably a typo in the JSDoc comment that resulted in a weird
- // parameter name
- return;
- }
- if ( paramRegExp.test(param.name) ) {
- param.name = RegExp.$1;
- parentParam.subparams = parentParam.subparams || [];
- parentParam.subparams.push(param);
- params[i] = null;
- }
- else {
- parentParam = param;
- }
- }
- else {
- parentParam = param;
- }
- });
- /* determine if we need extra columns, "attributes" and "default" */
- params.hasName = false;
- params.forEach(function(param) {
- if (!param) { return; }
- if (param.name) {
- params.hasName = true;
- }
- });
- ?>
- <table class="params">
- <tbody>
- <?js
- var self = this;
- params.forEach(function(param) {
- if (!param) { return; }
- ?>
- <tr>
- <?js if (params.hasName) {?>
- <td class="name"><code><?js= param.name ?></code></td>
- <?js } ?>
- <td class="description last"><?js
- var desc = param.description;
- if (typeof param.defaultvalue !== 'undefined') {
- var defaultText = '<br/>Default is <code>' + self.htmlsafe(param.defaultvalue) + '</code>.';
- // If description ends with </p>, insert default before closing tag
- if (desc.trim().endsWith('</p>')) {
- desc = desc.trim().slice(0, -4) + defaultText + '</p>';
- } else {
- desc = desc + defaultText;
- }
- }
- ?><?js= desc ?><?js if (param.subparams) { ?>
- <h6>Properties</h6>
- <?js= self.partial('params.tmpl', param.subparams) ?>
- <?js } ?></td>
- </tr>
- <?js }); ?>
- </tbody>
- </table>
|