private function generateRecursive(Directory $tree, $output_dir, $params, $output, $width, $index_pages, $base_url = '')
    {
        DauxHelper::rebaseConfiguration($params, $base_url);

        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 . DIRECTORY_SEPARATOR . $key;
                mkdir($new_output_dir);
                $this->generateRecursive($node, $new_output_dir, $params, $output, $width, $index_pages, '../' . $base_url);

                // Rebase configuration again as $params is a shared object
                DauxHelper::rebaseConfiguration($params, $base_url);
            } else {
                $this->runAction(
                    '- ' . $node->getUrl(),
                    $width,
                    function() use ($node, $output_dir, $key, $params, $index_pages) {
                        if ($node instanceof Raw) {
                            copy($node->getPath(), $output_dir . DIRECTORY_SEPARATOR . $key);

                            return;
                        }

                        $this->daux->tree->setActiveNode($node);

                        $generated = $this->generateOne($node, $params);
                        file_put_contents($output_dir . DIRECTORY_SEPARATOR . $key, $generated->getContent());
                        if ($index_pages) {
                            $this->indexed_pages[] = [
                                'title' => $node->getTitle(),
                                'text' => $this->sanitize($generated->getPureContent()),
                                'tags' =>  '',
                                'url' => $node->getUrl(),
                            ];
                        }
                    }
                );
            }
        }
    }
private function generateRecursive(Directory $tree, $output_dir, $params, $output, $width, $index_pages, $base_url = '')
    {
        DauxHelper::rebaseConfiguration($params, $base_url);

        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 . DIRECTORY_SEPARATOR . $key;
                mkdir($new_output_dir);
                $this->generateRecursive($node, $new_output_dir, $params, $output, $width, $index_pages, '../' . $base_url);

                // Rebase configuration again as $params is a shared object
                DauxHelper::rebaseConfiguration($params, $base_url);
            } else {
                $this->runAction(
                    '- ' . $node->getUrl(),
                    $width,
                    function() use ($node, $output_dir, $key, $params, $index_pages) {
                        if ($node instanceof Raw) {
                            copy($node->getPath(), $output_dir . DIRECTORY_SEPARATOR . $key);

                            return;
                        }

                        $this->daux->tree->setActiveNode($node);

                        $generated = $this->generateOne($node, $params);
                        file_put_contents($output_dir . DIRECTORY_SEPARATOR . $key, $generated->getContent());
                        if ($index_pages) {
                            $this->indexed_pages[] = [
                                'title' => $node->getTitle(),
                                'text' => $this->sanitize($generated->getPureContent()),
                                'tags' =>  '',
                                'url' => $node->getUrl(),
                            ];
                        }
                    }
                );
            }
        }
    }
private function generateRecursive ( Directory $ tree , $ output_dir , $ params , $ output , $ width , $ index_pages , $ base_url = '' ) { DauxHelper :: rebaseConfiguration ( $ params , $ base_url ) ; 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 . DIRECTORY_SEPARATOR . $ key ; mkdir ( $ new_output_dir ) ; $ this -> generateRecursive ( $ node , $ new_output_dir , $ params , $ output , $ width , $ index_pages , '../' . $ base_url ) ; // Rebase configuration again as $params is a shared object DauxHelper :: rebaseConfiguration ( $ params , $ base_url ) ; } else { $ this -> runAction ( '- ' . $ node -> getUrl ( ) , $ width , function ( ) use ( $ node , $ output_dir , $ key , $ params , $ index_pages ) { if ( $ node instanceof Raw ) { copy ( $ node -> getPath ( ) , $ output_dir . DIRECTORY_SEPARATOR . $ key ) ; return ; } $ this -> daux -> tree -> setActiveNode ( $ node ) ; $ generated = $ this -> generateOne ( $ node , $ params ) ; file_put_contents ( $ output_dir . DIRECTORY_SEPARATOR . $ key , $ generated -> getContent ( ) ) ; if ( $ index_pages ) { $ this -> indexed_pages [ ] = [ 'title' => $ node -> getTitle ( ) , 'text' => $ this -> sanitize ( $ generated -> getPureContent ( ) ) , 'tags' => '' , 'url' => $ node -> getUrl ( ) , ] ; } } ) ; } } }
Recursively generate the documentation

@param Directory $tree
@param string $output_dir
@param \Todaymade\Daux\Config $params
@param OutputInterface $output
@param int $width
@param bool $index_pages
@param string $base_url
@throws \Exception
Recursively generate the documentation