关于this question,我想知道是否有人知道将单个doxygen评论转换为HTML的javascript代码段/库?
例如,
/** 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的所有其他格式化相关标签。
我已经找到了this,如果我必须自己实现它,这似乎是一个很好的起点,但可能我错过了一个完整的项目: - )
所以,建议欢迎!
答案 0 :(得分:0)
利用现有的工具/代码库至少 part 你想要的是最好的选择。解析不是一个简单的问题,特别是在代码中查找doxygen注释,特别是如果您正在处理多种语言。快速搜索没有发现任何非常明显的项目,但如果你愿意在需要的时候创建自己的项目,我建议从doxygen代码库本身开始。它是开源的,可通过SVN或direct download获取。请记住,doxygen是用C ++编写的,但是如果你可以按照解析器的操作(可能只针对特定的语言),它可以节省大量的工作并防止丢失角落情况等等。这一切都取决于你想要的强大程度解决方案,如果它只是你使用它,或者你可能最终支持其他人。祝你好运!
答案 1 :(得分: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));