throw new \InvalidArgumentException('Incompatible block type: ' . \get_class($block));
}
- $tag = 'h' . min(config('markdown_heading_max', 6), $block->getLevel() + config('markdown.heading_offset', 0));
+ $level = min(config('markdown_heading_max', 6), $block->getLevel() + config('markdown.heading_offset', 0));
+ $tag = 'h' . $level;
$attrs = $block->getData('attributes', []);
--- /dev/null
+<?php
+
+
+namespace Cubist\Backpack\app\Markdown\Wrapper;
+
+
+use League\CommonMark\Block\Element\Document;
+use League\CommonMark\ConfigurableEnvironmentInterface;
+use League\CommonMark\Extension\ExtensionInterface;
+
+class Extension implements ExtensionInterface
+{
+ public function register(ConfigurableEnvironmentInterface $environment)
+ {
+ $environment->addBlockRenderer(Document::class, new Renderer(), 10);
+ }
+}
--- /dev/null
+<?php
+
+
+namespace Cubist\Backpack\app\Markdown\Wrapper;
+
+
+use League\CommonMark\Block\Element\AbstractBlock;
+use League\CommonMark\Block\Element\Document;
+use League\CommonMark\Block\Renderer\BlockRendererInterface;
+use League\CommonMark\ElementRendererInterface;
+
+class Renderer implements BlockRendererInterface
+{
+ public function render(AbstractBlock $block, ElementRendererInterface $htmlRenderer, bool $inTightList = false)
+ {
+ if (!($block instanceof Document)) {
+ throw new \InvalidArgumentException('Incompatible block type: ' . \get_class($block));
+ }
+
+ $wholeDoc = $htmlRenderer->renderBlocks($block->children());
+
+ return '<div class="markdown">' . ($wholeDoc === '' ? '' : $wholeDoc) . '</div>' . "\n";
+ }
+}