params.tmpl 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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"><code><?js= param.name ?></code></td>
  52. <?js } ?>
  53. <td class="description last"><?js
  54. var desc = param.description;
  55. if (typeof param.defaultvalue !== 'undefined') {
  56. var defaultText = '<br/>Default is <code>' + self.htmlsafe(param.defaultvalue) + '</code>.';
  57. // If description ends with </p>, insert default before closing tag
  58. if (desc.trim().endsWith('</p>')) {
  59. desc = desc.trim().slice(0, -4) + defaultText + '</p>';
  60. } else {
  61. desc = desc + defaultText;
  62. }
  63. }
  64. ?><?js= desc ?><?js if (param.subparams) { ?>
  65. <h6>Properties</h6>
  66. <?js= self.partial('params.tmpl', param.subparams) ?>
  67. <?js } ?></td>
  68. </tr>
  69. <?js }); ?>
  70. </tbody>
  71. </table>
粤ICP备19079148号