Google\Cloud\Dev\DocGenerator\Parser\MarkdownParser::parse PHP Method

parse() public method

public parse ( )
    public function parse()
    {
        $html = $this->markdown->parse($this->content);
        $doc = new DOMDocument();
        $doc->loadHTML($html);
        $headings = $doc->getElementsByTagName('h1');
        $heading = $headings->item(0);
        $heading->parentNode->removeChild($heading);
        $pathinfo = pathinfo($this->currentFile);
        $body = $doc->getElementsByTagName('body')->item(0);
        return ['id' => strtolower(substr($pathinfo['dirname'] . '/' . $pathinfo['filename'], 5)), 'type' => 'guide', 'title' => $heading->textContent, 'name' => $heading->textContent, 'description' => $doc->saveHTML($body), 'methods' => []];
    }

Usage Example

 /**
  * Generates JSON documentation from provided files.
  *
  * @return void
  */
 public function generate()
 {
     foreach ($this->files as $file) {
         $currentFile = substr(str_replace($this->executionPath, '', $file), 3);
         $isPhp = strrpos($file, '.php') == strlen($file) - strlen('.php');
         if ($isPhp) {
             $fileReflector = new FileReflector($file);
             $parser = new CodeParser($file, $currentFile, $fileReflector);
         } else {
             $content = file_get_contents($file);
             $parser = new MarkdownParser($currentFile, $content);
         }
         $document = $parser->parse();
         $writer = new Writer(json_encode($document), $this->outputPath);
         $writer->write(substr($currentFile, 4));
         $this->types->addType(['id' => $document['id'], 'title' => $document['title'], 'contents' => $document['id'] . '.json']);
     }
 }
MarkdownParser