public function testRender() { $class = $this->getRendererClass(); $renderer = new $class(); $link = new Link('http://www.google.com'); $link->appendChild(new Text('http://www.google.com')); $color = new Color(); $color->setForceStyle(true); $cliRenderer = new CliRenderer([], [Text::class => new TextRenderer()], $color); $this->assertSame("[94m[1m[4mhttp://www.google.com[0m[0m[0m", $renderer->render($link, $cliRenderer)); }
/** * @param Entry[] $entries * @return ListBlock */ protected function render(array $entries) { $data = new ListData(); $data->type = ListBlock::TYPE_UNORDERED; $list = new ListBlock($data); $list->data['attributes']['class'] = 'TableOfContents'; foreach ($entries as $entry) { $item = new ListItem($data); $a = new Link('#' . $entry->getId()); $content = $entry->getContent(); if ($content != null) { foreach ($this->cloneChildren($content) as $node) { $a->appendChild($node); } } $p = new Paragraph(); $p->appendChild($a); $item->appendChild($p); if (!empty($entry->getChildren())) { $item->appendChild($this->render($entry->getChildren())); } $list->appendChild($item); } return $list; }