params.tmpl 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?js
  2. var params = obj;
  3. /* sort subparams under their parent params (like opts.classname) */
  4. var parentParam = null;
  5. params.forEach(function(param, i) {
  6. var paramRegExp;
  7. if (!param) {
  8. return;
  9. }
  10. if (parentParam && parentParam.name && param.name) {
  11. try {
  12. paramRegExp = new RegExp('^(?:' + parentParam.name + '(?:\\[\\])*)\\.(.+)$');
  13. }
  14. catch (e) {
  15. // there's probably a typo in the JSDoc comment that resulted in a weird
  16. // parameter name
  17. return;
  18. }
  19. if ( paramRegExp.test(param.name) ) {
  20. param.name = RegExp.$1;
  21. parentParam.subparams = parentParam.subparams || [];
  22. parentParam.subparams.push(param);
  23. params[i] = null;
  24. }
  25. else {
  26. parentParam = param;
  27. }
  28. }
  29. else {
  30. parentParam = param;
  31. }
  32. });
  33. /* determine if we need extra columns, "attributes" and "default" */
  34. params.hasName = false;
  35. params.forEach(function(param) {
  36. if (!param) { return; }
  37. if (param.name) {
  38. params.hasName = true;
  39. }
  40. });
  41. ?>
  42. <table class="params">
  43. <tbody>
  44. <?js
  45. var self = this;
  46. params.forEach(function(param) {
  47. if (!param) { return; }
  48. ?>
  49. <tr>
  50. <?js if (params.hasName) {?>
  51. <td class="name">
  52. <strong><?js= param.name ?></strong>
  53. </td>
  54. <?js } ?>
  55. <td class="description last">
  56. <?js= param.description ?>
  57. <?js if (typeof param.defaultvalue !== 'undefined') { ?>
  58. <p>Default is <code><?js= self.htmlsafe(param.defaultvalue) ?></code>.</p>
  59. <?js } ?>
  60. <?js if (param.subparams) { ?>
  61. <?js= self.partial('params.tmpl', param.subparams) ?>
  62. <?js } ?>
  63. </td>
  64. </tr>
  65. <?js }); ?>
  66. </tbody>
  67. </table>
粤ICP备19079148号