Added internal documentation links
This commit is contained in:
committed by
Stéphane Goetz
parent
60b50919b4
commit
5791fccea8
20
libs/Format/Confluence/CommonMark/CommonMarkConverter.php
Normal file
20
libs/Format/Confluence/CommonMark/CommonMarkConverter.php
Normal file
@ -0,0 +1,20 @@
|
||||
<?php namespace Todaymade\Daux\Format\Confluence\CommonMark;
|
||||
|
||||
use League\CommonMark\Environment;
|
||||
|
||||
class CommonMarkConverter extends \Todaymade\Daux\Format\Base\CommonMark\CommonMarkConverter
|
||||
{
|
||||
protected function getLinkRenderer(Environment $environment)
|
||||
{
|
||||
return new LinkRenderer($environment->getConfig('daux'));
|
||||
}
|
||||
|
||||
protected function extendEnvironment(Environment $environment)
|
||||
{
|
||||
parent::extendEnvironment($environment);
|
||||
|
||||
//Add code renderer
|
||||
$environment->addBlockRenderer('FencedCode', new FencedCodeRenderer());
|
||||
$environment->addBlockRenderer('IndentedCode', new IndentedCodeRenderer());
|
||||
}
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
<?php namespace Todaymade\Daux\Format\Confluence;
|
||||
<?php namespace Todaymade\Daux\Format\Confluence\CommonMark;
|
||||
|
||||
use League\CommonMark\Block\Element\AbstractBlock;
|
||||
use League\CommonMark\Block\Element\FencedCode;
|
@ -1,4 +1,4 @@
|
||||
<?php namespace Todaymade\Daux\Format\Confluence;
|
||||
<?php namespace Todaymade\Daux\Format\Confluence\CommonMark;
|
||||
|
||||
use League\CommonMark\Block\Element\AbstractBlock;
|
||||
use League\CommonMark\Block\Element\IndentedCode;
|
43
libs/Format/Confluence/CommonMark/LinkRenderer.php
Normal file
43
libs/Format/Confluence/CommonMark/LinkRenderer.php
Normal file
@ -0,0 +1,43 @@
|
||||
<?php namespace Todaymade\Daux\Format\Confluence\CommonMark;
|
||||
|
||||
use League\CommonMark\HtmlElement;
|
||||
use League\CommonMark\HtmlRendererInterface;
|
||||
use League\CommonMark\Inline\Element\AbstractInline;
|
||||
use League\CommonMark\Inline\Element\Link;
|
||||
|
||||
class LinkRenderer extends \Todaymade\Daux\Format\Base\CommonMark\LinkRenderer
|
||||
{
|
||||
/**
|
||||
* @param Link $inline
|
||||
* @param HtmlRendererInterface $htmlRenderer
|
||||
*
|
||||
* @return HtmlElement
|
||||
*/
|
||||
public function render(AbstractInline $inline, HtmlRendererInterface $htmlRenderer)
|
||||
{
|
||||
// Default handling
|
||||
$element = parent::render($inline, $htmlRenderer);
|
||||
$url = $inline->getUrl();
|
||||
if (empty($url) || $url[0] != '!') {
|
||||
return $element;
|
||||
}
|
||||
|
||||
//Internal links
|
||||
$file = $this->resolveInternalFile(ltrim($url, "!"));
|
||||
|
||||
$link_props = [
|
||||
'ri:content-title' => trim($this->daux['confluence']['prefix']) . " " . $file->getTitle(),
|
||||
'ri:space-key' => $this->daux['confluence']['space_id']
|
||||
];
|
||||
|
||||
$page = strval(new HtmlElement('ri:page', $link_props, '', true));
|
||||
$children = $htmlRenderer->renderInlines($inline->getChildren());
|
||||
if (strpos($children, "<") !== false) {
|
||||
$children = '<ac:link-body>' . $children . '</ac:link-body>';
|
||||
} else {
|
||||
$children = '<ac:plain-text-link-body><![CDATA[' . $children . ']]></ac:plain-text-link-body>';
|
||||
}
|
||||
|
||||
return new HtmlElement('ac:link', [], $page . $children);
|
||||
}
|
||||
}
|
@ -1,26 +0,0 @@
|
||||
<?php namespace Todaymade\Daux\Format\Confluence;
|
||||
|
||||
use League\CommonMark\DocParser;
|
||||
use League\CommonMark\Environment;
|
||||
use League\CommonMark\HtmlRenderer;
|
||||
|
||||
class CommonMarkConverter extends \League\CommonMark\CommonMarkConverter
|
||||
{
|
||||
/**
|
||||
* Create a new commonmark converter instance.
|
||||
*
|
||||
* @param array $config
|
||||
*/
|
||||
public function __construct(array $config = array())
|
||||
{
|
||||
$environment = Environment::createCommonMarkEnvironment();
|
||||
$environment->mergeConfig($config);
|
||||
|
||||
//Add code renderer
|
||||
$environment->addBlockRenderer('FencedCode', new FencedCodeRenderer());
|
||||
$environment->addBlockRenderer('IndentedCode', new IndentedCodeRenderer());
|
||||
|
||||
$this->docParser = new DocParser($environment);
|
||||
$this->htmlRenderer = new HtmlRenderer($environment);
|
||||
}
|
||||
}
|
@ -2,6 +2,7 @@
|
||||
|
||||
use DOMDocument;
|
||||
use Todaymade\Daux\DauxHelper;
|
||||
use Todaymade\Daux\Format\Confluence\CommonMark\CommonMarkConverter;
|
||||
|
||||
class MarkdownPage extends \Todaymade\Daux\Format\Base\MarkdownPage
|
||||
{
|
||||
@ -9,7 +10,7 @@ class MarkdownPage extends \Todaymade\Daux\Format\Base\MarkdownPage
|
||||
|
||||
protected function getMarkdownConverter()
|
||||
{
|
||||
return new CommonMarkConverter();
|
||||
return new CommonMarkConverter(['daux' => $this->params]);
|
||||
}
|
||||
|
||||
protected function generatePage()
|
||||
@ -80,7 +81,6 @@ class MarkdownPage extends \Todaymade\Daux\Format\Base\MarkdownPage
|
||||
|
||||
private function createImageTag($filename, $attributes)
|
||||
{
|
||||
|
||||
$img = "<ac:image";
|
||||
|
||||
foreach ($attributes as $name => $value) {
|
||||
|
Reference in New Issue
Block a user