如何轻松创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)。;