Markdown is only used once and a check is in place to see if the markdown classes exists. So perhaps it is better to move this to suggest instead of require, so the people who don't need it, don't have to download it.
The ReflectionDocBlock Component 
Introduction
The ReflectionDocBlock component of phpDocumentor provides a DocBlock parser that is 100% compatible with the PHPDoc standard.
With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.
Note
: this is a core component of phpDocumentor and is constantly being optimized for performance.
Installation
You can install the component in the following ways:
- Use the official Github repository (https://github.com/phpDocumentor/ReflectionDocBlock)
- Via Composer (http://packagist.org/packages/phpdocumentor/reflection-docblock)
Usage
The ReflectionDocBlock component is designed to work in an identical fashion to PHP's own Reflection extension (http://php.net/manual/en/book.reflection.php).
Parsing can be initiated by instantiating the
\phpDocumentor\Reflection\DocBlock() class and passing it a string containing
a DocBlock (including asterisks) or by passing an object supporting the
getDocComment() method.
Examples of objects having the
getDocComment()method are theReflectionClassand theReflectionMethodclasses of the PHP Reflection extension
Example:
$class = new ReflectionClass('MyClass');
$phpdoc = new \phpDocumentor\Reflection\DocBlock($class);
or
$docblock = <<<DOCBLOCK
/**
* This is a short description.
*
* This is a *long* description.
*
* @return void
*/
DOCBLOCK;
$phpdoc = new \phpDocumentor\Reflection\DocBlock($docblock);