Fix markup for image from external sources for Confluence

This commit is contained in:
Stéphane Goetz 2015-10-27 16:03:58 +01:00
parent 5ada801e6d
commit b7983f101b
3 changed files with 31 additions and 0 deletions

BIN
daux.phar

Binary file not shown.

View File

@ -16,5 +16,7 @@ class CommonMarkConverter extends \Todaymade\Daux\ContentTypes\Markdown\CommonMa
//Add code renderer
$environment->addBlockRenderer('FencedCode', new FencedCodeRenderer());
$environment->addBlockRenderer('IndentedCode', new IndentedCodeRenderer());
$environment->addInlineRenderer('Image', new ImageRenderer());
}
}

View File

@ -0,0 +1,29 @@
<?php namespace Todaymade\Daux\Format\Confluence\ContentTypes\Markdown;
use League\CommonMark\ElementRendererInterface;
use League\CommonMark\HtmlElement;
use League\CommonMark\Inline\Element\AbstractInline;
use League\CommonMark\Inline\Element\Image;
class ImageRenderer extends \League\CommonMark\Inline\Renderer\ImageRenderer
{
/**
* @param Image $inline
* @param ElementRendererInterface $htmlRenderer
*
* @return HtmlElement
*/
public function render(AbstractInline $inline, ElementRendererInterface $htmlRenderer)
{
// External Images need special handling
if (strpos($inline->getUrl(), 'http') === 0) {
return new HtmlElement(
'ac:image',
[],
new HtmlElement('ri:url', ['ri:value' => $inline->getUrl()])
);
}
return parent::render($inline, $htmlRenderer);
}
}