Documentation template
This commit is contained in:
parent
cfb871bd31
commit
0cd8d709f7
101
docs/template.md.ejs
Normal file
101
docs/template.md.ejs
Normal file
|
@ -0,0 +1,101 @@
|
|||
<?
|
||||
|
||||
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" ?><?
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
?><?= "<!-- " + doc.filename + "-->\n" ?><?
|
||||
});
|
||||
|
||||
?>
|
||||
|
||||
<!-- vim: set tabstop=2 shiftwidth=2 softtabstop=2: -->
|
Loading…
Reference in a new issue