blob: 1d8daacb6a12049055f74143a111fa0dfe61866b [file] [log] [blame] [raw]
<?
function anchorify(str)
{
// how github creates the name attribute for anchors from headlines
str = str.replace(/[()<>.]/g, "");
str = str.replace(/[^a-z0-9_-]+/gi, "-");
str = str.toLowerCase();
return str;
}
docfiles.forEach(function(doc)
{
doc.javadoc.forEach(function(comment)
{
var tags = comment.raw.tags;
comment.tagsByType = comment.raw.tags.reduce(function(result, tag)
{
result[tag.type] = tag;
return result;
}, {});
comment.ignore = "ignore" in comment.tagsByType;
if(comment.name && !comment.ignore)
{
if(comment.isMethod || comment.isFunction)
{
var args = comment.paramTags.map(function(c)
{
return c.joinedTypes + " " + c.name;
}).join(", ");
var returnVal = "";
if(comment.returnTags[0])
{
returnVal = " -> " + comment.returnTags[0].joinedTypes;
}
comment.args = args;
comment.returnVal = returnVal;
comment.longName = comment.name + "(" + comment.args + ")" + comment.returnVal;
?><?= "- [`" + comment.longName + "`](#" + anchorify(comment.longName) + ")\n" ?><?
} else {
?># <?= comment.name + "\n" ?><?
}
}
});
doc.javadoc.forEach(function(comment)
{
if(!comment.ignore)
{
?><?= "\n***\n" ?><?
if(comment.name)
{
if(comment.isMethod || comment.isFunction)
{
?><?= "#### `" + comment.longName + "`\n" ?><?
}
else
{
?><?= "## `" + comment.name + "`\n" ?><?
}
}
?><?= comment.description + "\n" ?><?
if(comment.paramTags.length)
{
?><?= "**Parameters:**\n\n" ?><?
comment.paramTags.forEach(function(paramTag, i)
{
?><?= (i + 1) + ". **`" + paramTag.joinedTypes + "`** " + paramTag.name + " " + (paramTag.description ? "– " + paramTag.description : "") + "\n" ?><?
});
}
if(comment.returnTags.length)
{
?><?= "**Returns:**\n\n" ?><?
comment.returnTags.forEach(function(returnTag)
{
?><?= "* **`" + returnTag.joinedTypes + "`** " + returnTag.description + "\n" ?><?
});
}
}
});
?><?= "\n<!-- " + doc.filename + "-->\n" ?><?
});
?>
<!-- vim: set tabstop=2 shiftwidth=2 softtabstop=2: -->