getParams(); if (is_null($destination)) { $destination = $daux->local_base . DS . 'static'; } $this->runAction( "Copying Static assets ...", $output, $width, function() use ($destination, $daux) { Helper::copyAssets($destination, $daux->local_base); } ); $output->writeLn("Generating ..."); $this->generateRecursive($daux->tree, $destination, $params, $output, $width); } /** * Recursively generate the documentation * * @param Directory $tree * @param string $output_dir * @param \Todaymade\Daux\Config $params * @param OutputInterface $output * @param integer $width * @param string $base_url * @throws \Exception */ private function generateRecursive(Directory $tree, $output_dir, $params, $output, $width, $base_url = '') { $params['base_url'] = $params['base_page'] = $base_url; // Rebase Theme $params['theme'] = DauxHelper::getTheme($params, $base_url); $params['image'] = str_replace('', $base_url, $params['image']); if ($base_url !== '' && empty($params['entry_page'])) { $params['entry_page'] = $tree->getFirstPage(); } foreach ($tree->getEntries() as $key => $node) { if ($node instanceof Directory) { $new_output_dir = $output_dir . DS . $key; mkdir($new_output_dir); $this->generateRecursive($node, $new_output_dir, $params, $output, $width, '../' . $base_url); } elseif ($node instanceof Content) { $this->runAction( "- " . $node->getUrl(), $output, $width, function() use ($node, $output_dir, $key, $params) { $params['request'] = $node->getUrl(); $params['file_uri'] = $node->getName(); $page = MarkdownPage::fromFile($node, $params); file_put_contents($output_dir . DS . $key, $page->getContent()); } ); } else { $this->runAction( "- " . $node->getUrl(), $output, $width, function() use ($node, $output_dir, $key) { copy($node->getPath(), $output_dir . DS . $key); } ); } } } }