private function processHandler(ParsedShortcodeInterface $parsed, ProcessorContext $context, $handler)
{
$processed = ProcessedShortcode::createFromContext(clone $context);
$content = $this->processRecursion($processed, $context);
$processed = $processed->withContent($content);
if ($handler) {
return call_user_func_array($handler, array($processed));
}
$state = $parsed->getText();
$length = mb_strlen($processed->getTextContent(), 'utf-8');
$offset = mb_strrpos($state, $processed->getTextContent(), 'utf-8');
return mb_substr($state, 0, $offset, 'utf-8') . $processed->getContent() . mb_substr($state, $offset + $length, mb_strlen($state, 'utf-8'), 'utf-8');
}