将Doxygen风格的注释转换为HTML的JavaScript代码片段

3

关于这个问题,我想知道是否有任何javascript代码片段或库可以将单个Doxygen注释转换为HTML?

例如,

/** This is a comment block
 *
 * \b bold text
 * \i italic text
 */

会被转换成类似于:

<p>This is a comment block</p>
<p><b>bold</b> text</p>
<p><i>italic</i> text</p>

对于Doxygen的所有其他格式相关标签都是类似的。

我已经找到了这个,如果我必须自己实现它,这似乎是一个很好的起点,但可能我错过了一个完整的项目 :-)

因此,欢迎提供建议!

2个回答

0

利用已有的工具/代码库,至少可以做到你想要的部分,这是最好的选择。解析并不是一个容易的问题,特别是在处理多种语言时查找代码中的doxygen注释。快速搜索没有找到任何明显的项目,但如果需要的话,我建议从doxygen代码库本身开始。它是开源的,并且可以通过SVN直接下载获得。请记住,doxygen是用C++编写的,但如果您能够跟随解析器的操作(也许只针对特定语言),它可以节省大量的工作并防止遗漏角落案例等。这完全取决于您希望您的解决方案有多强大,以及它是否仅供您使用,还是可能支持其他人使用。祝你好运!


Doxygen现在已经在Git中(请参见http://www.doxygen.nl/download.html#gitrepos)。 - albert

0

 function commentToTag(comment) {
 
 var header = null;
 var commentHtml = '';
 
 comment.split('\n').forEach(function (i) {
   var array = i.split(' ');
    do {
     var index = array.indexOf('');
    if (index !== -1) array.splice(index, 1);
     index = array.indexOf('');
    } while (index !== -1);
    do {
     var index = array.indexOf('*');
    if (index !== -1) array.splice(index, 1);
     index = array.indexOf('*');
    } while (index !== -1);
    do {
     var index = array.indexOf('/**');
    if (index !== -1) array.splice(index, 3);
     index = array.indexOf('/**');
    } while (index !== -1);
    do {
     var index = array.indexOf('*/');
    if (index !== -1) array.splice(index, 2);
     index = array.indexOf('*/');
    } while (index !== -1);
    if (array.length === 0) return;
    if (header === null) {
      header = "<p>" + array.join(' ') + "</p>\n";
        return;
    }
    const tag = array.splice(0, 1);
    commentHtml += "<p><"+tag + ">"+array.splice(0,1)+"</" +tag+ ">" + array.join(' ') + '</p>\n';
    
    
 });
 return header + commentHtml;
 
 }
 
 var comment = `/** This is a comment block
 *
 * \i bold text
 * \i italic text
 */`;
 console.log(commentToTag(comment));


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接