*/ class AdmonitionNodeRenderer implements NodeRenderer { public function __construct(private readonly TemplateRenderer $renderer) { } public function supports(string $nodeFqcn): bool { return $nodeFqcn === AdmonitionNode::class || is_a($nodeFqcn, AdmonitionNode::class, true); } public function render(Node $node, RenderContext $renderContext): string { if ($node instanceof AdmonitionNode === false) { throw new InvalidArgumentException('Node must be an instance of ' . AdmonitionNode::class); } $classes = $node->getClasses(); return $this->renderer->renderTemplate( $renderContext, 'body/admonition.html.twig', [ 'name' => $node->getName(), 'text' => $node->getText(), 'title' => $node->getTitle(), 'isTitled' => $node->isTitled(), 'class' => implode(' ', $classes), 'node' => $node->getValue(), ], ); } }