baseRenderer = new ListItemRenderer(); } /** * @return HtmlElement|string|null */ public function render(AbstractBlock $block, ElementRendererInterface $htmlRenderer, bool $inTightList = false) { $listItem = $this->baseRenderer->render($block, $htmlRenderer, $inTightList); if ($this->startsTaskListItem($block)) { $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; } }