/** * @param Paragraph $block * @param HtmlRendererInterface $htmlRenderer * @param bool $inTightList * * @return HtmlElement|string */ public function render(AbstractBlock $block, HtmlRendererInterface $htmlRenderer, $inTightList = false) { if (!$block instanceof Paragraph) { throw new \InvalidArgumentException('Incompatible block type: ' . get_class($block)); } if ($inTightList) { return $htmlRenderer->renderInlines($block->getInlines()); } else { return new HtmlElement('p', [], $htmlRenderer->renderInlines($block->getInlines())); } }
/** * @param Emphasis $inline * @param HtmlRendererInterface $htmlRenderer * * @return HtmlElement */ public function render(AbstractInline $inline, HtmlRendererInterface $htmlRenderer) { if (!$inline instanceof Emphasis) { throw new \InvalidArgumentException('Incompatible inline type: ' . get_class($inline)); } return new HtmlElement('em', array(), $htmlRenderer->renderInlines($inline->getChildren())); }
/** * @param Header $block * @param HtmlRendererInterface $htmlRenderer * @param bool $inTightList * * @return HtmlElement */ public function render(AbstractBlock $block, HtmlRendererInterface $htmlRenderer, $inTightList = false) { if (!$block instanceof Header) { throw new \InvalidArgumentException('Incompatible block type: ' . get_class($block)); } $tag = 'h' . $block->getLevel(); return new HtmlElement($tag, array(), $htmlRenderer->renderInlines($block->getInlines())); }
/** * @param Link $inline * @param HtmlRendererInterface $htmlRenderer * * @return HtmlElement */ public function render(AbstractInline $inline, HtmlRendererInterface $htmlRenderer) { if (!$inline instanceof Link) { throw new \InvalidArgumentException('Incompatible inline type: ' . get_class($inline)); } $attrs = []; $attrs['href'] = $htmlRenderer->escape($inline->getUrl(), true); if (isset($inline->data['title'])) { $attrs['title'] = $htmlRenderer->escape($inline->data['title'], true); } return new HtmlElement('a', $attrs, $htmlRenderer->renderInlines($inline->getChildren())); }
/** * @param Image $inline * @param HtmlRendererInterface $htmlRenderer * * @return HtmlElement */ public function render(AbstractInline $inline, HtmlRendererInterface $htmlRenderer) { if (!$inline instanceof Image) { throw new \InvalidArgumentException('Incompatible inline type: ' . get_class($inline)); } $attrs = array(); $attrs['src'] = $htmlRenderer->escape($inline->getUrl(), true); $alt = $htmlRenderer->renderInlines($inline->getChildren()); $alt = preg_replace('/\\<[^>]*alt="([^"]*)"[^>]*\\>/', '$1', $alt); $attrs['alt'] = preg_replace('/\\<[^>]*\\>/', '', $alt); if (isset($inline->data['title'])) { $attrs['title'] = $htmlRenderer->escape($inline->data['title'], true); } return new HtmlElement('img', $attrs, '', true); }