DocParser Class
The doc parser accepts a map of files to file content.
Once parse()
is called, various properties will be populated
with the parsers data (aggregated in the 'data'
property).
Constructor
DocParser
-
o
Parameters:
-
o
Objectthe config object
Item Index
Methods
Properties
Methods
_resolveFor
-
value
Takes a non-namespaced classname and resolves it to a namespace (to support @for
)
Parameters:
-
value
StringThe classname to resolve
Returns:
The resolved namespace + classname
extract
-
filemap
-
dirmap
Accepts a map of filenames to file content. Returns a map of filenames to an array of API comment block text. This expects the comment to start with / * on its own line, and end with / on its own line. Override this function to provide an alternative comment parser.
Parameters:
-
filemap
ObjectA map of filenames to file content
-
dirmap
ArrayA map of file names to directory name
Returns:
A map of filenames to an array of extracted comment text.
handlecomment
-
comment
-
file
-
line
Transforms a JavaDoc style comment block (less the start and end of it) into a list of tag/text pairs. The leading space and '*' are removed, but the remaining whitespace is preserved so that the output should be friendly for both markdown and html parsers.
Parameters:
-
comment
StringThe comment to parse
-
file
StringThe file it was parsed from
-
line
StringThe line number it was found on
implodeString
-
str
Flatten a string, remove all line breaks and replace them with a token
Parameters:
-
str
StringThe string to operate on
Returns:
The modified string
implodeString
-
str
Un-flatten a string, replace tokens injected with implodeString
Parameters:
-
str
StringThe string to operate on
Returns:
The modified string
parse
-
filemap
-
dirmap
Extracts and transforms the filemap provided to constructor
Parameters:
-
filemap
ArrayA map of filenames to file content
-
dirmap
ArrayA map of file names to directory name
Returns:
this parser instance. The total results are available in parser.data.
processblock
-
an
Processes all the tags in a single comment block
Parameters:
-
an
Arrayarray of the tag/text pairs
stringlog
-
data
Parses the JSON data and formats it into a nice log string for
filename and line number: /file/name.js:123
Parameters:
-
data
ObjectThe data block from the parser
Returns:
The formatted string.
transform
-
commentmap
Transforms a map of filenames to arrays of comment blocks into a JSON structure that represents the entire processed API doc info and relationships between elements for the entire project.
Parameters:
-
commentmap
ObjectThe hash of files and parsed comment blocks
Returns:
The transformed data for the project
unindent
-
content
Normalizes the initial indentation of the given content so that the first line is unindented, and all other lines are unindented to the same degree as the first line. So if the first line has four spaces at the beginning, then all lines will be unindented four spaces. Ported from Selleck
Parameters:
-
content
StringText to unindent.
Returns:
Unindented text.
Properties
CORRECTIONS
Object
final
Common errors will get scrubbed instead of being ignored.
DIGESTERS
Object
final
A map of the default tag processors, keyed by the tag name. Multiple tags can use the same digester by supplying the string name that points to the implementation rather than a function.
TAGLIST
Array
final
A list of known tags. This populates a member variable during initialization, and will be updated if additional digesters are added.
Attributes
digesters
Digesters process the tag/text pairs found in a comment block. They are looked up by tag name. The digester gets the tagname, the value, the target object to apply values to, and the full block that is being processed. Digesters can be declared as strings instead of a function -- in that case, the program will try to look up the key listed and use the function there instead (it is an alias). Digesters can return a host object in the case the tag defines a new key block type (modules/classes/methods/events/properties)