API Docs for:
Show:

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 Object

    the config object

Methods

_resolveFor

(
  • value
)
String private

Takes a non-namespaced classname and resolves it to a namespace (to support @for)

Parameters:

  • value String

    The classname to resolve

Returns:

String:

The resolved namespace + classname

extract

(
  • filemap
  • dirmap
)
Object

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 Object

    A map of filenames to file content

  • dirmap Array

    A map of file names to directory name

Returns:

Object:

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 String

    The comment to parse

  • file String

    The file it was parsed from

  • line String

    The line number it was found on

implodeString

(
  • str
)
String private

Flatten a string, remove all line breaks and replace them with a token

Parameters:

  • str String

    The string to operate on

Returns:

String:

The modified string

implodeString

(
  • str
)
String private

Un-flatten a string, replace tokens injected with implodeString

Parameters:

  • str String

    The string to operate on

Returns:

String:

The modified string

parse

(
  • filemap
  • dirmap
)
DocParser

Extracts and transforms the filemap provided to constructor

Parameters:

  • filemap Array

    A map of filenames to file content

  • dirmap Array

    A map of file names to directory name

Returns:

DocParser:

this parser instance. The total results are available in parser.data.

processblock

(
  • an
)

Processes all the tags in a single comment block

Parameters:

  • an Array

    array of the tag/text pairs

stringlog

(
  • data
)
String private

Parses the JSON data and formats it into a nice log string for filename and line number: /file/name.js:123

Parameters:

  • data Object

    The data block from the parser

Returns:

String:

The formatted string.

transform

(
  • commentmap
)
Object

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 Object

    The hash of files and parsed comment blocks

Returns:

Object:

The transformed data for the project

unindent

(
  • content
)
String private

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 String

    Text to unindent.

Returns:

String:

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

currentclass

String

The class currently being parsed

currentfile

String

The file currently being parsed

currentmodule

String

The module currently being parsed

currentsubmodule

String

The submodule currently being parsed

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)

dirmap

A map of file names to directory name. Provided in case this needs to be used to reset the module name appropriately -- currently not used

emitters

Emitters will be schemas for the types of payloads the parser will emit. Not implemented.

filemap

The map of file names to file content.

mainmodule

String

The main documentation block for the module itself.

syntaxtype

String

Comment syntax type.