baseRenderer = new ListItemRenderer(); } /** * @return HtmlElement|string|null */ public function render(Node $node, ChildNodeRendererInterface $childRenderer) { $listItem = $this->baseRenderer->render($node, $childRenderer); if ($node instanceof ListItem && $this->startsTaskListItem($node) && $listItem instanceof HtmlElement) { $listItem->setAttribute('class', 'task-list-item'); } return $listItem; } private function startsTaskListItem(ListItem $block): bool { $firstChild = $block->firstChild(); return $firstChild instanceof Paragraph && $firstChild->firstChild() instanceof TaskListItemMarker; } }