Update website
This commit is contained in:
parent
4413528994
commit
1d90fbf296
6865 changed files with 1091082 additions and 0 deletions
45
vendor/doctrine/rst-parser/lib/LaTeX/Directives/Image.php
vendored
Normal file
45
vendor/doctrine/rst-parser/lib/LaTeX/Directives/Image.php
vendored
Normal file
|
@ -0,0 +1,45 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Doctrine\RST\LaTeX\Directives;
|
||||
|
||||
use Doctrine\RST\Directives\Directive;
|
||||
use Doctrine\RST\Nodes\Node;
|
||||
use Doctrine\RST\Parser;
|
||||
use Exception;
|
||||
|
||||
use function sprintf;
|
||||
|
||||
/**
|
||||
* Renders an image, example :
|
||||
*
|
||||
* .. image:: image.jpg
|
||||
* :width: 100
|
||||
* :title: An image
|
||||
*/
|
||||
final class Image extends Directive
|
||||
{
|
||||
public function getName(): string
|
||||
{
|
||||
return 'image';
|
||||
}
|
||||
|
||||
/** @param string[] $options */
|
||||
public function processNode(
|
||||
Parser $parser,
|
||||
string $variable,
|
||||
string $data,
|
||||
array $options
|
||||
): ?Node {
|
||||
$environment = $parser->getEnvironment();
|
||||
|
||||
$url = $environment->relativeUrl($data);
|
||||
|
||||
if ($url === null) {
|
||||
throw new Exception(sprintf('Could not build relative url for %s', $data));
|
||||
}
|
||||
|
||||
return $parser->getNodeFactory()->createImageNode($url, $options);
|
||||
}
|
||||
}
|
30
vendor/doctrine/rst-parser/lib/LaTeX/Directives/LaTeXMain.php
vendored
Normal file
30
vendor/doctrine/rst-parser/lib/LaTeX/Directives/LaTeXMain.php
vendored
Normal file
|
@ -0,0 +1,30 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Doctrine\RST\LaTeX\Directives;
|
||||
|
||||
use Doctrine\RST\Directives\Directive;
|
||||
use Doctrine\RST\Nodes\Node;
|
||||
use Doctrine\RST\Parser;
|
||||
|
||||
/**
|
||||
* Marks the document as LaTeX main
|
||||
*/
|
||||
final class LaTeXMain extends Directive
|
||||
{
|
||||
public function getName(): string
|
||||
{
|
||||
return 'latex-main';
|
||||
}
|
||||
|
||||
/** @param string[] $options */
|
||||
public function processNode(
|
||||
Parser $parser,
|
||||
string $variable,
|
||||
string $data,
|
||||
array $options
|
||||
): ?Node {
|
||||
return $parser->getNodeFactory()->createMainNode();
|
||||
}
|
||||
}
|
48
vendor/doctrine/rst-parser/lib/LaTeX/Directives/Meta.php
vendored
Normal file
48
vendor/doctrine/rst-parser/lib/LaTeX/Directives/Meta.php
vendored
Normal file
|
@ -0,0 +1,48 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Doctrine\RST\LaTeX\Directives;
|
||||
|
||||
use Doctrine\RST\Directives\Directive;
|
||||
use Doctrine\RST\Nodes\Node;
|
||||
use Doctrine\RST\Parser;
|
||||
|
||||
/**
|
||||
* Add a meta information:
|
||||
*
|
||||
* .. meta::
|
||||
* :key: value
|
||||
*/
|
||||
final class Meta extends Directive
|
||||
{
|
||||
public function getName(): string
|
||||
{
|
||||
return 'meta';
|
||||
}
|
||||
|
||||
/** @param string[] $options */
|
||||
public function process(
|
||||
Parser $parser,
|
||||
?Node $node,
|
||||
string $variable,
|
||||
string $data,
|
||||
array $options
|
||||
): void {
|
||||
$document = $parser->getDocument();
|
||||
|
||||
$nodeFactory = $parser->getNodeFactory();
|
||||
|
||||
foreach ($options as $key => $value) {
|
||||
$meta = $nodeFactory->createMetaNode($key, $value);
|
||||
|
||||
$document->addHeaderNode($meta);
|
||||
}
|
||||
|
||||
if ($node === null) {
|
||||
return;
|
||||
}
|
||||
|
||||
$document->addNode($node);
|
||||
}
|
||||
}
|
32
vendor/doctrine/rst-parser/lib/LaTeX/Directives/Stylesheet.php
vendored
Normal file
32
vendor/doctrine/rst-parser/lib/LaTeX/Directives/Stylesheet.php
vendored
Normal file
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Doctrine\RST\LaTeX\Directives;
|
||||
|
||||
use Doctrine\RST\Directives\Directive;
|
||||
use Doctrine\RST\Nodes\Node;
|
||||
use Doctrine\RST\Parser;
|
||||
|
||||
/**
|
||||
* Adds a stylesheet to a document, example:
|
||||
*
|
||||
* .. stylesheet:: style.css
|
||||
*/
|
||||
final class Stylesheet extends Directive
|
||||
{
|
||||
public function getName(): string
|
||||
{
|
||||
return 'stylesheet';
|
||||
}
|
||||
|
||||
/** @param string[] $options */
|
||||
public function process(
|
||||
Parser $parser,
|
||||
?Node $node,
|
||||
string $variable,
|
||||
string $data,
|
||||
array $options
|
||||
): void {
|
||||
}
|
||||
}
|
43
vendor/doctrine/rst-parser/lib/LaTeX/Directives/Title.php
vendored
Normal file
43
vendor/doctrine/rst-parser/lib/LaTeX/Directives/Title.php
vendored
Normal file
|
@ -0,0 +1,43 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Doctrine\RST\LaTeX\Directives;
|
||||
|
||||
use Doctrine\RST\Directives\Directive;
|
||||
use Doctrine\RST\Nodes\Node;
|
||||
use Doctrine\RST\Parser;
|
||||
|
||||
/**
|
||||
* Add a meta title to the document
|
||||
*
|
||||
* .. title:: Page title
|
||||
*/
|
||||
final class Title extends Directive
|
||||
{
|
||||
public function getName(): string
|
||||
{
|
||||
return 'title';
|
||||
}
|
||||
|
||||
/** @param string[] $options */
|
||||
public function process(
|
||||
Parser $parser,
|
||||
?Node $node,
|
||||
string $variable,
|
||||
string $data,
|
||||
array $options
|
||||
): void {
|
||||
$document = $parser->getDocument();
|
||||
|
||||
$document->addHeaderNode(
|
||||
$parser->getNodeFactory()->createRawNode('\title{' . $data . '}')
|
||||
);
|
||||
|
||||
if ($node === null) {
|
||||
return;
|
||||
}
|
||||
|
||||
$document->addNode($node);
|
||||
}
|
||||
}
|
32
vendor/doctrine/rst-parser/lib/LaTeX/Directives/Url.php
vendored
Normal file
32
vendor/doctrine/rst-parser/lib/LaTeX/Directives/Url.php
vendored
Normal file
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Doctrine\RST\LaTeX\Directives;
|
||||
|
||||
use Doctrine\RST\Directives\Directive;
|
||||
use Doctrine\RST\Parser;
|
||||
|
||||
use function trim;
|
||||
|
||||
/**
|
||||
* Sets the document URL
|
||||
*/
|
||||
final class Url extends Directive
|
||||
{
|
||||
public function getName(): string
|
||||
{
|
||||
return 'url';
|
||||
}
|
||||
|
||||
/** @param string[] $options */
|
||||
public function processAction(
|
||||
Parser $parser,
|
||||
string $variable,
|
||||
string $data,
|
||||
array $options
|
||||
): void {
|
||||
$environment = $parser->getEnvironment();
|
||||
$environment->setUrl(trim($data));
|
||||
}
|
||||
}
|
39
vendor/doctrine/rst-parser/lib/LaTeX/Directives/Wrap.php
vendored
Normal file
39
vendor/doctrine/rst-parser/lib/LaTeX/Directives/Wrap.php
vendored
Normal file
|
@ -0,0 +1,39 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Doctrine\RST\LaTeX\Directives;
|
||||
|
||||
use Doctrine\RST\Directives\SubDirective;
|
||||
use Doctrine\RST\Nodes\Node;
|
||||
use Doctrine\RST\Parser;
|
||||
|
||||
/**
|
||||
* Wraps a sub document in a div with a given class
|
||||
*/
|
||||
final class Wrap extends SubDirective
|
||||
{
|
||||
/** @var string */
|
||||
private $class;
|
||||
|
||||
public function __construct(string $class)
|
||||
{
|
||||
$this->class = $class;
|
||||
}
|
||||
|
||||
public function getName(): string
|
||||
{
|
||||
return $this->class;
|
||||
}
|
||||
|
||||
/** @param string[] $options */
|
||||
public function processSub(
|
||||
Parser $parser,
|
||||
?Node $document,
|
||||
string $variable,
|
||||
string $data,
|
||||
array $options
|
||||
): ?Node {
|
||||
return $document;
|
||||
}
|
||||
}
|
162
vendor/doctrine/rst-parser/lib/LaTeX/LaTeXFormat.php
vendored
Normal file
162
vendor/doctrine/rst-parser/lib/LaTeX/LaTeXFormat.php
vendored
Normal file
|
@ -0,0 +1,162 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Doctrine\RST\LaTeX;
|
||||
|
||||
use Doctrine\RST\Directives\Directive;
|
||||
use Doctrine\RST\Formats\Format;
|
||||
use Doctrine\RST\LaTeX;
|
||||
use Doctrine\RST\Nodes;
|
||||
use Doctrine\RST\Renderers;
|
||||
use Doctrine\RST\Renderers\CallableNodeRendererFactory;
|
||||
use Doctrine\RST\Renderers\NodeRendererFactory;
|
||||
use Doctrine\RST\Templates\TemplateRenderer;
|
||||
|
||||
final class LaTeXFormat implements Format
|
||||
{
|
||||
/** @var TemplateRenderer */
|
||||
private $templateRenderer;
|
||||
|
||||
public function __construct(TemplateRenderer $templateRenderer)
|
||||
{
|
||||
$this->templateRenderer = $templateRenderer;
|
||||
}
|
||||
|
||||
public function getFileExtension(): string
|
||||
{
|
||||
return Format::LATEX;
|
||||
}
|
||||
|
||||
/** @return Directive[] */
|
||||
public function getDirectives(): array
|
||||
{
|
||||
return [
|
||||
new LaTeX\Directives\LaTeXMain(),
|
||||
new LaTeX\Directives\Image(),
|
||||
new LaTeX\Directives\Meta(),
|
||||
new LaTeX\Directives\Stylesheet(),
|
||||
new LaTeX\Directives\Title(),
|
||||
new LaTeX\Directives\Url(),
|
||||
new LaTeX\Directives\Wrap('note'),
|
||||
];
|
||||
}
|
||||
|
||||
/** @return NodeRendererFactory[] */
|
||||
public function getNodeRendererFactories(): array
|
||||
{
|
||||
return [
|
||||
Nodes\AnchorNode::class => new CallableNodeRendererFactory(
|
||||
function (Nodes\AnchorNode $node): LaTeX\Renderers\AnchorNodeRenderer {
|
||||
return new LaTeX\Renderers\AnchorNodeRenderer(
|
||||
$node,
|
||||
$this->templateRenderer
|
||||
);
|
||||
}
|
||||
),
|
||||
Nodes\CodeNode::class => new CallableNodeRendererFactory(
|
||||
function (Nodes\CodeNode $node): LaTeX\Renderers\CodeNodeRenderer {
|
||||
return new LaTeX\Renderers\CodeNodeRenderer(
|
||||
$node,
|
||||
$this->templateRenderer
|
||||
);
|
||||
}
|
||||
),
|
||||
Nodes\ImageNode::class => new CallableNodeRendererFactory(
|
||||
function (Nodes\ImageNode $node): LaTeX\Renderers\ImageNodeRenderer {
|
||||
return new LaTeX\Renderers\ImageNodeRenderer(
|
||||
$node,
|
||||
$this->templateRenderer
|
||||
);
|
||||
}
|
||||
),
|
||||
Nodes\ListNode::class => new CallableNodeRendererFactory(
|
||||
function (Nodes\ListNode $node): LaTeX\Renderers\ListNodeRenderer {
|
||||
return new LaTeX\Renderers\ListNodeRenderer(
|
||||
$node,
|
||||
$this->templateRenderer
|
||||
);
|
||||
}
|
||||
),
|
||||
Nodes\MetaNode::class => new CallableNodeRendererFactory(
|
||||
function (Nodes\MetaNode $node): LaTeX\Renderers\MetaNodeRenderer {
|
||||
return new LaTeX\Renderers\MetaNodeRenderer(
|
||||
$node,
|
||||
$this->templateRenderer
|
||||
);
|
||||
}
|
||||
),
|
||||
Nodes\ParagraphNode::class => new CallableNodeRendererFactory(
|
||||
function (Nodes\ParagraphNode $node): LaTeX\Renderers\ParagraphNodeRenderer {
|
||||
return new LaTeX\Renderers\ParagraphNodeRenderer(
|
||||
$node,
|
||||
$this->templateRenderer
|
||||
);
|
||||
}
|
||||
),
|
||||
Nodes\QuoteNode::class => new CallableNodeRendererFactory(
|
||||
function (Nodes\QuoteNode $node): LaTeX\Renderers\QuoteNodeRenderer {
|
||||
return new LaTeX\Renderers\QuoteNodeRenderer(
|
||||
$node,
|
||||
$this->templateRenderer
|
||||
);
|
||||
}
|
||||
),
|
||||
Nodes\SeparatorNode::class => new CallableNodeRendererFactory(
|
||||
function (Nodes\SeparatorNode $node): LaTeX\Renderers\SeparatorNodeRenderer {
|
||||
return new LaTeX\Renderers\SeparatorNodeRenderer(
|
||||
$this->templateRenderer
|
||||
);
|
||||
}
|
||||
),
|
||||
Nodes\TableNode::class => new CallableNodeRendererFactory(
|
||||
static function (Nodes\TableNode $node): LaTeX\Renderers\TableNodeRenderer {
|
||||
return new LaTeX\Renderers\TableNodeRenderer(
|
||||
$node
|
||||
);
|
||||
}
|
||||
),
|
||||
Nodes\TitleNode::class => new CallableNodeRendererFactory(
|
||||
function (Nodes\TitleNode $node): LaTeX\Renderers\TitleNodeRenderer {
|
||||
return new LaTeX\Renderers\TitleNodeRenderer(
|
||||
$node,
|
||||
$this->templateRenderer
|
||||
);
|
||||
}
|
||||
),
|
||||
Nodes\TocNode::class => new CallableNodeRendererFactory(
|
||||
function (Nodes\TocNode $node): LaTeX\Renderers\TocNodeRenderer {
|
||||
return new LaTeX\Renderers\TocNodeRenderer(
|
||||
$node->getEnvironment(),
|
||||
$node,
|
||||
$this->templateRenderer
|
||||
);
|
||||
}
|
||||
),
|
||||
Nodes\DocumentNode::class => new CallableNodeRendererFactory(
|
||||
function (Nodes\DocumentNode $node): LaTeX\Renderers\DocumentNodeRenderer {
|
||||
return new LaTeX\Renderers\DocumentNodeRenderer(
|
||||
$node,
|
||||
$this->templateRenderer
|
||||
);
|
||||
}
|
||||
),
|
||||
Nodes\SpanNode::class => new CallableNodeRendererFactory(
|
||||
function (Nodes\SpanNode $node): LaTeX\Renderers\SpanNodeRenderer {
|
||||
return new LaTeX\Renderers\SpanNodeRenderer(
|
||||
$node->getEnvironment(),
|
||||
$node,
|
||||
$this->templateRenderer
|
||||
);
|
||||
}
|
||||
),
|
||||
Nodes\CallableNode::class => new CallableNodeRendererFactory(
|
||||
static function (Nodes\CallableNode $node): Renderers\CallableNodeRenderer {
|
||||
return new Renderers\CallableNodeRenderer(
|
||||
$node
|
||||
);
|
||||
}
|
||||
),
|
||||
];
|
||||
}
|
||||
}
|
31
vendor/doctrine/rst-parser/lib/LaTeX/Renderers/AnchorNodeRenderer.php
vendored
Normal file
31
vendor/doctrine/rst-parser/lib/LaTeX/Renderers/AnchorNodeRenderer.php
vendored
Normal file
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Doctrine\RST\LaTeX\Renderers;
|
||||
|
||||
use Doctrine\RST\Nodes\AnchorNode;
|
||||
use Doctrine\RST\Renderers\NodeRenderer;
|
||||
use Doctrine\RST\Templates\TemplateRenderer;
|
||||
|
||||
final class AnchorNodeRenderer implements NodeRenderer
|
||||
{
|
||||
/** @var AnchorNode */
|
||||
private $anchorNode;
|
||||
|
||||
/** @var TemplateRenderer */
|
||||
private $templateRenderer;
|
||||
|
||||
public function __construct(AnchorNode $anchorNode, TemplateRenderer $templateRenderer)
|
||||
{
|
||||
$this->anchorNode = $anchorNode;
|
||||
$this->templateRenderer = $templateRenderer;
|
||||
}
|
||||
|
||||
public function render(): string
|
||||
{
|
||||
return $this->templateRenderer->render('anchor.tex.twig', [
|
||||
'anchorNode' => $this->anchorNode,
|
||||
]);
|
||||
}
|
||||
}
|
31
vendor/doctrine/rst-parser/lib/LaTeX/Renderers/CodeNodeRenderer.php
vendored
Normal file
31
vendor/doctrine/rst-parser/lib/LaTeX/Renderers/CodeNodeRenderer.php
vendored
Normal file
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Doctrine\RST\LaTeX\Renderers;
|
||||
|
||||
use Doctrine\RST\Nodes\CodeNode;
|
||||
use Doctrine\RST\Renderers\NodeRenderer;
|
||||
use Doctrine\RST\Templates\TemplateRenderer;
|
||||
|
||||
final class CodeNodeRenderer implements NodeRenderer
|
||||
{
|
||||
/** @var CodeNode */
|
||||
private $codeNode;
|
||||
|
||||
/** @var TemplateRenderer */
|
||||
private $templateRenderer;
|
||||
|
||||
public function __construct(CodeNode $codeNode, TemplateRenderer $templateRenderer)
|
||||
{
|
||||
$this->codeNode = $codeNode;
|
||||
$this->templateRenderer = $templateRenderer;
|
||||
}
|
||||
|
||||
public function render(): string
|
||||
{
|
||||
return $this->templateRenderer->render('code.tex.twig', [
|
||||
'codeNode' => $this->codeNode,
|
||||
]);
|
||||
}
|
||||
}
|
50
vendor/doctrine/rst-parser/lib/LaTeX/Renderers/DocumentNodeRenderer.php
vendored
Normal file
50
vendor/doctrine/rst-parser/lib/LaTeX/Renderers/DocumentNodeRenderer.php
vendored
Normal file
|
@ -0,0 +1,50 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Doctrine\RST\LaTeX\Renderers;
|
||||
|
||||
use Doctrine\RST\Nodes\DocumentNode;
|
||||
use Doctrine\RST\Nodes\MainNode;
|
||||
use Doctrine\RST\Renderers\DocumentNodeRenderer as BaseDocumentRender;
|
||||
use Doctrine\RST\Renderers\FullDocumentNodeRenderer;
|
||||
use Doctrine\RST\Renderers\NodeRenderer;
|
||||
use Doctrine\RST\Templates\TemplateRenderer;
|
||||
|
||||
use function count;
|
||||
|
||||
final class DocumentNodeRenderer implements NodeRenderer, FullDocumentNodeRenderer
|
||||
{
|
||||
/** @var DocumentNode */
|
||||
private $document;
|
||||
|
||||
/** @var TemplateRenderer */
|
||||
private $templateRenderer;
|
||||
|
||||
public function __construct(DocumentNode $document, TemplateRenderer $templateRenderer)
|
||||
{
|
||||
$this->document = $document;
|
||||
$this->templateRenderer = $templateRenderer;
|
||||
}
|
||||
|
||||
public function render(): string
|
||||
{
|
||||
return (new BaseDocumentRender($this->document))->render();
|
||||
}
|
||||
|
||||
public function renderDocument(): string
|
||||
{
|
||||
return $this->templateRenderer->render('document.tex.twig', [
|
||||
'isMain' => $this->isMain(),
|
||||
'document' => $this->document,
|
||||
'body' => $this->render(),
|
||||
]);
|
||||
}
|
||||
|
||||
private function isMain(): bool
|
||||
{
|
||||
return count($this->document->getNodes(static function ($node): bool {
|
||||
return $node instanceof MainNode;
|
||||
})) !== 0;
|
||||
}
|
||||
}
|
31
vendor/doctrine/rst-parser/lib/LaTeX/Renderers/ImageNodeRenderer.php
vendored
Normal file
31
vendor/doctrine/rst-parser/lib/LaTeX/Renderers/ImageNodeRenderer.php
vendored
Normal file
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Doctrine\RST\LaTeX\Renderers;
|
||||
|
||||
use Doctrine\RST\Nodes\ImageNode;
|
||||
use Doctrine\RST\Renderers\NodeRenderer;
|
||||
use Doctrine\RST\Templates\TemplateRenderer;
|
||||
|
||||
final class ImageNodeRenderer implements NodeRenderer
|
||||
{
|
||||
/** @var ImageNode */
|
||||
private $imageNode;
|
||||
|
||||
/** @var TemplateRenderer */
|
||||
private $templateRenderer;
|
||||
|
||||
public function __construct(ImageNode $imageNode, TemplateRenderer $templateRenderer)
|
||||
{
|
||||
$this->imageNode = $imageNode;
|
||||
$this->templateRenderer = $templateRenderer;
|
||||
}
|
||||
|
||||
public function render(): string
|
||||
{
|
||||
return $this->templateRenderer->render('image.tex.twig', [
|
||||
'imageNode' => $this->imageNode,
|
||||
]);
|
||||
}
|
||||
}
|
15
vendor/doctrine/rst-parser/lib/LaTeX/Renderers/LaTexMainNodeRenderer.php
vendored
Normal file
15
vendor/doctrine/rst-parser/lib/LaTeX/Renderers/LaTexMainNodeRenderer.php
vendored
Normal file
|
@ -0,0 +1,15 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Doctrine\RST\LaTeX\Renderers;
|
||||
|
||||
use Doctrine\RST\Renderers\NodeRenderer;
|
||||
|
||||
final class LaTexMainNodeRenderer implements NodeRenderer
|
||||
{
|
||||
public function render(): string
|
||||
{
|
||||
return '';
|
||||
}
|
||||
}
|
36
vendor/doctrine/rst-parser/lib/LaTeX/Renderers/ListNodeRenderer.php
vendored
Normal file
36
vendor/doctrine/rst-parser/lib/LaTeX/Renderers/ListNodeRenderer.php
vendored
Normal file
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Doctrine\RST\LaTeX\Renderers;
|
||||
|
||||
use Doctrine\RST\Nodes\ListNode;
|
||||
use Doctrine\RST\Renderers\NodeRenderer;
|
||||
use Doctrine\RST\Templates\TemplateRenderer;
|
||||
|
||||
final class ListNodeRenderer implements NodeRenderer
|
||||
{
|
||||
/** @var ListNode */
|
||||
private $listNode;
|
||||
|
||||
/** @var TemplateRenderer */
|
||||
private $templateRenderer;
|
||||
|
||||
public function __construct(ListNode $listNode, TemplateRenderer $templateRenderer)
|
||||
{
|
||||
$this->listNode = $listNode;
|
||||
$this->templateRenderer = $templateRenderer;
|
||||
}
|
||||
|
||||
public function render(): string
|
||||
{
|
||||
$template = 'bullet-list.tex.twig';
|
||||
if ($this->listNode->isOrdered()) {
|
||||
$template = 'enumerated-list.tex.twig';
|
||||
}
|
||||
|
||||
return $this->templateRenderer->render($template, [
|
||||
'listNode' => $this->listNode,
|
||||
]);
|
||||
}
|
||||
}
|
31
vendor/doctrine/rst-parser/lib/LaTeX/Renderers/MetaNodeRenderer.php
vendored
Normal file
31
vendor/doctrine/rst-parser/lib/LaTeX/Renderers/MetaNodeRenderer.php
vendored
Normal file
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Doctrine\RST\LaTeX\Renderers;
|
||||
|
||||
use Doctrine\RST\Nodes\MetaNode;
|
||||
use Doctrine\RST\Renderers\NodeRenderer;
|
||||
use Doctrine\RST\Templates\TemplateRenderer;
|
||||
|
||||
final class MetaNodeRenderer implements NodeRenderer
|
||||
{
|
||||
/** @var MetaNode */
|
||||
private $metaNode;
|
||||
|
||||
/** @var TemplateRenderer */
|
||||
private $templateRenderer;
|
||||
|
||||
public function __construct(MetaNode $metaNode, TemplateRenderer $templateRenderer)
|
||||
{
|
||||
$this->metaNode = $metaNode;
|
||||
$this->templateRenderer = $templateRenderer;
|
||||
}
|
||||
|
||||
public function render(): string
|
||||
{
|
||||
return $this->templateRenderer->render('meta.tex.twig', [
|
||||
'metaNode' => $this->metaNode,
|
||||
]);
|
||||
}
|
||||
}
|
31
vendor/doctrine/rst-parser/lib/LaTeX/Renderers/ParagraphNodeRenderer.php
vendored
Normal file
31
vendor/doctrine/rst-parser/lib/LaTeX/Renderers/ParagraphNodeRenderer.php
vendored
Normal file
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Doctrine\RST\LaTeX\Renderers;
|
||||
|
||||
use Doctrine\RST\Nodes\ParagraphNode;
|
||||
use Doctrine\RST\Renderers\NodeRenderer;
|
||||
use Doctrine\RST\Templates\TemplateRenderer;
|
||||
|
||||
final class ParagraphNodeRenderer implements NodeRenderer
|
||||
{
|
||||
/** @var ParagraphNode */
|
||||
private $paragraphNode;
|
||||
|
||||
/** @var TemplateRenderer */
|
||||
private $templateRenderer;
|
||||
|
||||
public function __construct(ParagraphNode $paragraphNode, TemplateRenderer $templateRenderer)
|
||||
{
|
||||
$this->paragraphNode = $paragraphNode;
|
||||
$this->templateRenderer = $templateRenderer;
|
||||
}
|
||||
|
||||
public function render(): string
|
||||
{
|
||||
return $this->templateRenderer->render('paragraph.tex.twig', [
|
||||
'paragraphNode' => $this->paragraphNode,
|
||||
]);
|
||||
}
|
||||
}
|
31
vendor/doctrine/rst-parser/lib/LaTeX/Renderers/QuoteNodeRenderer.php
vendored
Normal file
31
vendor/doctrine/rst-parser/lib/LaTeX/Renderers/QuoteNodeRenderer.php
vendored
Normal file
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Doctrine\RST\LaTeX\Renderers;
|
||||
|
||||
use Doctrine\RST\Nodes\QuoteNode;
|
||||
use Doctrine\RST\Renderers\NodeRenderer;
|
||||
use Doctrine\RST\Templates\TemplateRenderer;
|
||||
|
||||
final class QuoteNodeRenderer implements NodeRenderer
|
||||
{
|
||||
/** @var QuoteNode */
|
||||
private $quoteNode;
|
||||
|
||||
/** @var TemplateRenderer */
|
||||
private $templateRenderer;
|
||||
|
||||
public function __construct(QuoteNode $quoteNode, TemplateRenderer $templateRenderer)
|
||||
{
|
||||
$this->quoteNode = $quoteNode;
|
||||
$this->templateRenderer = $templateRenderer;
|
||||
}
|
||||
|
||||
public function render(): string
|
||||
{
|
||||
return $this->templateRenderer->render('quote.tex.twig', [
|
||||
'quoteNode' => $this->quoteNode,
|
||||
]);
|
||||
}
|
||||
}
|
24
vendor/doctrine/rst-parser/lib/LaTeX/Renderers/SeparatorNodeRenderer.php
vendored
Normal file
24
vendor/doctrine/rst-parser/lib/LaTeX/Renderers/SeparatorNodeRenderer.php
vendored
Normal file
|
@ -0,0 +1,24 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Doctrine\RST\LaTeX\Renderers;
|
||||
|
||||
use Doctrine\RST\Renderers\NodeRenderer;
|
||||
use Doctrine\RST\Templates\TemplateRenderer;
|
||||
|
||||
final class SeparatorNodeRenderer implements NodeRenderer
|
||||
{
|
||||
/** @var TemplateRenderer */
|
||||
private $templateRenderer;
|
||||
|
||||
public function __construct(TemplateRenderer $templateRenderer)
|
||||
{
|
||||
$this->templateRenderer = $templateRenderer;
|
||||
}
|
||||
|
||||
public function render(): string
|
||||
{
|
||||
return $this->templateRenderer->render('separator.tex.twig');
|
||||
}
|
||||
}
|
103
vendor/doctrine/rst-parser/lib/LaTeX/Renderers/SpanNodeRenderer.php
vendored
Normal file
103
vendor/doctrine/rst-parser/lib/LaTeX/Renderers/SpanNodeRenderer.php
vendored
Normal file
|
@ -0,0 +1,103 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Doctrine\RST\LaTeX\Renderers;
|
||||
|
||||
use Doctrine\RST\Environment;
|
||||
use Doctrine\RST\Nodes\SpanNode;
|
||||
use Doctrine\RST\References\ResolvedReference;
|
||||
use Doctrine\RST\Renderers\SpanNodeRenderer as BaseSpanNodeRenderer;
|
||||
use Doctrine\RST\Templates\TemplateRenderer;
|
||||
|
||||
use function is_string;
|
||||
use function substr;
|
||||
use function trim;
|
||||
|
||||
final class SpanNodeRenderer extends BaseSpanNodeRenderer
|
||||
{
|
||||
/** @var TemplateRenderer */
|
||||
private $templateRenderer;
|
||||
|
||||
public function __construct(
|
||||
Environment $environment,
|
||||
SpanNode $span,
|
||||
TemplateRenderer $templateRenderer
|
||||
) {
|
||||
parent::__construct($environment, $span);
|
||||
|
||||
$this->templateRenderer = $templateRenderer;
|
||||
}
|
||||
|
||||
public function emphasis(string $text): string
|
||||
{
|
||||
return $this->templateRenderer->render('emphasis.tex.twig', ['text' => $text]);
|
||||
}
|
||||
|
||||
public function strongEmphasis(string $text): string
|
||||
{
|
||||
return $this->templateRenderer->render('strong-emphasis.tex.twig', ['text' => $text]);
|
||||
}
|
||||
|
||||
public function nbsp(): string
|
||||
{
|
||||
return $this->templateRenderer->render('nbsp.tex.twig');
|
||||
}
|
||||
|
||||
public function br(): string
|
||||
{
|
||||
return $this->templateRenderer->render('br.tex.twig');
|
||||
}
|
||||
|
||||
public function literal(string $text): string
|
||||
{
|
||||
return $this->templateRenderer->render('literal.tex.twig', ['text' => $text]);
|
||||
}
|
||||
|
||||
/** @param mixed[] $attributes */
|
||||
public function link(?string $url, string $title, array $attributes = []): string
|
||||
{
|
||||
$type = 'href';
|
||||
|
||||
if (is_string($url) && $url !== '' && $url[0] === '#') {
|
||||
$type = 'ref';
|
||||
|
||||
$url = substr($url, 1);
|
||||
$url = $url !== '' ? '#' . $url : '';
|
||||
$url = $this->environment->getUrl() . $url;
|
||||
}
|
||||
|
||||
return $this->templateRenderer->render('link.tex.twig', [
|
||||
'type' => $type,
|
||||
'url' => $url,
|
||||
'title' => $title,
|
||||
'attributes' => $attributes,
|
||||
]);
|
||||
}
|
||||
|
||||
public function escape(string $span): string
|
||||
{
|
||||
return $span;
|
||||
}
|
||||
|
||||
/** @param mixed[] $value */
|
||||
public function reference(ResolvedReference $reference, array $value): string
|
||||
{
|
||||
$text = (bool) $value['text'] ? $value['text'] : $reference->getTitle();
|
||||
$url = $reference->getUrl();
|
||||
|
||||
if ($value['anchor'] !== '') {
|
||||
$url .= $value['anchor'];
|
||||
}
|
||||
|
||||
if ($text === null) {
|
||||
$text = '';
|
||||
}
|
||||
|
||||
if ($url === null) {
|
||||
$url = '';
|
||||
}
|
||||
|
||||
return $this->link($url, trim($text));
|
||||
}
|
||||
}
|
57
vendor/doctrine/rst-parser/lib/LaTeX/Renderers/TableNodeRenderer.php
vendored
Normal file
57
vendor/doctrine/rst-parser/lib/LaTeX/Renderers/TableNodeRenderer.php
vendored
Normal file
|
@ -0,0 +1,57 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Doctrine\RST\LaTeX\Renderers;
|
||||
|
||||
use Doctrine\RST\Nodes\TableNode;
|
||||
use Doctrine\RST\Renderers\NodeRenderer;
|
||||
|
||||
use function count;
|
||||
use function implode;
|
||||
use function max;
|
||||
|
||||
final class TableNodeRenderer implements NodeRenderer
|
||||
{
|
||||
/** @var TableNode */
|
||||
private $tableNode;
|
||||
|
||||
public function __construct(TableNode $tableNode)
|
||||
{
|
||||
$this->tableNode = $tableNode;
|
||||
}
|
||||
|
||||
public function render(): string
|
||||
{
|
||||
$cols = 0;
|
||||
|
||||
$rows = [];
|
||||
foreach ($this->tableNode->getData() as $row) {
|
||||
$rowTex = '';
|
||||
$cols = max($cols, count($row->getColumns()));
|
||||
|
||||
foreach ($row->getColumns() as $n => $col) {
|
||||
$rowTex .= $col->render();
|
||||
|
||||
if ((int) $n + 1 >= count($row->getColumns())) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$rowTex .= ' & ';
|
||||
}
|
||||
|
||||
$rowTex .= ' \\\\' . "\n";
|
||||
$rows[] = $rowTex;
|
||||
}
|
||||
|
||||
$aligns = [];
|
||||
for ($i = 0; $i < $cols; $i++) {
|
||||
$aligns[] = 'l';
|
||||
}
|
||||
|
||||
$aligns = '|' . implode('|', $aligns) . '|';
|
||||
$rows = "\\hline\n" . implode("\\hline\n", $rows) . "\\hline\n";
|
||||
|
||||
return "\\begin{tabular}{" . $aligns . "}\n" . $rows . "\n\\end{tabular}\n";
|
||||
}
|
||||
}
|
42
vendor/doctrine/rst-parser/lib/LaTeX/Renderers/TitleNodeRenderer.php
vendored
Normal file
42
vendor/doctrine/rst-parser/lib/LaTeX/Renderers/TitleNodeRenderer.php
vendored
Normal file
|
@ -0,0 +1,42 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Doctrine\RST\LaTeX\Renderers;
|
||||
|
||||
use Doctrine\RST\Nodes\TitleNode;
|
||||
use Doctrine\RST\Renderers\NodeRenderer;
|
||||
use Doctrine\RST\Templates\TemplateRenderer;
|
||||
|
||||
final class TitleNodeRenderer implements NodeRenderer
|
||||
{
|
||||
/** @var TitleNode */
|
||||
private $titleNode;
|
||||
|
||||
/** @var TemplateRenderer */
|
||||
private $templateRenderer;
|
||||
|
||||
public function __construct(TitleNode $titleNode, TemplateRenderer $templateRenderer)
|
||||
{
|
||||
$this->titleNode = $titleNode;
|
||||
$this->templateRenderer = $templateRenderer;
|
||||
}
|
||||
|
||||
public function render(): string
|
||||
{
|
||||
$type = 'chapter';
|
||||
|
||||
if ($this->titleNode->getLevel() > 1) {
|
||||
$type = 'section';
|
||||
|
||||
for ($i = 2; $i < $this->titleNode->getLevel(); $i++) {
|
||||
$type = 'sub' . $type;
|
||||
}
|
||||
}
|
||||
|
||||
return $this->templateRenderer->render('title.tex.twig', [
|
||||
'type' => $type,
|
||||
'titleNode' => $this->titleNode,
|
||||
]);
|
||||
}
|
||||
}
|
51
vendor/doctrine/rst-parser/lib/LaTeX/Renderers/TocNodeRenderer.php
vendored
Normal file
51
vendor/doctrine/rst-parser/lib/LaTeX/Renderers/TocNodeRenderer.php
vendored
Normal file
|
@ -0,0 +1,51 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Doctrine\RST\LaTeX\Renderers;
|
||||
|
||||
use Doctrine\RST\Environment;
|
||||
use Doctrine\RST\Nodes\TocNode;
|
||||
use Doctrine\RST\Renderers\NodeRenderer;
|
||||
use Doctrine\RST\Templates\TemplateRenderer;
|
||||
|
||||
final class TocNodeRenderer implements NodeRenderer
|
||||
{
|
||||
/** @var Environment */
|
||||
private $environment;
|
||||
|
||||
/** @var TocNode */
|
||||
private $tocNode;
|
||||
|
||||
/** @var TemplateRenderer */
|
||||
private $templateRenderer;
|
||||
|
||||
public function __construct(Environment $environment, TocNode $tocNode, TemplateRenderer $templateRenderer)
|
||||
{
|
||||
$this->environment = $environment;
|
||||
$this->tocNode = $tocNode;
|
||||
$this->templateRenderer = $templateRenderer;
|
||||
}
|
||||
|
||||
public function render(): string
|
||||
{
|
||||
$tocItems = [];
|
||||
|
||||
foreach ($this->tocNode->getFiles() as $file) {
|
||||
$reference = $this->environment->resolve('doc', $file);
|
||||
|
||||
if ($reference === null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$url = $this->environment->relativeUrl($reference->getUrl());
|
||||
|
||||
$tocItems[] = ['url' => $url];
|
||||
}
|
||||
|
||||
return $this->templateRenderer->render('toc.tex.twig', [
|
||||
'tocNode' => $this->tocNode,
|
||||
'tocItems' => $tocItems,
|
||||
]);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue