如何在谷歌文档脚本中预览jsdoc评论

时间:2012-09-17 14:45:53

标签: google-apps-script google-sheets preview jsdoc

我知道问题1731已经提出请求在Google脚本编辑器中预览jsdoc。 http://code.google.com/p/google-apps-script-issues/issues/detail?id=1731

虽然我们等待实现这一点,但是预测我正在添加到我发布的库中的jsdoc注释的最佳方法是什么,而不需要我创建新版本?

1 个答案:

答案 0 :(得分:5)

2014年更新:Google Apps脚本编辑器的自动完成功能现在支持图书馆,您可以立即获得有关图书馆某些jsdoc评论的反馈。


这个解决方案并不理想 - 它没有提供与已发布的谷歌脚本库相同的外观 - 但至少我可以通过我的jsdoc评论来了解它们的外观,而不必不断创建新的我的库的版本没有功能增强。 如果有人可以详细说明其他步骤以获得我们从发布中看到的确切输出,请分享!

这就是我在Windows 7 PC上所做的。类似的步骤可能适用于其他平台,ymmv。

  • 通过将存储库下载为zipfile来获取jsdoc3。

  • 解压缩到方便的位置。我用了C:\jsdoc。这也安装了jsdoc3所需的Rhino jvm。

接下来,您需要将google脚本放入可由jsdoc3解析的本地文件中。 再说一遍,如果有人知道更好的方式,我全都听见了!

  • 为您的Google脚本项目设置本地目录。 C:\myscript,比如说。

  • 转到google docs / drive / whatever中的脚本,然后将整个内容复制到系统剪贴板中。

    <ctrl-A> <ctrl-C>
    
  • 使用您喜欢的文本编辑器粘贴剪贴板内容

    <ctrl-V>
    
  • 将结果保存在javascript文件中。 C:\myscript\testing.js,比如说。

好的,从这里解决文件,审核输出和编辑jsdoc注释直到你对它们感到满意为止。

jsdoc3的输出将进入“out”目录。

  • C:\myscript

  • 中打开命令窗口
  • 解析您的javascript文件。

    \jsdoc\jsdoc testing.js
    
  • 在默认浏览器中打开输出。

    out\index.html
    
  • 冲洗并重复,直至获得理想的效果。

  • 复制&amp;将已编辑的脚本粘贴回Google空间,验证您的代码是否已损坏,并制作新版本以生成已发布库的文档。

注意事项:

  • 输出的格式与您在已发布的Google Script Libary中看到的格式不同,但内容基本相同。请记住,Google只支持jsdoc标记的一部分(仅限@param和@returns) - 您可以将其他标记放入代码中,但它们将被忽略。

  • HTML表格可以包含在您的jsdoc评论中,但定制选项有限。

    • 您必须将<tbody></tbody>标记中的所有行括起来; <thead>中的行被忽略。
    • 此外 - 所有<th>都会被忽略。要使第一行脱颖而出,请使用<b></b>标记。
    • 不要理会任何单元格格式,align等将被忽略。
    • 您可以在样式属性中指定宽度,并且幸存下来。

实施例

以下是jsdoc和googlescript doc中呈现的一些元素的示例:

/**
 * Demonstrate jsdoc with a table. Otherwise, meaningless gibberish.
 *
 * <table> 
 * <tbody>
 * <tr><td style="width: 75%"><b>Student Name</b></td><td style="width: 25%"><b>Idiocy Factor</b></td></tr>
 * <tr><td> John Smith      </td><td align=right>  18 </td></tr>
 * <tr><td> Sally Doe       </td><td align=right>  53 </td></tr>
 * <tr><td> Carmen Sandiego </td><td align=right>  90 </td></tr>
 * <tr><td> Tam O'Shanter   </td><td align=right> 180 </td></tr>
 * </tbody>
 * </table>
 *
 * Continuation of function description down here. Why not have an example?
 * <pre>
 * =myFunc($A8, $DV8 )
 * </pre>
 *
 * @param {String} your mother's name, e.g. <code>"Anne Murray"</code>
 * @param {String} date of birth, <code>DD/MM/YYYY</code>
 * @returns {Date} estimated date of demise
 * @returns {String} "Please try again." if error in input
 */

不完美,具有相当高的PITA值。尽管如此,jsdoc仍将确保您获得任何不受支持的标记的语法,非常适合移植。