Mpociot\Documentarian\Documentarian::generate PHP Method

generate() public method

Generate the API documentation using the markdown and include files
public generate ( $folder ) : false | null
$folder
return false | null
    public function generate($folder)
    {
        $source_dir = $folder . '/source';
        if (!is_dir($source_dir)) {
            return false;
        }
        $parser = new Parser();
        $document = $parser->parse(file_get_contents($source_dir . '/index.md'));
        $frontmatter = $document->getYAML();
        $html = $document->getContent();
        $renderer = new BladeRenderer([__DIR__ . '/../resources/views'], ['cache_path' => $source_dir . '/_tmp']);
        // Parse and include optional include markdown files
        if (isset($frontmatter['includes'])) {
            foreach ($frontmatter['includes'] as $include) {
                if (file_exists($include_file = $source_dir . '/includes/_' . $include . '.md')) {
                    $document = $parser->parse(file_get_contents($include_file));
                    $html .= $document->getContent();
                }
            }
        }
        $output = $renderer->render('index', ['page' => $frontmatter, 'content' => $html]);
        file_put_contents($folder . '/index.html', $output);
        // Copy assets
        rcopy($source_dir . '/assets/images/', $folder . '/images');
        rcopy($source_dir . '/assets/stylus/fonts/', $folder . '/css/fonts');
    }

Usage Example

 /**
  * Execute the console command.
  *
  * @return false|null
  */
 public function handle()
 {
     $outputPath = $this->option('location');
     $documentarian = new Documentarian();
     if (!is_dir($outputPath)) {
         $this->error('There is no generated documentation available at ' . $outputPath . '.');
         return false;
     }
     $this->info('Updating API HTML code');
     $documentarian->generate($outputPath);
     $this->info('Wrote HTML documentation to: ' . $outputPath . '/public/index.html');
 }
All Usage Examples Of Mpociot\Documentarian\Documentarian::generate