如何轻松创buildGithub友好降价loggingJavaScriptfunction?
我希望能够在JavaScript源代码中的任何地方使用JSDoc注释(甚至可以在模块中甚至匿名函数中嵌套几层函数):
/** * Used to do some important thing that needs doing that works like xyz. * @param {String} whatever - some string that has some purpose * @param {Function} callback - a function that needs to be run * @returns {Boolean} whether or not something happened */ function something(whatever, callback) { ...
并有一些简单的方法来产生漂亮的降价:
##`root.something(whatever,callback)` Used to do some important thing that needs doing that works like xyz. *Parameters* `whatever {String}` some string that has some purpose `callback {Function}` a function that needs to be run *Returns* `{Boolean}` whether or not something happened
其中“root”是该函数可访问的名称空间。 或者,如果它是一个匿名函数或一个私有函数(由于某种原因应该在公共doco中,这是否有意义?),使用其他约定来表示。 也许
##_private_function_ `something(whatever,callback)` and ##_anonymous_function_`(whatever,callback)`
它不一定非得是这种格式,只是在Github上看起来不错而且合理。 理想的工具将足够聪明,能够像Mustache.js一样的代码,并产生良好的输出。 如果可以处理大量的源文件并生成一个文档作为输出,或者根据configuration生成一组链接的文档,那么额外的好处是。
如果这样做可以完全容易地包含在git仓库中,那么最好的办法是让人们不需要build立一个高度特定的工具链来更新doco。 或者至less需要一个最小的工具链。
哦,还有一匹小马。
现有的选项
JSDoc ,加上某种HTML – >降价转换
JSDoc很不错。 但是我似乎无法使它与模块一起工作。 或者说,这是一个更大的麻烦比它应该是恕我直言。 我不需要添加额外的标签来命名该函数。 我已经尝试了@export和@name,仍然无法按照我想要的方式将其显示在最终的文档中。 如果有人可以指向一个JSDoc注释的源代码,其中包含模块,并且做得很好,那可能会有所帮助。 更新: JSDoc v3实际上似乎比v2更好,所以这可能是更好的select。
即使我可以得到像我想要的JSDoc输出,我需要从HTML转换为降价。 我似乎无法find一个好的工具,是否存在?
Docdown
我用Docdown玩了一下,但事实上它是PHP对我来说是一个不起眼的东西…
YUIDoc ,加上转换
我其实还没有用YUIDoc玩过,但看起来没问题。 不过,我需要一个转换器。 它是否容易处理模块,并避免明确提供函数名称和导出名称?
Dox ,加上减价模板
Dox在输出时产生JSON,所以你需要把它结合到一些好的降价模板中,再加上一个模板引擎来生成文档。 有没有人以一种有用的方式把一组这样的模板放在一起?
jGrouse ,加上转换
与ANT一起运行。 下一个…
ScriptDoc …
这是否已经存在了? 似乎是Aptana工作室的一部分,所以这将是一个不起眼的… Aptana似乎没有任何信息。 但ScriptDoc.org有一些关于破解的有趣信息,如果这是有帮助的…
PDOC
Pdoc是基于Ruby的,但是这个工具链并不罕见,所以这不是一个大问题。 你可以提供你自己的模板,所以也许已经有一些好的降价的模板。 我没有玩过它,这是值得的吗? 那里有好的减价模板吗?
别的东西?
还有什么呢?
做你自己的!
用JSDoc搞了几个小时,试图让它工作起来,我放弃了, 用Java编写了我自己的快速和肮脏的解决scheme,用于CharFunk ,一个我一直在使用的unicode JavaScript库。 它适用于我所需要的,尽pipe它还没有接近一般用途。
所以…..
这是一个未满足的需求还是只是我?
你有没有试过jsdox ?
它是一个node.js jsdoc到降价发生器。
我使用jsdoc-markdown ..
编写文档代码:
/** a quite wonderful function @param {object} - privacy gown @param {object} - security @returns {survival} */ function protection(cloak, dagger){}
得到降价文档:
$ jsdoc2md example/function.js #protection(cloak, dagger) a quite wonderful function **Params** - cloak `object` - privacy gown - dagger `object` - security **Returns**: `survival`
这些项目具有由jsdoc2md
呈现的自述文件:
- 手刹-JS
- arrays的工具
- 命令行-ARGS
markdox可以从JavaScript代码生成降价文件。
jsDox。 https://github.com/sutoiku/jsdox使用UglifyJS完全parsing
莫克斯。 https://github.com/tjchaplin/mox几个准备运行的例子/模板。;
两者都处理JSDoc / Dox格式。 两者都有积极的发展。 对我来说,Mox因为示例套件而获胜。
好。 经过一番与我自己的审议,我会去与DOX + Underscore /任何JS模板引擎通过节点。
应该很简单。 你甚至可能会堵塞Grunt或类似的东西,让它在一个监视任务下运行。
据我所知,Dox是相对轻量级的,有一个npm包(IIRC)。
更新:我想,经过一些经验,我想改变我的答案YUIDoc。
尝试使用动词 。 在最简单的用例中,Verb将使用package.json中的数据从模板中构build自述文件。
但是,如果您需要生成多页TOC或创build自定义助手等,动词也具有高级function。
关于API文档,请参阅使用index.js
代码注释生成的自述文件。 点击标题,也是自动生成的。 使用这个内置的帮助器从任何指定的文件path生成API文档。 您也可以使用glob模式从多个文件中提取文档。
动词将build立一个.verb.md
没有任何configuration。 但是如果你需要更多,你可以使用一个verbfile.js
我需要从JSDoc创build一个API文档,该文档应该很容易使用,并且还支持现代的前端堆栈。 一些提到的库有JS代码转换成babeljs的问题,因此你必须暂时用注释传递你的代码,只是为了生成你的降价文档。
对于这样的用例,我发现http://documentation.js.org/相当有用,因为它们已经集成了对BabelJsconfiguration的支持,因此它会负责从JSDoc生成降价(JSON,HTML)。;