<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
markdown-office / commonmark-generic-directives example snippets
use League\CommonMark\Environment\Environment;
use League\CommonMark\Extension\CommonMark\CommonMarkCoreExtension;
use League\CommonMark\MarkdownConverter;
use MarkdownOffice\CommonMark\Directive\GenericDirectiveExtension;
$environment = new Environment();
$environment->addExtension(new CommonMarkCoreExtension());
$environment->addExtension(new GenericDirectiveExtension());
$html = (new MarkdownConverter($environment))->convert($markdown);
use League\CommonMark\Node\Node;
use League\CommonMark\Renderer\ChildNodeRendererInterface;
use League\CommonMark\Renderer\NodeRendererInterface;
use MarkdownOffice\CommonMark\Directive\Node\DirectiveBlock;
final class CalloutRenderer implements NodeRendererInterface
{
public function render(Node $node, ChildNodeRendererInterface $childRenderer): string
{
\assert($node instanceof DirectiveBlock);
$type = $node->getAttributes()->getString('type', 'note');
return sprintf(
'<aside class="callout callout--%s">%s</aside>',
htmlspecialchars($type, ENT_QUOTES),
$childRenderer->renderNodes($node->children())
);
}
}
$environment->addRenderer(DirectiveBlock::class, new CalloutRenderer(), 10);
$node->getName(); // 'callout', or null for a container written without one
$node->getType(); // DirectiveType::Container | Leaf | Text
$node->getLabel(); // 'Chart', or null when there is none
$node->getAttributes(); // DirectiveAttributes
$node->isContainer(); // bool
(string) $node; // back to source form
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.